decocms 4.204.24 → 4.204.26
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-CM_0Ehfg.js → AlertCircle-DPNBJH8m.js} +1 -1
- package/dist/client/assets/{AreaChart-BwcE5gcI.js → AreaChart-D_UbtC-a.js} +1 -1
- package/dist/client/assets/{ArrowLeft-BZfdTkDM.js → ArrowLeft-D5vfg3uK.js} +1 -1
- package/dist/client/assets/{ArrowUp-CNY1yOxC.js → ArrowUp-B4KcZBvg.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-BaWBsvbw.js → ArrowUpRight-DXWjExcd.js} +1 -1
- package/dist/client/assets/{Check-CN3aR95k.js → Check-D5Ed0y6x.js} +1 -1
- package/dist/client/assets/{CheckCircle-CugtwX3I.js → CheckCircle-vOYrIitU.js} +1 -1
- package/dist/client/assets/{ChevronDown-BzVNS1OZ.js → ChevronDown-Bl0rRCkK.js} +1 -1
- package/dist/client/assets/{ChevronRight-Ch3xlSyS.js → ChevronRight-DNyRZSbB.js} +1 -1
- package/dist/client/assets/{ChevronUp-DnZCjXI4.js → ChevronUp-ZiLZFAOQ.js} +1 -1
- package/dist/client/assets/{Copy01-Dy_ezRAZ.js → Copy01-C9sQ9bF2.js} +1 -1
- package/dist/client/assets/{CpuChip01-Bf5F_zWu.js → CpuChip01-hTkzRHfm.js} +1 -1
- package/dist/client/assets/{CreditCard01-Co7CzX5-.js → CreditCard01-Bhuksz8Z.js} +1 -1
- package/dist/client/assets/{DotsVertical-BGb9JOh-.js → DotsVertical-ChReskfC.js} +1 -1
- package/dist/client/assets/{Eye-DkElT0Vs.js → Eye-Ds4sxQW2.js} +1 -1
- package/dist/client/assets/{FilterLines-EcsEo4Jg.js → FilterLines-Cc1OtqTi.js} +1 -1
- package/dist/client/assets/{Globe01-BvK8SYlx.js → Globe01-Cm_t_Z97.js} +1 -1
- package/dist/client/assets/{Globe04-Mxnxy5DN.js → Globe04-UKseLtKG.js} +1 -1
- package/dist/client/assets/{HardDrive-D4mmhAKW.js → HardDrive-qhtNyx47.js} +1 -1
- package/dist/client/assets/{Key01-Dl2hMZR_.js → Key01-BErpOZ1r.js} +1 -1
- package/dist/client/assets/{LayoutLeft-D_y_5wH6.js → LayoutLeft-q17bNZPJ.js} +1 -1
- package/dist/client/assets/{LinkExternal01-Cz-T7iI3.js → LinkExternal01-DQgKEoX0.js} +1 -1
- package/dist/client/assets/{LogOut01-CaZwogo8.js → LogOut01-BoDycTVj.js} +1 -1
- package/dist/client/assets/{Monitor01-DxknN2yJ.js → Monitor01-Cul-o4cL.js} +1 -1
- package/dist/client/assets/{Palette-Bu8w-a35.js → Palette-C3AGT5oL.js} +1 -1
- package/dist/client/assets/{Play-DVXmxEpH.js → Play-5-bfxaHP.js} +1 -1
- package/dist/client/assets/{Plus-BmjRtSKh.js → Plus-DXQKo5tf.js} +1 -1
- package/dist/client/assets/{SearchLg-B-8ZzylY.js → SearchLg-BvKsBwgJ.js} +1 -1
- package/dist/client/assets/{SearchMd-Cn88JKCH.js → SearchMd-wCVc-rNX.js} +1 -1
- package/dist/client/assets/{Settings02-CSMcNzxI.js → Settings02-QqmHI5eA.js} +1 -1
- package/dist/client/assets/{Share07-BmL98gFX.js → Share07-CqGBM9Q_.js} +1 -1
- package/dist/client/assets/{Shield01-C0siL_Jx.js → Shield01-Cvh0Wa1j.js} +1 -1
- package/dist/client/assets/{Star01-Da76zNXt.js → Star01-0RMuFaY9.js} +1 -1
- package/dist/client/assets/{Stars01-D-hcXadg.js → Stars01-Wvphr348.js} +1 -1
- package/dist/client/assets/{Stars02-DidMAYeR.js → Stars02-BlAniLg3.js} +1 -1
- package/dist/client/assets/{Sun-CMTBWgtq.js → Sun-6YkWK1iN.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DhN66_vL.js → SwitchHorizontal01-BfsIp21i.js} +1 -1
- package/dist/client/assets/{Tool01-quOYoGMK.js → Tool01-B0mx3ej7.js} +1 -1
- package/dist/client/assets/{Tool02-BG0wvg15.js → Tool02-BvMV8bmN.js} +1 -1
- package/dist/client/assets/{Trash01-CKV3Apy3.js → Trash01-BokzPIGv.js} +1 -1
- package/dist/client/assets/{TrendUp01-DvvMG3Yc.js → TrendUp01-BBGlger-.js} +1 -1
- package/dist/client/assets/{Upload01-2YYegxFf.js → Upload01-BRKIwio8.js} +1 -1
- package/dist/client/assets/{User01-G1OuxYv2.js → User01-Bvv0KHXi.js} +1 -1
- package/dist/client/assets/{Users01-CNQ8Pd9F.js → Users01-D1JfQ572.js} +1 -1
- package/dist/client/assets/{Users03-DvVlP7qg.js → Users03-DuLX8eaw.js} +1 -1
- package/dist/client/assets/{X-BiJLSBaw.js → X-BTY_A0Oc.js} +1 -1
- package/dist/client/assets/{XCircle-BaWRjJTV.js → XCircle-C0ACA6Yf.js} +1 -1
- package/dist/client/assets/{XClose-CsD47O1t.js → XClose-WGYgJLTH.js} +1 -1
- package/dist/client/assets/{Zap-BsnGyygG.js → Zap-nZsM1SyL.js} +1 -1
- package/dist/client/assets/{ZapSquare-CFeSjiMW.js → ZapSquare-BE8Mz2Ev.js} +1 -1
- package/dist/client/assets/{access-gate-BvYqWd0t.js → access-gate-C_dPeKEI.js} +1 -1
- package/dist/client/assets/{agent-icon-DxROnAVl.js → agent-icon-BuOj8uAL.js} +1 -1
- package/dist/client/assets/{agents-list-CuR8R02t.js → agents-list-ySfMTTAB.js} +1 -1
- package/dist/client/assets/{ai-providers-jAurCGy2.js → ai-providers-QgMky1Oh.js} +1 -1
- package/dist/client/assets/{alert-Bsjz0Viv.js → alert-D1rPlgpE.js} +1 -1
- package/dist/client/assets/{alert-dialog-DoBTkQti.js → alert-dialog-Bc0ScbCu.js} +1 -1
- package/dist/client/assets/{app-editor-D65quizX.js → app-editor-DNhnQZat.js} +1 -1
- package/dist/client/assets/{auth-UIWygxsU.js → auth-DbQOgMXU.js} +1 -1
- package/dist/client/assets/{auth-catchall-D-6exC-T.js → auth-catchall-FX8EbhUO.js} +1 -1
- package/dist/client/assets/{auth-entry-YPsR1JLH.js → auth-entry-wM814I9p.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DDatMkv1.js → auth-split-layout-F9Okkfnf.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-7NmulFBy.js → authenticate-and-persist-oauth-Dq3o6LJo.js} +1 -1
- package/dist/client/assets/{automation-list-row-NB4qaUu1.js → automation-list-row-CckTVG3S.js} +1 -1
- package/dist/client/assets/{automation-runs-C902l-4i.js → automation-runs-lfct1F9f.js} +1 -1
- package/dist/client/assets/{automations-B7xkIqHF.js → automations-D4IXCfuu.js} +1 -1
- package/dist/client/assets/{avatar-BmBuWuWu.js → avatar-_tV5ASFb.js} +1 -1
- package/dist/client/assets/{badge-DR3LHWR5.js → badge-D8judhNs.js} +1 -1
- package/dist/client/assets/{billing-AttycBq8.js → billing-B_fymUe3.js} +1 -1
- package/dist/client/assets/{block-document-WBXhxrJp.js → block-document-DJk1hMqR.js} +1 -1
- package/dist/client/assets/{brand-context-F7CH2esh.js → brand-context-CdQwqFXz.js} +1 -1
- package/dist/client/assets/{buckets-CVPUvtNw.js → buckets-Lq0JtroN.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-BL01Y286.js → bulk-category-panel-D6Rn3UQ0.js} +1 -1
- package/dist/client/assets/{capability-load-error-wLwNwR0H.js → capability-load-error-DE-zz3Vy.js} +1 -1
- package/dist/client/assets/{card-BLpFgfuY.js → card-CCexd1qV.js} +1 -1
- package/dist/client/assets/{cards-Bu7Ith-J.js → cards-DCqwk4c_.js} +1 -1
- package/dist/client/assets/{category-editor-DAYjG1it.js → category-editor-BJUkyyCy.js} +1 -1
- package/dist/client/assets/{chat-context-Ck8Wn4ca.js → chat-context-LrkdBR20.js} +1 -1
- package/dist/client/assets/{checkbox-xmeSRC-T.js → checkbox-C87aTqoN.js} +1 -1
- package/dist/client/assets/{cli-auth-success-KnX2tbWU.js → cli-auth-success-B_l4H0pK.js} +1 -1
- package/dist/client/assets/{collection-detail-DUbhNHSL.js → collection-detail-BiiiHs7e.js} +1 -1
- package/dist/client/assets/{collection-display-button-C_GNsGP3.js → collection-display-button-DvlgxKVw.js} +1 -1
- package/dist/client/assets/{collection-search-InLvasRc.js → collection-search-FFM6ys1W.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CL-XbhOy.js → collection-table-wrapper-BvGv-w0W.js} +1 -1
- package/dist/client/assets/{collection-tabs-DYabT4Jk.js → collection-tabs-B3sqc7Oj.js} +1 -1
- package/dist/client/assets/{command-DSMHhj9E.js → command-Cr0DlOG1.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-jTVQGDrX.js → commerce-onboarding-CHZko2Oq.js} +1 -1
- package/dist/client/assets/{connect-C_-oaLVo.js → connect-BiI1UwlN.js} +1 -1
- package/dist/client/assets/{connection-BeOdtbpI.js → connection-BthOJQeu.js} +1 -1
- package/dist/client/assets/connection-card-BpL8rX4c.js +1 -0
- package/dist/client/assets/{connection-detail-CH7Ck34y.js → connection-detail-DZgV0jwE.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BZW3JlGP.js → connection-form-helpers-C1AB6OWz.js} +1 -1
- package/dist/client/assets/connections-BMaJSL7N.js +1 -0
- package/dist/client/assets/{decopilot-sse-pool-BaFfx-DU.js → decopilot-sse-pool-BpBeIp9p.js} +1 -1
- package/dist/client/assets/{dialog-YewNLxEX.js → dialog-D9aqvrUn.js} +1 -1
- package/dist/client/assets/{domain-settings-CcWq-s1-.js → domain-settings-CNMf5PAQ.js} +1 -1
- package/dist/client/assets/{drawer-OibwTaDQ.js → drawer-DMiG-D7S.js} +1 -1
- package/dist/client/assets/{dropdown-menu-De-Zj9zn.js → dropdown-menu-Dl9ed7qy.js} +1 -1
- package/dist/client/assets/{empty-state-KPku5IL3.js → empty-state-CD5pxU2t.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DL2DskJ1.js → extract-connection-data-DBdkErK8.js} +1 -1
- package/dist/client/assets/{file-explorer-5SYg6dy6.js → file-explorer-E4KPKGe2.js} +1 -1
- package/dist/client/assets/{file-type-icon-C0tXzXoK.js → file-type-icon-B1SoEGrL.js} +1 -1
- package/dist/client/assets/{form-CAO_X5q6.js → form-DFQ1OvIa.js} +1 -1
- package/dist/client/assets/{general-r7JvlVDg.js → general-3L3S2yz0.js} +1 -1
- package/dist/client/assets/{github-repo-picker-DNVKomBZ.js → github-repo-picker-DHc8euEZ.js} +1 -1
- package/dist/client/assets/{hooks-CqZGTIJB.js → hooks-Dkx3L-5C.js} +1 -1
- package/dist/client/assets/{index-BwgY1kqd.js → index-B2wrU9iy.js} +3 -3
- package/dist/client/assets/{index-4Y-32mh9.js → index-BF-wNBYA.js} +1 -1
- package/dist/client/assets/{index-BvFnaatO.js → index-BmOd8SJT.js} +1 -1
- package/dist/client/assets/{index-BB-gxEp-.js → index-C9Xc9QJf.js} +1 -1
- package/dist/client/assets/{index-B7R9qGXE.js → index-CBxl69n_.js} +1 -1
- package/dist/client/assets/{index-D81t5S79.js → index-CmegeJWN.js} +5 -5
- package/dist/client/assets/{index-DEW97_0a.js → index-DGH253FR.js} +1 -1
- package/dist/client/assets/{index-ByQjYSP9.js → index-DX4JoL4X.js} +1 -1
- package/dist/client/assets/{index-berp4k6J.js → index-Dr-ceP6z.js} +1 -1
- package/dist/client/assets/{index-Cyav31EB.js → index-G3GxOTj4.js} +1 -1
- package/dist/client/assets/{index-redirect-Daerp-Cs.js → index-redirect-BjJX1-JA.js} +1 -1
- package/dist/client/assets/{input-DxtlvNx4.js → input-CPkidnDS.js} +1 -1
- package/dist/client/assets/{integration-icon-BqcLi7JG.js → integration-icon-DH7cOQG7.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-DMbOO2RD.js → invite-member-dialog-CmNyS1DN.js} +1 -1
- package/dist/client/assets/{label-B0ikG0BR.js → label-BO0J6qs6.js} +1 -1
- package/dist/client/assets/{layout-B2N87CTH.js → layout-KYV6Af4V.js} +1 -1
- package/dist/client/assets/{login-ieFMBipy.js → login-CwnTXAzE.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CYPbiT_k.js → mcp-oauth-DW66Q-SF.js} +1 -1
- package/dist/client/assets/{members-DUnQs2He.js → members-D4ayJ3GM.js} +1 -1
- package/dist/client/assets/{monaco-editor-BHM3MMOU.js → monaco-editor-XjHDbpmk.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Cg7kl89P.js → monitoring-stats-row-nn3Pe6cj.js} +1 -1
- package/dist/client/assets/{multi-select-D464J_yG.js → multi-select-CRkyOjHU.js} +1 -1
- package/dist/client/assets/{oauth-callback-BtjM08D0.js → oauth-callback-Db-ZiUZO.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C0vQFtzI.js → oauth-callback-ai-provider-BvE50pkP.js} +1 -1
- package/dist/client/assets/{onboarding-C2lHAyK-.js → onboarding-ClHFg1KN.js} +1 -1
- package/dist/client/assets/{org-layout-DUCyXclB.js → org-layout-CQ4chpWv.js} +1 -1
- package/dist/client/assets/{organization-choice-EYXC0KNR.js → organization-choice-kIcl3GPL.js} +1 -1
- package/dist/client/assets/{orgs-BAyS79rY.js → orgs-BDiO5QWA.js} +1 -1
- package/dist/client/assets/{page-seo-form-CVD-ZxEb.js → page-seo-form-U7Cv-4m-.js} +1 -1
- package/dist/client/assets/{popover-DYbukGRm.js → popover-DhF8rtcM.js} +1 -1
- package/dist/client/assets/{post-editor-DMRBBKmX.js → post-editor-Db1hPHLA.js} +1 -1
- package/dist/client/assets/{primitives-DqbuoYNf.js → primitives-Y_CTVEV_.js} +1 -1
- package/dist/client/assets/{profile-BKmF-uKo.js → profile-DCKk0CPj.js} +1 -1
- package/dist/client/assets/{project-app-view-CGcVW7gB.js → project-app-view-Cphacqh5.js} +1 -1
- package/dist/client/assets/record-editor-CnRO16ro.js +1 -0
- package/dist/client/assets/{redirect-editor-BsY7N9p3.js → redirect-editor-C6CXBB3a.js} +1 -1
- package/dist/client/assets/registry-Bn_yhVw3.js +2 -0
- package/dist/client/assets/{registry-layout-CZsydJOC.js → registry-layout-CiYgKuM3.js} +1 -1
- package/dist/client/assets/{reports-CSnw2fb0.js → reports-Bw6Px3e9.js} +1 -1
- package/dist/client/assets/{require-capability-DoX1CpBC.js → require-capability-NoEAj6kQ.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DLyGIUz-.js → required-auth-layout-DAH0IblX.js} +1 -1
- package/dist/client/assets/{reset-password-m41gXzKv.js → reset-password-Cfwwx9Ys.js} +1 -1
- package/dist/client/assets/{roles-BQaCx5EY.js → roles-CbbSoumX.js} +1 -1
- package/dist/client/assets/{search-input-DYPst4xo.js → search-input-DRvNtCEq.js} +1 -1
- package/dist/client/assets/{secrets-z6wJk1qu.js → secrets-1clAbsE0.js} +1 -1
- package/dist/client/assets/{sections-editor-Ddik1_ZH.js → sections-editor-DgfsFI3O.js} +1 -1
- package/dist/client/assets/{select-model-D37Qrxxb.js → select-model-CvirgHEG.js} +1 -1
- package/dist/client/assets/{select-CI2Kb9Sa.js → select-r59wllxk.js} +1 -1
- package/dist/client/assets/{self-tool-result-CMbkWdG_.js → self-tool-result-Culw2UgF.js} +1 -1
- package/dist/client/assets/{seo-editor-DYC8OVqk.js → seo-editor-DT5KFGBO.js} +1 -1
- package/dist/client/assets/{settings-layout-CcX1E-pU.js → settings-layout-DuxZ6bN6.js} +1 -1
- package/dist/client/assets/{settings-section-mwDLkM3p.js → settings-section-I9BqQLNc.js} +1 -1
- package/dist/client/assets/{shell-controls-DPHX6LL_.js → shell-controls-CIF4lLBf.js} +1 -1
- package/dist/client/assets/{shell-layout-CXbgrB5Q.js → shell-layout-bftFb9R_.js} +1 -1
- package/dist/client/assets/{sidebar-DBsLvkYY.js → sidebar-DMEFaUxH.js} +1 -1
- package/dist/client/assets/{skeleton-BcB7Gm6Z.js → skeleton-B-VaatWE.js} +1 -1
- package/dist/client/assets/{spinner-B7P5D5DJ.js → spinner-BvBqGmFf.js} +1 -1
- package/dist/client/assets/{sso-DAPFf3md.js → sso-CgL3jm8B.js} +1 -1
- package/dist/client/assets/{store-Cf_Rq7Yc.js → store-CpuHnr7D.js} +1 -1
- package/dist/client/assets/store-registry-6ix-jKVx.js +2 -0
- package/dist/client/assets/{studio-tools-Buts9Jdh.js → studio-tools-D2tIom5i.js} +1 -1
- package/dist/client/assets/{switch-D9rdVIva.js → switch-DrqzT-XZ.js} +1 -1
- package/dist/client/assets/{synced-repos-BF7c__wN.js → synced-repos-7ZT6zSbJ.js} +1 -1
- package/dist/client/assets/{tab-id-Bh2qnhiE.js → tab-id-B1hQEP_J.js} +1 -1
- package/dist/client/assets/{table-B-32UXnW.js → table-Da0h1AH9.js} +1 -1
- package/dist/client/assets/{tabs-BpuA5U2K.js → tabs-DSufWlUD.js} +1 -1
- package/dist/client/assets/{textarea-Cy6fYP8f.js → textarea-0GKwxwbs.js} +1 -1
- package/dist/client/assets/{toggle-group-Dv4yZJI8.js → toggle-group-hu9g4imV.js} +1 -1
- package/dist/client/assets/{toolbar-DVE0wyCG.js → toolbar-CzR9dGOY.js} +1 -1
- package/dist/client/assets/{tooltip-CRCj97hY.js → tooltip-_9asqZGo.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Dba7uv8t.js → use-ai-providers-DjvY_UbV.js} +1 -1
- package/dist/client/assets/{use-automations-ge2qYOWe.js → use-automations-DvequBjJ.js} +1 -1
- package/dist/client/assets/{use-autosave-BVdke6VE.js → use-autosave-Bf94B8Ek.js} +1 -1
- package/dist/client/assets/{use-capability-ak-s2Vaq.js → use-capability--7D6K3Ow.js} +1 -1
- package/dist/client/assets/{use-clock-tick-Dbc3gz3T.js → use-clock-tick-D_PJDC4y.js} +1 -1
- package/dist/client/assets/{use-connection-CxBpyaM7.js → use-connection-CmtTybZz.js} +1 -1
- package/dist/client/assets/{use-copy-CdO2QS5D.js → use-copy-CwOZl7d_.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-CXn6p-BW.js → use-create-virtual-mcp-D3kxmTS9.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-wmsXR2fY.js → use-debounced-autosave-BSSv7iOl.js} +1 -1
- package/dist/client/assets/{use-debounced-value-Nw-Hdj_U.js → use-debounced-value-BAGfAQ1h.js} +1 -1
- package/dist/client/assets/{use-deco-credits-C_FbPMAf.js → use-deco-credits-CQDdGcFM.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CmWmX6dr.js → use-decopilot-events-C_R3p3dq.js} +1 -1
- package/dist/client/assets/{use-delete-connection-VJJ4yZoR.js → use-delete-connection-C5rI24Jw.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-D-kk7sXH.js → use-deployment-admin-BwLkGIlt.js} +1 -1
- package/dist/client/assets/{use-file-configs-O7xnLjKI.js → use-file-configs-DdmaN3nN.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BRKgSd4r.js → use-infinite-scroll-D_pD0eB_.js} +1 -1
- package/dist/client/assets/{use-join-requests-CUFSznC8.js → use-join-requests-B0gXJhbT.js} +1 -1
- package/dist/client/assets/{use-mcp-client-C_SLYCKU.js → use-mcp-client-eUuy7e0N.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CA_iMswr.js → use-mcp-tools-DK29reVg.js} +1 -1
- package/dist/client/assets/{use-members-0DTQfivq.js → use-members-B1JGaOR4.js} +1 -1
- package/dist/client/assets/{use-mobile-B-ayRTms.js → use-mobile-BmVcTNR8.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DibNb447.js → use-navigate-to-agent-H1aB2l--.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-BC_Odgdb.js → use-open-billing-url-DsfEeAcf.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-0V6UXVgf.js → use-org-auth-client-wCRKJvZa.js} +1 -1
- package/dist/client/assets/{use-org-sso-C6WLVbIu.js → use-org-sso-BEJ1_jDN.js} +1 -1
- package/dist/client/assets/{use-organization-roles-kL0rtIoJ.js → use-organization-roles-n-YHYydM.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Dx_jMpFY.js → use-organization-settings-15mx1gFy.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CKbB-Fbi.js → use-registry-connections-CVdejzEl.js} +1 -1
- package/dist/client/assets/{use-secrets-CFu8AAkj.js → use-secrets-CKFwoIEP.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DS51h1BF.js → use-section-preview-base-Cd8QinTq.js} +1 -1
- package/dist/client/assets/{use-status-sounds-2-Y__opH.js → use-status-sounds-Bea3DnIL.js} +1 -1
- package/dist/client/assets/{use-tags-D4gtaS4D.js → use-tags-DGJ7b_6L.js} +1 -1
- package/dist/client/assets/{use-view-mode-MBewBxKM.js → use-view-mode-B6U9h-zG.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-MgLxHkl6.js → use-virtual-mcp-3lNvOqGc.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-OC1C857S.js +1 -0
- package/dist/client/assets/{useRouterState-D4j5BOUc.js → useRouterState-BCGWq2u1.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Dqh-yah6.js +1 -0
- package/dist/client/assets/{users-B9tdwPtR.js → users-CZhj5MDh.js} +1 -1
- package/dist/client/assets/{variant-calendar-DcOU9ApH.js → variant-calendar-B6FP44fD.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CMagOSsq.js → view-mode-toggle-DW8HwE-P.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/connection-card-BA7cqfkQ.js +0 -1
- package/dist/client/assets/connections-Dc9tGwvt.js +0 -1
- package/dist/client/assets/record-editor-DMAjK5xd.js +0 -1
- package/dist/client/assets/registry-C9Xn2IiN.js +0 -2
- package/dist/client/assets/store-registry-CVzehzVt.js +0 -2
- package/dist/client/assets/useInfiniteQuery-DSEAwRSE.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-B4qA_36b.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -1435,7 +1435,7 @@ Guidelines:
|
|
|
1435
1435
|
|
|
1436
1436
|
return { consoleLogs, errors, evaluateResult };
|
|
1437
1437
|
}
|
|
1438
|
-
`}function eY$($,Z){let{browserless:X,objectStorage:Q,toolOutputMap:Y}=Z;return _$({description:"Inspect a web page's client-side runtime state. Navigates to a URL and collects browser console logs, JavaScript errors, and optionally evaluates a JS expression (e.g. window.dataLayer, document.title). Use this for debugging client-side issues, checking analytics setup, or inspecting runtime state. "+"For very large results the output may be truncated \u2014 use read_tool_output to access the full content.",inputSchema:$0(v34),execute:async(G,J)=>{let W=performance.now();try{let K=b34(G.url,{evaluate:G.evaluate,waitUntil:G.waitUntil}),H;try{H=await fetch(`${X.baseUrl}/function?token=${encodeURIComponent(X.token)}`,{method:"POST",headers:{"Content-Type":"application/javascript"},body:K,signal:AbortSignal.timeout(sY$)})}catch(
|
|
1438
|
+
`}function eY$($,Z){let{browserless:X,objectStorage:Q,toolOutputMap:Y}=Z;return _$({description:"Inspect a web page's client-side runtime state. Navigates to a URL and collects browser console logs, JavaScript errors, and optionally evaluates a JS expression (e.g. window.dataLayer, document.title). Use this for debugging client-side issues, checking analytics setup, or inspecting runtime state. "+"For very large results the output may be truncated \u2014 use read_tool_output to access the full content.",inputSchema:$0(v34),execute:async(G,J)=>{let W=performance.now();try{let K=b34(G.url,{evaluate:G.evaluate,waitUntil:G.waitUntil}),H;try{H=await fetch(`${X.baseUrl}/function?token=${encodeURIComponent(X.token)}`,{method:"POST",headers:{"Content-Type":"application/javascript"},body:K,signal:AbortSignal.timeout(sY$)})}catch(O){return{success:!1,error:O instanceof Error&&O.name==="TimeoutError"?`Browserless function call timed out after ${sY$}ms`:`Browserless function call failed: ${O instanceof Error?O.message:String(O)}`,url:G.url}}if(!H.ok){let O=await H.text().catch(()=>"Unknown error");return{success:!1,error:`Browserless function call failed (${H.status}): ${O.slice(0,_34)}`,url:G.url}}let N=await H.text(),F;try{F=JSON.parse(N)}catch{return{success:!1,error:`Browserless returned non-JSON response: ${N.slice(0,200)}`,url:G.url}}let U=JSON.stringify(F,null,2);Y.set(J.toolCallId,U);let w=r7(U);if(w>AV){let O=`inspect-pages/${crypto.randomUUID()}.json`,D=new TextEncoder().encode(U);try{await Q.put(O,D,{contentType:"application/json"});let L=cX(U);return{success:!0,uri:G7(O),preview:L,url:G.url,tokenCount:w,consoleLogCount:F.consoleLogs?.length??0,errorCount:F.errors?.length??0,hasEvaluateResult:F.evaluateResult!=null}}catch(L){console.error("[inspect-page] Failed to upload to storage, returning inline",L)}}return{success:!0,consoleLogs:F.consoleLogs,errors:F.errors,evaluateResult:F.evaluateResult,url:G.url,tokenCount:w}}finally{let K=performance.now()-W;$.write({type:"data-tool-metadata",id:J.toolCallId,data:{latencyMs:K}})}}})}var sY$=45000,_34=500,v34;var $G$=B(()=>{k4();PN();zV();v34=nU0.object({url:nU0.string().url().refine(($)=>/^https?:\/\//i.test($),{message:"URL must use http or https"}).describe("The URL of the web page to inspect."),evaluate:nU0.string().optional().describe(`Optional JavaScript expression to evaluate in the page context after load. Examples: 'window.dataLayer', 'document.querySelectorAll("script").length', 'performance.getEntriesByType("resource").map(e => ({name: e.name, duration: e.duration}))'`),waitUntil:nU0.enum(["load","domcontentloaded","networkidle0","networkidle2"]).optional().describe("When to consider navigation complete. Defaults to 'networkidle2'.")})});import{z as Mx}from"zod";function ZG$($,Z){let{toolOutputMap:X,objectStorage:Q,kind:Y}=Z,G=Y==="scrape"?Mx.object({url:Mx.string().url().describe("The URL of the web page to scrape.")}):Mx.object({url:Mx.string().url().describe("The URL of the web page to inspect."),evaluate:Mx.string().optional().describe("Optional JavaScript expression to evaluate."),waitUntil:Mx.enum(["load","domcontentloaded","networkidle0","networkidle2"]).optional().describe("When to consider navigation complete.")});return _$({description:Y==="scrape"?"Scrape the rendered HTML content of a web page.":"Inspect a web page's client-side runtime state.",inputSchema:$0(G),execute:async(J,W)=>{let K=performance.now();try{let H=process.env.BROWSERLESS_TOKEN;if(!H)return{success:!1,error:"BROWSERLESS_TOKEN is not configured."};if(Y==="scrape"){let j=await fetch(`${PV}/content?token=${encodeURIComponent(H)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:J.url})});if(!j.ok){let P=await j.text().catch(()=>"Unknown error");return{success:!1,error:`Browserless content fetch failed (${j.status}): ${P}`,url:J.url}}let z=await j.text();X.set(W.toolCallId,z);let A=r7(z);if(A>rw&&Q){let P=`scraped-pages/${crypto.randomUUID()}.html`;return await Q.put(P,new TextEncoder().encode(z),{contentType:"text/html"}),{success:!0,uri:G7(P),preview:cX(z),url:J.url,tokenCount:A}}return{success:!0,content:z,url:J.url,tokenCount:A}}let N=J,F=N.waitUntil??"networkidle2",U=N.evaluate?JSON.stringify(N.evaluate):"null",w=`
|
|
1439
1439
|
export default async function ({ page }) {
|
|
1440
1440
|
const consoleLogs = [];
|
|
1441
1441
|
const errors = [];
|
|
@@ -2726,7 +2726,7 @@ Do NOT require review (requiresReview = false) when the changes are low-risk, su
|
|
|
2726
2726
|
|
|
2727
2727
|
When unsure between the two, lean toward NOT requiring review for small frontend-only diffs, and toward requiring it for anything backend or large.
|
|
2728
2728
|
|
|
2729
|
-
Respond with the structured verdict and a short reason.`,Zv$;var Qv$=B(()=>{k4();iw();J41();o86=W41.object({requiresReview:W41.boolean().describe("true if the changes should go through pull-request review"),reason:W41.string().describe("One short sentence explaining the decision (max ~120 chars)")});Zv$={requiresReview:!1,reason:""}});function e86($){if(!$||$.includes(".."))return!1;return s86.test($)}function Yv$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!e86(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function Gv$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var s86;var Jv$=B(()=>{s86=/^[\w./@-]+$/});function K41($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function Wv$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function Kv$($,Z,X,Q){if(!Q.connectionId)throw new pg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new pg(d7);await Iw({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:d7;throw new pg(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await qw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Aj0($),H=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!H.ok){let N=await dw(H,$46).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var $46=10485760,pg;var Hv$=B(()=>{YN();e81();yi();af();pg=class pg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function X46($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!Z46.test(Z))throw Error(`Invalid branch name: ${$}`)}function lC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(Y46)])}function dC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function H41($,Z){let Q=(Tj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return Tj0.set($,Y),Y.finally(()=>{if(Tj0.get($)===Y)Tj0.delete($)}),Q}async function fZ($,Z,X){let Q=dC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...cY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?J46(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...cY}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function J46($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function Rj0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function W46($){return Uv$.includes($)}var Z46,Nv$=524288,Q46=65536,Y46=1e4,Fv$=2000,G46,Tj0,cY,Uv$,wv$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",G46),$.post("/:virtualMcpId/:branch/write",(Z)=>fZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>fZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>fZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>fZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>fZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>fZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>fZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!W46(X))return Z.json({error:`step must be one of: ${Uv$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=r(Z.var.studioContext),G=Ox(Q.virtualMcpMetadata);try{await eF0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return fZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return QF(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return o_$(Z,{ctx:Z.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(Fv$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(Fv$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>fZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return H41(Q,async()=>{try{await $41(J,X,Q);let W=Wv$(Y,G);if(W)await Kv$(J,X,Q,W)}catch(W){if(W instanceof pg)return Z.json({error:W.message},403,cY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,cY)}return fZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return H41(X,()=>fZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return H41(Q,async()=>{try{await $41(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,cY)}return fZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",HZ({maxSize:Nv$,onError:(Z)=>Z.json({error:"Payload too large"},413,cY)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=Q41(K)&&N?[K,H]:await Promise.all([Rj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Rj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await $v$(J,F,U);return Z.json(w,200,cY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,cY);return Z.json({error:K},502,cY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",HZ({maxSize:Nv$,onError:(Z)=>Z.json({error:"Payload too large"},413,cY)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=Q41(K)&&N?[K,H]:await Promise.all([Rj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Rj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await Xv$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,cY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,cY);return Z.json({error:K},502,cY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=K41(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",HZ({maxSize:Q46,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=Yv$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=Gv$(Y,J.resolveType),K=K41(W),H;try{H=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var Ov$=B(()=>{y8();mO();ng();i_$();QN();p_$();j3();hw();t_$();r_$();bd0();fi();J41();Qv$();Jv$();Hv$();Z46=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;G46=m_$(async($,Z)=>{let X=$.var.studioContext;try{Z0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=r(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{X46(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Xi({orgId:Y.id,virtualMcpId:G,branch:J}),H=await wN(X,J,Q),N=n_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await uX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Tj0=new Map;cY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};Uv$=["clone","install","start"]});var Bv$=($)=>{let Z=new B1;if(Z.use("*",vC),Z.route("/",hE0()),Z.route("/",kS$()),Z.route("/",C_$()),Z.route("/",k_$()),Z.route("/",jj0()),Z.route("/tools",g_$()),Z.route("/",f_$()),Z.route("/",N_$({kvStorage:$.kvStorage})),Z.route("/",K_$()),Z.route("/fs",P_$({getConnection:$.getNatsConnection})),Z.route("/sandbox",wv$()),Z.route("/",I_$()),Z.route("/deco-sites",cE0()),Z.route("/sso",vE0()),Z.route("/",zj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",zS$()),$.mountDevAssets)Z.route("/dev-assets",lE0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",EM$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",T_$()),Z.route("/mcp",XO0()),Z.route("/mcp/self",Ej0()),Z.route("/mcp",GO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Dv$=B(()=>{y8();z$1();PS$();I$1();dE0();Uo();E$1();H_$();F_$();A_$();Rn();N$1();JO0();n81();R_$();q_$();S_$();__$();x_$();t81();h_$();o81();QO0();Ov$()});function H46($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}async function N46($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(K46)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var K46=1e4,F46=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Lv$=()=>{let $=new B1;return $.use("*",F46),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await N46(Q,Y);return Z.json({apps:H46(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Ev$=B(()=>{y8();S$()});import{z as M1}from"zod";function uK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function P46($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function A46($,Z,X){try{return JSON.parse($)}catch{throw new Pv$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function T46($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:A46(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function R46($){let Z=$.map((X)=>{let Q=X.function.parameters?PY(X.function.parameters):PY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function I46($){if(!$)return;return{openai:{response_format:$}}}function q46(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function jv$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function zv$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var U46=256,w46,O46,B46,D46,L46,E46,j46,z46,Pv$,Av$,Tv$;var Rv$=B(()=>{k4();y8();ng();xN();w46=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),O46=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),B46=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(O46).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),D46=M1.object({type:M1.literal("text")}),L46=M1.object({type:M1.literal("json_object")}),E46=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),j46=M1.union([D46,L46,E46]),z46=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(B46),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(w46).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:j46.optional(),user:M1.string().optional()});Pv$=class Pv$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Av$=new B1;Av$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(uK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(uK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(uK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=z46.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(uK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=P46(G.model);if(!J)return $.json(uK("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>QD(j.providerId));if(!E)return $.json(uK("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(uK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=T46(G.messages),U=G.tools?R46(G.tools):void 0,w=I46(G.response_format),O=q46(),D=Math.floor(Date.now()/1000);if(G.stream)return QF($,async(L)=>{let E=jv$(N,F,U,G,w,$.req.raw.signal);try{let j=Tw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=U46)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:zv$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await M(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=jv$(N,F,U,G,w,$.req.raw.signal),E=await Pw(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:D,model:G.model,choices:[{index:0,message:j,finish_reason:zv$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(uK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(uK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(uK(Y.message,"server_error"),500)}});Tv$=Av$});var qv$;var Iv$=B(()=>{qv$={name:"decocms",version:"4.204.24",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function S46(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??k46}}var Mv$,k46="https://ph.studio.decocms.com",kv$;var Sv$=B(()=>{y8();ux0();MV();jZ();S$();G$1();Iv$();Mv$=new B1;Mv$.get("/",($)=>{let Z={version:qv$.version,theme:Wu1(),...pD().logo&&{logo:pD().logo},...FK()&&{internalUrl:xq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:gk$(),posthog:S46(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!FK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});kv$=Mv$});function tg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function N41($){return(tg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function Cv$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(tg($))}&sz=${Z}`}function Vv$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function _v$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?Vv$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):Vv$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var mC,V46,C46,_46,v46,vv$;var bv$=B(()=>{mC=l0.enum(["good","bad","neutral"]),V46=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:mC.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),C46=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(V46)),_46={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},v46=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:mC.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:mC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:mC.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:mC.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(C46).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:mC.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:mC.optional()})).min(1)})]),vv$=l0.object({..._46,template:v46})});function Ij0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=vv$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var F41=B(()=>{bv$()});import{join as fv$}from"path";async function f46($){try{let Z=await fetch(`${fW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(b46)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Ij0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||N41($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function lY($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function x46($,Z){let X=tg($),Q=Z?.brand?.trim()||N41(X),Y=Cv$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=_v$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${lY(W)}</title>`,`<meta name="description" content="${lY(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${lY(W)}" />`,`<meta property="og:description" content="${lY(K)}" />`,`<meta property="og:url" content="${lY(J)}" />`,`<meta property="og:image" content="${lY(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${lY(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${lY(W)}" />`,`<meta name="twitter:description" content="${lY(K)}" />`,`<meta name="twitter:image" content="${lY(H)}" />`,`<meta name="twitter:image:alt" content="${lY(N)}" />`,`<link rel="canonical" href="${lY(J)}" />`,`<link rel="icon" href="${lY(Y)}" sizes="any" />`].join(`
|
|
2729
|
+
Respond with the structured verdict and a short reason.`,Zv$;var Qv$=B(()=>{k4();iw();J41();o86=W41.object({requiresReview:W41.boolean().describe("true if the changes should go through pull-request review"),reason:W41.string().describe("One short sentence explaining the decision (max ~120 chars)")});Zv$={requiresReview:!1,reason:""}});function e86($){if(!$||$.includes(".."))return!1;return s86.test($)}function Yv$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!e86(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function Gv$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var s86;var Jv$=B(()=>{s86=/^[\w./@-]+$/});function K41($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function Wv$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function Kv$($,Z,X,Q){if(!Q.connectionId)throw new pg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new pg(d7);await Iw({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:d7;throw new pg(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await qw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Aj0($),H=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!H.ok){let N=await dw(H,$46).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var $46=10485760,pg;var Hv$=B(()=>{YN();e81();yi();af();pg=class pg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function X46($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!Z46.test(Z))throw Error(`Invalid branch name: ${$}`)}function lC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(Y46)])}function dC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function H41($,Z){let Q=(Tj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return Tj0.set($,Y),Y.finally(()=>{if(Tj0.get($)===Y)Tj0.delete($)}),Q}async function fZ($,Z,X){let Q=dC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...cY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?J46(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...cY}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function J46($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function Rj0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function W46($){return Uv$.includes($)}var Z46,Nv$=524288,Q46=65536,Y46=1e4,Fv$=2000,G46,Tj0,cY,Uv$,wv$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",G46),$.post("/:virtualMcpId/:branch/write",(Z)=>fZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>fZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>fZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>fZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>fZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>fZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>fZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:lC(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!W46(X))return Z.json({error:`step must be one of: ${Uv$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=r(Z.var.studioContext),G=Ox(Q.virtualMcpMetadata);try{await eF0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return fZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return QF(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return o_$(Z,{ctx:Z.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(Fv$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(Fv$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>fZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return H41(Q,async()=>{try{await $41(J,X,Q);let W=Wv$(Y,G);if(W)await Kv$(J,X,Q,W)}catch(W){if(W instanceof pg)return Z.json({error:W.message},403,cY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,cY)}return fZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return H41(X,()=>fZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return H41(Q,async()=>{try{await $41(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,cY)}return fZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",HZ({maxSize:Nv$,onError:(Z)=>Z.json({error:"Payload too large"},413,cY)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=Q41(K)&&N?[K,H]:await Promise.all([Rj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Rj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await $v$(J,F,U);return Z.json(w,200,cY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,cY);return Z.json({error:K},502,cY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",HZ({maxSize:Nv$,onError:(Z)=>Z.json({error:"Payload too large"},413,cY)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=Q41(K)&&N?[K,H]:await Promise.all([Rj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Rj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await Xv$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,cY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,cY);return Z.json({error:K},502,cY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=K41(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",HZ({maxSize:Q46,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=dC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=Yv$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=Gv$(Y,J.resolveType),K=K41(W),H;try{H=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var Ov$=B(()=>{y8();mO();ng();i_$();QN();p_$();j3();hw();t_$();r_$();bd0();fi();J41();Qv$();Jv$();Hv$();Z46=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;G46=m_$(async($,Z)=>{let X=$.var.studioContext;try{Z0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=r(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{X46(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Xi({orgId:Y.id,virtualMcpId:G,branch:J}),H=await wN(X,J,Q),N=n_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await uX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Tj0=new Map;cY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};Uv$=["clone","install","start"]});var Bv$=($)=>{let Z=new B1;if(Z.use("*",vC),Z.route("/",hE0()),Z.route("/",kS$()),Z.route("/",C_$()),Z.route("/",k_$()),Z.route("/",jj0()),Z.route("/tools",g_$()),Z.route("/",f_$()),Z.route("/",N_$({kvStorage:$.kvStorage})),Z.route("/",K_$()),Z.route("/fs",P_$({getConnection:$.getNatsConnection})),Z.route("/sandbox",wv$()),Z.route("/",I_$()),Z.route("/deco-sites",cE0()),Z.route("/sso",vE0()),Z.route("/",zj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",zS$()),$.mountDevAssets)Z.route("/dev-assets",lE0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",EM$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",T_$()),Z.route("/mcp",XO0()),Z.route("/mcp/self",Ej0()),Z.route("/mcp",GO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Dv$=B(()=>{y8();z$1();PS$();I$1();dE0();Uo();E$1();H_$();F_$();A_$();Rn();N$1();JO0();n81();R_$();q_$();S_$();__$();x_$();t81();h_$();o81();QO0();Ov$()});function H46($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}async function N46($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(K46)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var K46=1e4,F46=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Lv$=()=>{let $=new B1;return $.use("*",F46),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await N46(Q,Y);return Z.json({apps:H46(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Ev$=B(()=>{y8();S$()});import{z as M1}from"zod";function uK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function P46($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function A46($,Z,X){try{return JSON.parse($)}catch{throw new Pv$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function T46($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:A46(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function R46($){let Z=$.map((X)=>{let Q=X.function.parameters?PY(X.function.parameters):PY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function I46($){if(!$)return;return{openai:{response_format:$}}}function q46(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function jv$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function zv$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var U46=256,w46,O46,B46,D46,L46,E46,j46,z46,Pv$,Av$,Tv$;var Rv$=B(()=>{k4();y8();ng();xN();w46=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),O46=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),B46=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(O46).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),D46=M1.object({type:M1.literal("text")}),L46=M1.object({type:M1.literal("json_object")}),E46=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),j46=M1.union([D46,L46,E46]),z46=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(B46),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(w46).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:j46.optional(),user:M1.string().optional()});Pv$=class Pv$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Av$=new B1;Av$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(uK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(uK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(uK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=z46.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(uK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=P46(G.model);if(!J)return $.json(uK("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>QD(j.providerId));if(!E)return $.json(uK("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(uK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=T46(G.messages),U=G.tools?R46(G.tools):void 0,w=I46(G.response_format),O=q46(),D=Math.floor(Date.now()/1000);if(G.stream)return QF($,async(L)=>{let E=jv$(N,F,U,G,w,$.req.raw.signal);try{let j=Tw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=U46)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:zv$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await M(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=jv$(N,F,U,G,w,$.req.raw.signal),E=await Pw(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:D,model:G.model,choices:[{index:0,message:j,finish_reason:zv$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(uK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(uK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(uK(Y.message,"server_error"),500)}});Tv$=Av$});var qv$;var Iv$=B(()=>{qv$={name:"decocms",version:"4.204.26",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function S46(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??k46}}var Mv$,k46="https://ph.studio.decocms.com",kv$;var Sv$=B(()=>{y8();ux0();MV();jZ();S$();G$1();Iv$();Mv$=new B1;Mv$.get("/",($)=>{let Z={version:qv$.version,theme:Wu1(),...pD().logo&&{logo:pD().logo},...FK()&&{internalUrl:xq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:gk$(),posthog:S46(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!FK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});kv$=Mv$});function tg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function N41($){return(tg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function Cv$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(tg($))}&sz=${Z}`}function Vv$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function _v$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?Vv$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):Vv$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var mC,V46,C46,_46,v46,vv$;var bv$=B(()=>{mC=l0.enum(["good","bad","neutral"]),V46=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:mC.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),C46=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(V46)),_46={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},v46=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:mC.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:mC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:mC.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:mC.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(C46).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:mC.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:mC.optional()})).min(1)})]),vv$=l0.object({..._46,template:v46})});function Ij0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=vv$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var F41=B(()=>{bv$()});import{join as fv$}from"path";async function f46($){try{let Z=await fetch(`${fW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(b46)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Ij0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||N41($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function lY($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function x46($,Z){let X=tg($),Q=Z?.brand?.trim()||N41(X),Y=Cv$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=_v$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${lY(W)}</title>`,`<meta name="description" content="${lY(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${lY(W)}" />`,`<meta property="og:description" content="${lY(K)}" />`,`<meta property="og:url" content="${lY(J)}" />`,`<meta property="og:image" content="${lY(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${lY(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${lY(W)}" />`,`<meta name="twitter:description" content="${lY(K)}" />`,`<meta name="twitter:image" content="${lY(H)}" />`,`<meta name="twitter:image:alt" content="${lY(N)}" />`,`<link rel="canonical" href="${lY(J)}" />`,`<link rel="icon" href="${lY(Y)}" sizes="any" />`].join(`
|
|
2730
2730
|
`)}function y46($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
|
|
2731
2731
|
</head>`)}function xv$($){let Z=new B1;return Z.get("/:domain/og.png",async(X)=>{let Q=tg(X.req.param("domain")),Y=async()=>{let G=$?Bun.file(fv$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return X.notFound();return X.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${fW({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(g46)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return X.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),Y=$?fv$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return X.notFound();let J=await G.text();try{let W=await f46(tg(Q)),K=x46(Q,W);return X.html(y46(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var b46=2500,g46=1e4;var yv$=B(()=>{y8();F41();WL();S$()});function ho($,Z){return fetch(`${fW({})}${$}`,Z)}async function h46($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let Y=Q.toString()?`?${Q.toString()}`:"",G=await ho(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=Ij0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var u46,YF,gv$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},hv$;var uv$=B(()=>{y8();IG();WL();F41();u46=new Set(["complete","errored","terminated","unknown"]),YF=new B1;YF.use("*",async($,Z)=>{let X=await j8.api.getSession({headers:$.req.raw.headers});$.set("reportUser",X?.user?.id?{email:X.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});YF.use("/link-token/*",gv$);YF.use("/suggest",gv$);YF.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let X=$.get("reportUser"),Q=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await h46(Z,Q,Y);if($.header("Cache-Control","private, no-store"),X||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});YF.post("/run",async($)=>{let Z=$.get("reportUser"),X;try{X=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let Q=typeof X.domain==="string"?X.domain.trim():"";if(!Q)return $.json({error:"domain is required"},400);let Y=Z?.email,G=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await ho("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${JL({})}`},body:JSON.stringify({url:Q,...Y?{email:Y}:{},distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});YF.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await ho(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${JL({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let Y=(await X.json()).status??"unknown",G={done:u46.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});YF.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await ho(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(X.status===404)return $.json(null);if(!X.ok)return $.json({error:`link token HTTP ${X.status}`},502);return $.json(await X.json())}catch{return $.json({error:"link token resolve failed"},502)}});YF.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await ho(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!X.ok)return $.json({suggestions:[]});let Q=await X.json();return $.json({suggestions:Array.isArray(Q.suggestions)?Q.suggestions:[]})}catch{return $.json({suggestions:[]})}});hv$=YF});import{createHmac as c46,timingSafeEqual as l46}from"crypto";function lv$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let Y,G=[];for(let H of Z.split(",")){let N=H.indexOf("=");if(N<=0)continue;let F=H.slice(0,N).trim(),U=H.slice(N+1).trim();if(F==="t")Y=U;else if(F==="v1")G.push(U)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>d46)return!1;let W=c46("sha256",X).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((H)=>{let N=Buffer.from(H,"hex");return K.length===N.length&&l46(K,N)})}function dv$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=QJ(Z),Q=QJ(QJ(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:cK(X.id),type:X.type,created:typeof X.created==="number"?X.created:void 0,livemode:typeof X.livemode==="boolean"?X.livemode:void 0,data:{object:Q}}}function mv$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function cK($){return typeof $==="string"?$:void 0}function QJ($){return typeof $==="object"&&$!==null?$:void 0}function qj0($){return typeof $==="number"?new Date($*1000):null}function O41($){return cK($)??cK(QJ($)?.id)}function m46($){return O41($.subscription)??cK(QJ(QJ($.parent)?.subscription_details)?.subscription)}function i46($){let Z=qj0($.current_period_end);if(Z)return Z;let X=QJ($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let Y of X){let G=QJ(Y)?.current_period_end;if(typeof G==="number"&&G>Q)Q=G}return Q>0?new Date(Q*1000):null}function U41($,Z){let X=qj0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function w41($,Z){let X=qj0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function n46($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=cK(QJ(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(cK(QJ(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(cK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=cK(X.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:Q}),{handled:!1,reason:"topup session without id"};let W=Number(QJ(X.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:Q,creditCents:QJ(X.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:Q,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(X.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(cK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(Q);if(!Y)return{handled:!1,reason:"unknown org"};let G=O41(X.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(U41(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:O41(X.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:w41(Z,Y)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=cK(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&U41(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":mv$(X.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:i46(X),...G&&{stripeSubscriptionId:null},lastStripeEventAt:w41(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let Q=m46(X);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};if(U41(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:qj0(X.period_end),lastStripeEventAt:w41(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function p46($,Z){if(!Z.handled||$.livemode===!1)return null;let X=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:mv$(X.status),...typeof X.cancel_at_period_end==="boolean"?{cancel_at_period_end:X.cancel_at_period_end}:{}}};case"invoice.paid":if(X.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function cv$($,Z){let X=p46($,Z);if(!X)return;nJ({event:X.name,organizationId:X.organizationId,...$.id?{uuid:Bl1(`stripe:${$.id}:${X.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:X.properties})}async function iv$($){let Z=new CW(m8().db),X=await n46(Z,$);if(!(X.handled&&X.topUp))cv$($,X);if(X.handled&&X.topUp)await TF$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId}),cv$($,X);if(!X.handled&&X.orphanSubscriptionId)try{await Vt1(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof X3&&(Q.status===400||Q.status===404)))throw Q}return X}var d46=300;var nv$=B(()=>{LG();f4();l80();Vm();$r0()});var t46=1048576,B41;var pv$=B(()=>{y8();mO();S$();nv$();B41=new B1;B41.post("/webhook",HZ({maxSize:t46,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=c0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!lv$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=dv$(X);if(!Y)return $.json({error:"invalid payload"},400);let G=await iv$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as o46}from"crypto";function a46($,Z,X){if(!Z?.startsWith("sha256="))return!1;let Q=new Bun.CryptoHasher("sha256",X).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==Q.length)return!1;return o46(Buffer.from(Y),Buffer.from(Q))}var r46=5242880,D41;var tv$=B(()=>{y8();mO();_i();D41=new B1;D41.post("/webhook",HZ({maxSize:r46,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let X=await $.req.text();if(!a46(X,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let Q;try{Q=JSON.parse(X)}catch{return $.json({error:"invalid payload"},400)}let Y=Q.ref,G=Q.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await kd0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function ov$($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var rv$,s46,e46,av$;var sv$=B(()=>{y8();iJ();kx();Sf();rv$=new B1,s46=["range","if-none-match","if-modified-since"],e46=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];rv$.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),X=Z.organization?.id;if(!Z.auth?.user?.id){if(Mg($))return $.redirect(`/login?next=${encodeURIComponent($.req.path)}`,302);throw new e1(401,{message:"Authentication required"})}if(!X)throw new e1(401,{message:"Organization context required"});let Q=$.req.path.replace(/^.*\/files\//,"");if(!Q)throw new e1(400,{message:"Missing file key"});let Y=await Kn(Q,Z);if(!Y)throw new e1(503,{message:"Object storage not configured"});if(Y.startsWith("data:")&&aJ()){let K=Y.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new e1(500,{message:"Invalid data URL from storage"});let[,H,N]=K,F=Buffer.from(N,"base64"),U=new Headers({"Content-Type":H,"Cache-Control":"private, max-age=86400"});return ov$(U,H),new Response(F,{status:200,headers:U})}let G=new Headers;for(let K of s46){let H=$.req.header(K);if(H)G.set(K,H)}let J=await fetch(Y,{headers:G});if(J.status===403||J.status===404)throw new e1(404,{message:"File not found"});if(!J.ok&&J.status!==304&&J.status!==416)throw console.error(`[files] upstream storage error ${J.status} for key:`,Q),new e1(502,{message:"Upstream storage error"});let W=new Headers;for(let K of e46){let H=J.headers.get(K);if(H)W.set(K,H)}return W.set("Cache-Control","private, max-age=86400"),ov$(W,W.get("content-type")??""),new Response(J.body,{status:J.status,headers:W})});av$=rv$});var uo=C((iC)=>{var $66=iC&&iC.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),Z66=iC&&iC.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))$66(Z,$,X)};Object.defineProperty(iC,"__esModule",{value:!0});Z66($Y(),iC)});var Zb$=C((ev$)=>{Object.defineProperty(ev$,"__esModule",{value:!0});ev$.version=void 0;ev$.version="3.4.0"});var Yb$=C((lK)=>{var X66=lK&&lK.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(lK,"__esModule",{value:!0});lK.NodeTransport=lK.VERSION=void 0;lK.nodeResolveHost=K66;var d6=uo(),Q66=z0("net"),L41=z0("tls"),Y66=z0("path"),Xb$=z0("fs"),G66=X66(z0("dns")),J66=Zb$();lK.VERSION=J66.version;var W66="nats.js";class Qb${socket;version;lang;yields=[];signal=(0,d6.deferred)();closedNotification=(0,d6.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=W66,this.version=lK.VERSION}async connect($,Z){this.tlsName=$.tlsName,this.options=Z;let{tls:X}=this.options,{handshakeFirst:Q}=X||{};try{if(Q===!0)this.socket=await this.tlsFirst($);else this.socket=await this.dial($);if(this.done)this.socket?.destroy();let Y=await this.peekInfo();(0,d6.checkOptions)(Y,Z);let{tls_required:G,tls_available:J}=Y,W=J===!0&&Z.tls!==null;if(!Q&&(G||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(G&&this.socket.encrypted!==!0)throw d6.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(Y){let G=Y;if(!G)G=new d6.errors.ConnectionError("error connecting - node provided an undefined error");let{code:J}=G,W=J==="ECONNREFUSED"?new d6.errors.ConnectionError("connection refused",{cause:G}):G;throw this.socket?.destroy(),W}}dial($){let Z=(0,d6.deferred)(),X,Q=(0,Q66.createConnection)($.port,$.hostname,()=>{Z.resolve(Q),Q.removeAllListeners()});return Q.on("error",(Y)=>{X=Y}),Q.on("close",()=>{Q.removeAllListeners(),Z.reject(X)}),Q.setNoDelay(!0),Z}get isClosed(){return this.done}close($){return this._closed($,!1)}peekInfo(){let $=(0,d6.deferred)(),Z;return this.socket.on("data",(X)=>{this.yields.push(X);let Q=d6.DataBuffer.concat(...this.yields),Y=(0,d6.extractProtocolMessage)(Q);if(Y!=="")try{let G=d6.INFO.exec(Y);if(!G)throw Error("unexpected response from server");let J=JSON.parse(G[1]);$.resolve(J)}catch(G){$.reject(G)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(X)=>{Z=X}),this.socket.on("close",()=>{this.socket.removeAllListeners(),$.reject(Z)}),$}loadFile($){if(!$)return Promise.resolve();let Z=(0,d6.deferred)();try{if($=(0,Y66.resolve)($),!(0,Xb$.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,Xb$.readFile)($,(X,Q)=>{if(X)return Z.reject(X);Z.resolve(Q)})}catch(X){Z.reject(X)}return Z}async loadClientCerts(){let $={},{certFile:Z,cert:X,caFile:Q,ca:Y,keyFile:G,key:J}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(X)$.cert=X;if(G){let W=await this.loadFile(G);if(W)$.key=W}else if(J)$.key=J;if(Q){let W=await this.loadFile(Q);if(W)$.ca=[W]}else if(Y)$.ca=Y;return Promise.resolve($)}catch(W){return Promise.reject(W)}}async tlsFirst($){let Z,X={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)X.socket=this.socket;if(typeof this.options.tls==="object")try{let Y=await this.loadClientCerts()||{};X=(0,d6.extend)(X,this.options.tls,Y)}catch(Y){return Promise.reject(new d6.errors.ConnectionError(Y.message,{cause:Y}))}let Q=(0,d6.deferred)();try{let Y=(0,L41.connect)($.port,$.hostname,X,()=>{Y.removeAllListeners(),Q.resolve(Y)});Y.on("error",(G)=>{Z=G}),Y.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!Y.authorized)throw Y.authorizationError}),Y.on("close",()=>{Q.reject(Z),Y.removeAllListeners()}),Y.setNoDelay(!0)}catch(Y){Q.reject(new d6.errors.ConnectionError(Y.message,{cause:Y}))}return Q}async startTLS(){let $,Z={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let Q=await this.loadClientCerts()||{};Z=(0,d6.extend)(Z,this.options.tls,Q)}catch(Q){return Promise.reject(new d6.errors.ConnectionError(Q.message,{cause:Q}))}let X=(0,d6.deferred)();try{let Q=(0,L41.connect)(Z,()=>{Q.removeAllListeners(),X.resolve(Q)});Q.on("error",(Y)=>{$=Y}),Q.on("secureConnect",()=>{if(Z.rejectUnauthorized===!1)return;if(!Q.authorized)throw Q.authorizationError}),Q.on("close",()=>{X.reject($),Q.removeAllListeners()})}catch(Q){X.reject(new d6.errors.ConnectionError(Q.message,{cause:Q}))}return X}setupHandlers(){let $;this.socket.on("data",(Z)=>{return this.yields.push(Z),this.signal.resolve()}),this.socket.on("error",(Z)=>{$=Z}),this.socket.on("end",()=>{if(this.socket?.destroyed)return;this.socket?.write(new Uint8Array(0),()=>{this.socket?.end()})}),this.socket.on("close",()=>{this._closed($,!1)})}[Symbol.asyncIterator](){return this.iterate()}async*iterate(){while(!0){if(this.yields.length===0)await this.signal;let $=this.yields;this.yields=[];for(let Z=0;Z<$.length;Z++){if(this.options.debug)console.info(`> ${(0,d6.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,d6.deferred)()}}discard(){if(this.done=!0,this.socket)try{this.socket.removeAllListeners(),this.socket.destroy()}catch{}}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof L41.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,d6.render)($)}`);let Z=(0,d6.deferred)();try{this.socket.write($,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,d6.render)($)}: ${X}`);return Z.reject(X)}return Z.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,d6.render)($)}: ${X}`);Z.reject(X)}return Z}send($){this._send($).catch((X)=>{})}async _closed($,Z=!0){if(!this.connected)return;if(this.done){this.socket?.destroy();return}if(this.closeError=$,!$&&this.socket&&Z)try{await this._send(new TextEncoder().encode(""))}catch(X){if(this.options.debug)console.log("transport close terminated with an error",X)}try{if(this.socket)this.socket.removeAllListeners(),this.socket?.destroy(),this.socket=void 0}catch(X){console.log(X)}this.done=!0,this.closedNotification.resolve(this.closeError)}closed(){return this.closedNotification}}lK.NodeTransport=Qb$;function K66($){let Z=(0,d6.deferred)();return G66.default.lookup($,{all:!0},(X,Q)=>{if(X){Z.reject(X);return}let Y=[];for(let G of Q)Y.push(G.address);if(Y.length===0)Y.push($);Z.resolve(Y)}),Z}});var Hb$=C((Kb$)=>{Object.defineProperty(Kb$,"__esModule",{value:!0});Kb$.connect=H66;var Gb$=Yb$(),Jb$=uo(),Wb$=uo();function H66($={}){if((0,Wb$.hasWsProtocol)($))return Promise.reject(Wb$.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,Jb$.setTransportFactory)({factory:()=>{return new Gb$.NodeTransport},dnsResolveFn:Gb$.nodeResolveHost}),Jb$.NatsConnectionImpl.connect($)}});var Nb$=C((GF)=>{var F66=GF&&GF.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),U66=GF&&GF.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))F66(Z,$,X)};Object.defineProperty(GF,"__esModule",{value:!0});GF.connect=void 0;var w66=Hb$();Object.defineProperty(GF,"connect",{enumerable:!0,get:function(){return w66.connect}});U66(uo(),GF)});function Ob$($){let Z=$?.connectFn??L66,X=null,Q=null,Y=!1,G=!1,J=!1,W=[];function K(){return X!==null&&!X.isClosed()&&!X.isDraining()&&!J}function H(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let U of W)try{U()}catch{}}function N(U){(async()=>{for await(let w of U.status())if(w.type==="disconnect")console.log("[NatsProvider] Disconnected"),J=!0;else if(w.type==="reconnect")console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),J=!1,Q=null,H()})().catch(()=>{})}async function F(U,w){let O=0;while(!G)try{X=await Z({servers:U,timeout:D66,reconnect:!0,maxReconnectAttempts:-1,...w?{authenticator:w}:{}}),console.log(`[NatsProvider] Connected to ${X.getServer()} after ${O} attempt(s)`),Q=null,J=!1,N(X),H();return}catch{O++;let D=HX(B66,O66,O-1,2,0.5);await y$(D)}}return{init(U,w){if(Y)return;Y=!0,G=!1;let O=w?.creds?Fb$.credsAuthenticator(new TextEncoder().encode(w.creds)):void 0;F(U,O).catch(()=>{})},isConnected(){return K()},getConnection(){return K()?X:null},getJetStream(){if(!K())return null;if(!Q)Q=wb$.jetstream(X);return Q},onReady(U){if(W.push(U),K())try{U()}catch{}},async drain(){if(G=!0,Y=!1,Q=null,J=!1,X){let U=X;X=null,await U.drain().catch(()=>{})}}}}function L66($){return Ub$.connect($)}var Fb$,Ub$,wb$,O66=100,B66=3000,D66=3000;var Bb$=B(()=>{E6();Fb$=S(zh(),1),Ub$=S(Nb$(),1),wb$=S(FB(),1)});function E41($,Z){return`${$}.${Z}`}class j41{cache;constructor($){this.cache=wg({ttlMs:$?.ttlMs??E66,maxSize:$?.maxSize??j66})}async get($,Z){return this.cache.get(E41($,Z))??null}async set($,Z,X){this.cache.set(E41($,Z),X)}async invalidate($,Z){this.cache.delete(E41($,Z))}teardown(){this.cache.clear()}}var E66=600000,j66=5000;var Db$=()=>{};function Mj0($,Z){return`${$}:${Z}`}function z41($){let Z=wg({ttlMs:$?.ttlMs??z66,maxSize:$?.maxSize??P66}),X=$?.getConnection,Q=crypto.randomUUID(),Y=new TextEncoder,G=new TextDecoder,J=null;function W(K,H){let N=X?.();if(!N)return;try{N.publish(Lb$,Y.encode(JSON.stringify({organizationId:K,keyId:H,originId:Q})))}catch(F){console.warn("[ProviderKeyCache] Publish failed (non-critical):",F)}}return{get(K,H){return Z.get(Mj0(K,H))},set(K,H,N){Z.set(Mj0(K,H),N)},invalidate(K,H){Z.delete(Mj0(K,H)),W(K,H)},start(){if(J)return;let K=X?.();if(!K)return;J=K.subscribe(Lb$),(async()=>{for await(let H of J)try{let N=JSON.parse(G.decode(H.data));if(N.originId===Q)continue;Z.delete(Mj0(N.organizationId,N.keyId))}catch{}})().catch(console.error)},teardown(){J?.unsubscribe(),J=null,Z.clear()}}}var Lb$="studio.ai-provider-keys.invalidate",z66=30000,P66=5000;var Eb$=()=>{};class P41{options;subscriptions=[];onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();seenMessageIds=new Set;constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.subscriptions.length>0)return;if(!this.onCancel)return;let Z=this.options.getConnection();if(!Z)return;let X=new TextDecoder;this.subscriptions=jb$.map((Q)=>Z.subscribe(Q));for(let Q of this.subscriptions)(async()=>{for await(let Y of Q)try{let G=JSON.parse(X.decode(Y.data));if(G.originId===this.originId)continue;if(G.messageId&&this.hasSeen(G.messageId))continue;this.onCancel?.(G.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let Z=this.options.getConnection();if(!Z)return;let X=this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId,messageId:crypto.randomUUID()}));for(let Q of jb$)Z.publish(Q,X)}catch(Z){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",Z)}}publishControlFrame($,Z){}async stop(){for(let $ of this.subscriptions)$.unsubscribe();this.subscriptions=[],this.seenMessageIds.clear(),this.onCancel=null}hasSeen($){if(this.seenMessageIds.has($))return!0;if(this.seenMessageIds.add($),this.seenMessageIds.size>1000){let Z=this.seenMessageIds.values().next().value;if(Z)this.seenMessageIds.delete(Z)}return!1}}var jb$;var zb$=B(()=>{jb$=["studio.decopilot.cancel","mesh.decopilot.cancel"]});var Pb$=($)=>{let Z;return()=>Z??=$()},A41,T41;var Ab$=B(()=>{Z5();A41=Pb$(()=>K8.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),T41=Pb$(()=>K8.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function k66(){return{name:IN,subjects:[`${Tw0}.>`],storage:i3.StorageType.File,max_age:R66,max_bytes:q66,max_msgs_per_subject:M66,discard:i3.DiscardPolicy.Old,retention:i3.RetentionPolicy.Limits,duplicate_window:I66,num_replicas:1}}class Ib${chunks=0;encodeMs=0;maxMs=0;bytes=0;windowStart=performance.now();constructor(){setInterval(()=>this.flush(),1e4).unref?.()}record($,Z){if(this.chunks++,this.encodeMs+=$,$>this.maxMs)this.maxMs=$;this.bytes+=Z}flush(){let $=performance.now(),Z=$-this.windowStart;if(this.chunks>0&&Z>0)console.warn(JSON.stringify({msg:"stream-encode-trace",windowMs:Math.round(Z),chunks:this.chunks,encodeMs:Math.round(this.encodeMs),pctOfLoop:+(this.encodeMs/Z*100).toFixed(1),maxChunkMs:+this.maxMs.toFixed(2),mbEncoded:+(this.bytes/1048576).toFixed(2)}));this.chunks=0,this.encodeMs=0,this.maxMs=0,this.bytes=0,this.windowStart=$}}function Tb$($){let Z=Rb$.headers();for(let[X,Q]of Object.entries($))Z.set(X,Q);return Z}function _66($,Z){let X=0;return{publish(Q,Y,G,J){Q.publish(Y,G,J?{headers:J}:void 0).catch((W)=>{if(X++,T66().add(1,{"org.id":Z??"unknown"}),X===1||X%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${X} total):`,W)})},get errorCount(){return X}}}function v66($){if(!($ instanceof Error))return!1;if($.name==="TimeoutError")return!0;return/timeout|no responders|503/i.test($.message)}class R41{options;js=null;jsm=null;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$){console.log("[Decopilot] StreamBuffer.init skipped: NATS not connected yet");return}let Z=k66(),X=await gZ(async()=>{let Q=this.options.getJetStreamManager?await this.options.getJetStreamManager():await i3.jetstreamManager($);try{await Q.streams.info(IN),await Q.streams.update(IN,Z)}catch(Y){if(Y instanceof Error&&Y.message.includes("stream not found"))await Q.streams.add(Z);else if(Y instanceof Error&&/can ?not change.*storage|storage type/i.test(Y.message))await Q.streams.delete(IN),await Q.streams.add(Z);else throw Y}return Q},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:v66});this.js=this.options.getJetStream(),this.jsm=X,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,X,Q){let Y=this.js;if(!Y)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let G=_66(Z,Q),J=!1,W=()=>{if(J)return;J=!0;let H=K3$(Z);Y.publish(H.subject,H.data).catch(()=>{})};X.addEventListener("abort",W,{once:!0});let K=(H)=>{let N=performance.now(),F=si0(H,{runId:Z}),U=performance.now()-N;if(A41().record(U),T41().add(1,{"org.id":Q??"unknown"}),C66?.record(U,F.reduce((w,O)=>w+O.data.length,0)),F.length===0){console.warn(`[Decopilot] dropping oversized stream chunk for thread ${Z}`);return}for(let w of F)G.publish(Y,w.subject,w.data,w.headers?Tb$(w.headers):void 0)};return(async()=>{let H=$.getReader(),N=0,F=0,U;try{while(!0){let{done:w,value:O}=await H.read();if(w)break;if(K(O),F++,++N>=64)N=0,await new Promise((D)=>setImmediate(D))}}catch(w){U=w,console.warn(`[Decopilot] stream pump error for thread ${Z}:`,w?.message??w)}finally{if(H.releaseLock(),W(),V66)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:F,publishErrors:G.errorCount}))}if(U!==void 0)throw U})()}async publishRawChunk($,Z,X){let Q=this.js;if(!Q)return!1;let Y=performance.now(),G=si0(Z,{runId:$,dedup:X});if(A41().record(performance.now()-Y),T41().add(1),G.length===0)return console.warn(`[Decopilot] dropping oversized raw chunk for thread ${$} (> MAX_CHUNKED_BYTES)`),!0;for(let J of G)await Q.publish(J.subject,J.data,{...J.headers?{headers:Tb$(J.headers)}:{},...J.msgId?{msgID:J.msgId}:{}});return!0}async publishDone($,Z,X){let Q=this.js;if(!Q)return!1;let Y=W3$({runId:$,fenceToken:Z,finalSeq:X});return await Q.publish(Y.subject,Y.data,{msgID:Y.msgId}),!0}async createTailStream($,Z,X){let Q=this.js;if(!Q)return console.warn(`[Decopilot] createTailStream: JetStream client unavailable for thread ${$}; no live tail`),null;let Y=X?.deliverPolicy==="new"?i3.DeliverPolicy.New:i3.DeliverPolicy.All,G=X?.closeOnDone??!1,J=YO($),W;try{W=await(await Q.consumers.get(IN,{filter_subjects:J,deliver_policy:Y})).consume()}catch(D){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",D?.message??D),null}let N=kw0({messages:async function*(){try{for await(let D of W)yield{subject:D.subject,data:D.data,headers:D.headers}}finally{W.stop()}}(),onCancel:()=>W.stop()}).pipeThrough(Rw0()).pipeThrough(Iw0()).getReader(),F=!1,U=()=>{if(F)return;F=!0;try{N.releaseLock()}catch{}},w=!1,O=()=>{if(w)return;w=!0,W.stop(),N.cancel().catch(()=>{}),U()};return Z?.addEventListener("abort",O,{once:!0}),new ReadableStream({async pull(D){for(;;){let{done:L,value:E}=await N.read();if(L){O(),D.close();return}let j=E;if(j.kind==="done"){if(G){O(),D.close();return}continue}D.enqueue(j.chunk);return}},cancel(){O()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(IN,{filter:YO($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var i3,Rb$,A66=($)=>{let Z;return()=>Z??=$()},T66,R66=86400000000000,I66=120000000000,q66=4294967296,M66=500000,S66,V66,C66;var qb$=B(()=>{E6();ei0();Sw0();qw0();Z5();Ab$();i3=S(FB(),1),Rb$=S(zh(),1),T66=A66(()=>K8.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"}));S66=process.env.STREAM_ENCODE_TRACE==="1",V66=process.env.DECOPILOT_STREAM_TRACE==="1";C66=S66?new Ib$:null});function kj0($,Z,X,Q){if(!Q)return!1;return $.emit(Z,OW(X,Q.status,{title:Q.title??void 0,virtualMcpId:Q.virtual_mcp_id??void 0,createdBy:Q.created_by??void 0,triggerId:Q.trigger_id??null,branch:Q.branch??null,harnessId:Q.harness_id??void 0,createdAt:Q.created_at,updatedAt:Q.updated_at})),!0}var Mb$=B(()=>{L8()});class I41{storage;options;timer=null;constructor($,Z={}){this.storage=$;this.options=Z}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let Z=await this.storage.sweepAbandoned($);if(Z>0)console.log(`[async-research-sweeper] marked ${Z} stale jobs as abandoned`);return Z}catch(Z){return console.error("[async-research-sweeper] sweep failed",Z),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}function h66($){return $ instanceof LQ}class q41{taskBoard;contextFactory;billing;options;timer=null;running=!1;cursor=null;constructor($,Z,X,Q={}){this.taskBoard=$;this.contextFactory=Z;this.billing=X;this.options=Q}start(){if(this.timer)return;let $=this.options.intervalMs??b66;this.timer=setInterval(()=>{this.runOnce()},$),this.timer.unref()}async runOnce(){if(this.running)return 0;this.running=!0;let $=0;try{let Z=this.options.batchSize??x66,X=this.options.itemIntervalMs??f66,Q=await this.taskBoard.listItemsPendingReview(Z,this.cursor,new Date(Date.now()-X)),Y=Q.at(-1);this.cursor=Q.length===Z&&Y?{updatedAt:Y.updatedAt,id:Y.id}:null;for(let{id:G,organizationId:J}of Q)try{if(await this.reconcileItem(G,J))$++}catch(W){console.error(`[task-board-review-sweeper] ${G} failed`,W)}await this.reapNeverStartedThreads(Z),$+=await this.dispatchDueRetries(Z),await this.reactToUnhandledFailures(Z)}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reapNeverStartedThreads($){try{let Z=await this.taskBoard.failNeverStartedLinkedThreads($,new Date(Date.now()-YG$),vn0);for(let X of Z)console.warn(`[task-board-review-sweeper] failed never-started thread ${X.threadId} on ${X.itemId}`)}catch(Z){console.error("[task-board-review-sweeper] reaping failed",Z)}}async reactToUnhandledFailures($){let Z=await this.taskBoard.listItemsStuckAfterFailure($,new Date(Date.now()-g66));for(let{id:X,organizationId:Q,threadId:Y}of Z)try{console.warn(`[task-board-review-sweeper] reacting to an unhandled failure on ${X}`),await Pi0(this.taskBoard,Y,Q),await Ai0(this.taskBoard,this.billing,Y,Q)}catch(G){console.error(`[task-board-review-sweeper] unhandled-failure reaction for ${X} failed`,G)}}async dispatchDueRetries($){let Z=0,X=await this.taskBoard.listItemsDueForRetry($,new Date);for(let{id:Q,organizationId:Y,attempts:G}of X)try{if(!await this.taskBoard.claimDueRetry(Q,Y,new Date))continue;let J=await this.taskBoard.getById(Q,Y);if(!J||J.status!=="in_progress"||J.assigneeId!==d4)continue;let W=await this.contextFactory(Y,J.assignedBy??J.createdBy);if(!W)continue;await qN(W,J,{runClass:"retry"}),Z++,console.warn(`[task-board-review-sweeper] re-dispatched ${Q} after a failure (attempt ${G})`)}catch(J){if(console.error(`[task-board-review-sweeper] retry dispatch for ${Q} failed`,J),h66(J)){await this.returnToTodo(Q,Y,J instanceof Error?J.message:String(J));continue}await this.taskBoard.scheduleRunRetry(Q,Y,G,new Date(Date.now()+y66)).catch((W)=>console.error(`[task-board-review-sweeper] re-arming ${Q} failed`,W))}return Z}async returnToTodo($,Z,X){try{let Q=await this.taskBoard.getById($,Z);if(!Q||Q.status!=="in_progress")return;let Y=await this.taskBoard.returnToTodoAfterFailure($,Z,Q.updatedBy);if(!Y)return;await this.taskBoard.recordActivity({taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:"in_progress",to:"todo",reason:X}}).catch(()=>{}),x4(Z,Y)}catch(Q){console.error(`[task-board-review-sweeper] returning ${$} to todo failed`,Q)}}async reconcileItem($,Z){let X=await this.taskBoard.getById($,Z);if(!X)return!1;if(X.status!=="in_review"||X.assigneeId!==d4)return!1;await this.taskBoard.markSwept($,Z);let Q=await this.taskBoard.listPrs($,Z);if(Q.length===0)return!1;let Y=await this.contextFactory(Z,X.assignedBy??X.createdBy);if(!Y)return!1;if(await BW$(Y,X))return!0;let G=await Promise.all(Q.map(async(J)=>({...J,...await Vn0(Y,Z,J)})));if(G.every((J)=>J.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${G.length} PR(s)) \u2014 proceeding on unknown`);if(!Sn0(G))return!1;return await fw0(Y,X),!0}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var b66=60000,f66=300000,x66=50,y66=60000,g66=120000;var kb$=B(()=>{qZ();An0();GO();dw0();e9();Y3();bn0();hx()});import{readdir as u66,rm as Sj0}from"fs/promises";import{join as Vj0}from"path";async function Cj0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-c66),Z.setUTCHours(0,0,0,0);let X=0;try{let Q=await nC($);for(let Y of Q)if(/^\d{4}$/.test(Y))X+=await Sb$($,Y,Z);else if(!Y.startsWith(".")){let G=Vj0($,Y),J=await nC(G);for(let K of J){if(!/^\d{4}$/.test(K))continue;X+=await Sb$(G,K,Z)}if((await nC(G)).length===0)await Sj0(G,{recursive:!0,force:!0})}}catch(Q){console.warn("monitoring retention cleanup failed:",Q)}return X}async function Sb$($,Z,X){let Q=0,Y=Vj0($,Z),G=await nC(Y);for(let W of G){if(!/^\d{2}$/.test(W))continue;let K=Vj0(Y,W),H=await nC(K);for(let F of H){if(!/^\d{2}$/.test(F))continue;let U=new Date(`${Z}-${W}-${F}T00:00:00Z`);if(isNaN(U.getTime()))continue;if(U<X){let w=Vj0(K,F);await Sj0(w,{recursive:!0,force:!0}),Q++}}if((await nC(K)).length===0)await Sj0(K,{recursive:!0,force:!0})}if((await nC(Y)).length===0)await Sj0(Y,{recursive:!0,force:!0});return Q}async function nC($){try{return(await u66($)).filter((X)=>!X.startsWith("."))}catch{return[]}}var c66=30;var M41=()=>{};import{DBOS as k41,SchedulerMode as l66}from"@dbos-inc/dbos-sdk";async function m66(){let $=[KJ(),pC(),mK()],Z=0;for(let X of $)try{Z+=await Cj0(X)}catch(Q){console.error("[monitoring-retention] cleanup failed:",Q)}return console.log(`[monitoring-retention] deleted ${Z} day-dir(s) across ${$.length} signal dir(s)`),{deleted:Z,dirs:$.length}}async function i66($,Z){await k41.runStep(()=>m66(),{name:"monitoringRetention"})}function Cb$(){if(Vb$)return;Vb$=!0;let $=k41.registerWorkflow(i66,{name:"monitoringRetentionWorkflow"});k41.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:d66,mode:l66.ExactlyOncePerIntervalWhenActive})}var d66="23 4 * * *",Vb$=!1;var _b$=B(()=>{rQ();M41()});function vb$($){return async(Z,X)=>{let Q=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",X).where("member.organizationId","=",Z).executeTakeFirst();if(!Q)return console.warn(`[automationContextFactory] User ${X} not found in org ${Z} \u2014 returning null`),null;let Y=await fK.create();Y.auth.user={id:X,role:Q.role},Y.organization={id:Q.orgId,slug:Q.orgSlug,name:Q.orgName};let G=await n11($.db,Z,Q.role);return Y.boundAuth=i11({auth:Y.authInstance,headers:new Headers,role:Q.role,permissions:G,userId:X}),Y.access=new dD(X,void 0,Y.boundAuth,Q.role,"self"),Ig(Y,{id:Q.orgId,slug:Q.orgSlug}),Y}}var bb$=B(()=>{mD();Eg()});function n66(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function t66(){for(let $ of p66)$()}function fb$($){let Z=[...S41.logs,$];S41={...S41,logs:Z.length>500?Z.slice(-500):Z},t66()}function V41(){return o66}var S41,p66,o66=!1;var C41=B(()=>{S41=n66(),p66=new Set});import{EventEmitter as r66}from"events";var _41;var xb$=B(()=>{C41();_41=new r66;_41.on("request",($)=>{fb$($)})});function yb$(){return async($,Z)=>{let X=Date.now(),Q=$.req.method,Y=$.req.path;if(Y==="/api/auth/get-session"||Y.includes("favicon")){await Z();return}let G="",J=!1;if(Y.startsWith("/mcp")&&Q==="POST"){J=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let U=await $.req.raw.clone().json();if(U.method==="tools/call"&&U.params?.name){let w=og(U.params.name),O=U.params.arguments||{},D=Object.keys(O).map((E)=>og(E)),L=D.length>0?D.slice(0,3).join(",")+(D.length>3?"\u2026":""):"";G=`${e6.tool}${w}${e6.dim}(${L})${e6.reset}`}else if(U.method)G=`${e6.dim}${og(U.method)}${e6.reset}`}}catch{}}let W=og(Y);if(Y.startsWith("/mcp/conn_")){let N=Y.split("/")[2]??"";W=`/mcp/${e6.mcp}${og(N.slice(0,12))}\u2026${e6.reset}`}else if(Y==="/mcp")W=`${e6.mcp}/mcp${e6.reset}`;else if(Y==="/mcp/registry")W=`${e6.mcp}/mcp/registry${e6.reset}`;let K=s66(Q),H=J?"\u25C0":"\u2190";if(!V41())console.log(`${e6.dim}${H}${e6.reset} ${K}${Q}${e6.reset} ${W}${G?` ${G}`:""}`);try{await Z()}finally{let N=Date.now()-X,F=$.res.status,U=a66(F),w=N<1000?`${N}ms`:`${(N/1000).toFixed(1)}s`,O=J?"\u25B6":"\u2192";if(!V41())console.log(`${e6.dim}${O}${e6.reset} ${K}${Q}${e6.reset} ${W}${G?` ${G}`:""} ${U}${F}${e6.reset} ${e6.duration}${w}${e6.reset}`);_41.emit("request",{method:Q,path:og(Y),status:F,duration:N,timestamp:new Date})}}}var e6,a66=($)=>{if($>=500)return e6.serverError;if($>=400)return e6.clientError;if($>=300)return e6.redirect;return e6.ok},s66=($)=>{return e6[$]||e6.reset},og=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var gb$=B(()=>{C41();xb$();e6={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as lb$}from"crypto";import{mkdir as e66,readdir as $56,rm as hb$,stat as db$}from"fs/promises";import{join as b41,relative as Z56}from"path";import{z as E$}from"zod";function ib$($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return b41(X56,Z)}function nb$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function v41($,Z){let X=ib$($),Q=nb$(Z);return b41(X,Q)}function Q56($,Z,X,Q){let Y=c0().encryptionKey||"dev-secret",G=`${$}:${Z}:${X}:${Q}`;return lb$("sha256",Y).update(G).digest("hex")}function cb$($,Z,X,Q,Y){let G=Math.floor(Date.now()/1000)+Q,J=Q56(Z,X,G,Y),W=new URL(`/api/dev-assets/${Z}/${nb$(X)}`,$);return W.searchParams.set("expires",G.toString()),W.searchParams.set("signature",J),W.searchParams.set("method",Y),W.toString()}function pb$($,Z,X){let Q=`${$}:${Z.getTime()}:${X}`;return`"${lb$("md5","etag").update(Q).digest("hex")}"`}async function tb$($,Z,X,Q,Y){try{let G=await $56($,{withFileTypes:!0});for(let J of G){let W=b41($,J.name),H=Z56(Z,W).replace(/\\/g,"/");if(X&&!H.startsWith(X))continue;if(J.isDirectory())if(Q){let N=H+"/";if(!X||N.startsWith(X)){if(!(X?H.slice(X.length):H).includes("/"))Y.commonPrefixes.add(N)}}else await tb$(W,Z,X,Q,Y);else if(J.isFile()){if(Q&&X){let N=H.slice(X.length);if(N.includes(Q)){let F=N.indexOf(Q),U=X+N.slice(0,F+1);Y.commonPrefixes.add(U);continue}}try{let N=await db$(W);Y.objects.push({key:H,size:N.size,lastModified:N.mtime.toISOString(),etag:pb$(W,N.mtime,N.size)})}catch{}}}}catch{}}function ob$($,Z){let Q=r($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:E$.object({prefix:E$.string().optional(),maxKeys:E$.number().optional().default(1000),continuationToken:E$.string().optional(),delimiter:E$.string().optional()}),outputSchema:E$.object({objects:E$.array(E$.object({key:E$.string(),size:E$.number(),lastModified:E$.string(),etag:E$.string()})),nextContinuationToken:E$.string().optional(),isTruncated:E$.boolean(),commonPrefixes:E$.array(E$.string()).optional()}),handler:async(Y)=>{let G=Y,J=G.prefix||"",W=G.maxKeys??1000,K=G.delimiter,H=G.continuationToken,N=ib$(Q);await e66(N,{recursive:!0});let F={objects:[],commonPrefixes:new Set};await tb$(N,N,J,K,F),F.objects.sort((L,E)=>L.key.localeCompare(E.key));let U=0;if(H){if(U=F.objects.findIndex((L)=>L.key>H),U===-1)U=F.objects.length}let w=F.objects.slice(U,U+W),O=U+W<F.objects.length,D=O?w[w.length-1]?.key:void 0;return{objects:w,isTruncated:O,nextContinuationToken:D,commonPrefixes:Array.from(F.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:E$.object({key:E$.string()}),outputSchema:E$.object({contentType:E$.string().optional(),contentLength:E$.number(),lastModified:E$.string(),etag:E$.string(),metadata:E$.record(E$.string(),E$.string()).optional()}),handler:async(Y)=>{let G=Y,J=v41(Q,G.key),W=await db$(J);return{contentType:M$1(G.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:pb$(J,W.mtime,W.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:E$.object({key:E$.string(),expiresIn:E$.number().optional()}),outputSchema:E$.object({url:E$.string(),expiresIn:E$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??ub$;return{url:cb$(Z,Q,G.key,J,"GET"),expiresIn:J}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:E$.object({key:E$.string(),expiresIn:E$.number().optional(),contentType:E$.string().optional()}),outputSchema:E$.object({url:E$.string(),expiresIn:E$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??ub$;return{url:cb$(Z,Q,G.key,J,"PUT"),expiresIn:J}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:E$.object({key:E$.string()}),outputSchema:E$.object({success:E$.boolean(),key:E$.string()}),handler:async(Y)=>{let G=Y,J=v41(Q,G.key);try{return await hb$(J),{success:!0,key:G.key}}catch{return{success:!1,key:G.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:E$.object({keys:E$.array(E$.string()).max(1000)}),outputSchema:E$.object({deleted:E$.array(E$.string()),errors:E$.array(E$.object({key:E$.string(),message:E$.string()}))}),handler:async(Y)=>{let G=Y,J=[],W=[];return await Promise.all(G.keys.map(async(K)=>{let H=v41(Q,K);try{await hb$(H),J.push(K)}catch(N){W.push({key:K,message:N instanceof Error?N.message:"Unknown error"})}})),{deleted:J,errors:W}}}]}async function f41($,Z,X){let Q=ob$(Z,X),Y=new PW({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:G5});for(let J of Q){let W="shape"in J.inputSchema?J.inputSchema.shape:E$.object({}).shape,K=J.outputSchema&&"shape"in J.outputSchema?J.outputSchema.shape:E$.object({}).shape;Y.registerTool(J.name,{description:J.description??"",inputSchema:W,outputSchema:K,annotations:J.annotations,_meta:J._meta},async(H)=>{try{let N=await J.handler(H);return{content:[{type:"text",text:JSON.stringify(N)}],structuredContent:N}}catch(N){return{content:[{type:"text",text:`Error: ${N.message}`}],isError:!0}}})}let G=new lX({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await Y.connect(G),lG(Y,G,$,"mcp:dev-assets")}async function rb$($,Z,X,Q){let G=ob$(X,Q).find((J)=>J.name===$);if(!G)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let J=await G.handler(Z);return{content:[{type:"text",text:JSON.stringify(J)}]}}catch(J){return{content:[{type:"text",text:J instanceof Error?J.message:String(J)}],isError:!0}}}var X56="./data/assets",ub$=3600,mb$,ab$;var sb$=B(()=>{S$();mx();y8();ic();bV();RX();dE0();mb$=new B1;mb$.all("/",async($)=>{let Z=$.get("studioContext"),X=new URL($.req.url),Q=`${X.protocol}//${X.host}`;return f41($.req.raw,Z,Q)});ab$=mb$});var eb$={};N4(eb$,{mountDevRoutes:()=>Y56});function Y56($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`;return f41(Q.req.raw,Y,J)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`,W=Q.req.param("toolName");if(!W)return Q.json({error:"Missing tool name"},400);let K=await Q.req.json(),H=await rb$(W,K,Y,J);if(H.isError)return Q.json(H.content,500);return Q.json(H.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",ab$);let X=new B1;X.use("*",d3({mountPath:"/api/dev-assets"})),X.route("/",lE0({orgFromPath:!1})),$.route("/api/dev-assets",X)}var $f$=B(()=>{y8();j$1();dE0();sb$()});import{sql as G56}from"kysely";import{randomUUID as Zf$}from"crypto";import{z as J56}from"zod";async function K56($){let Z=new Date().toISOString(),X=Zf$(),Q=h4.SELF($.organizationId),Y="registry.publish_request.created",G={requestId:$.request.id,requestedId:$.request.requested_id,title:$.request.title,status:$.request.status,createdAt:$.request.created_at,requester:{name:$.request.requester_name,email:$.request.requester_email}};await $.db.insertInto("events").values({id:X,organization_id:$.organizationId,type:"registry.publish_request.created",source:Q,specversion:"1.0",subject:$.request.id,time:Z,datacontenttype:"application/json",dataschema:null,data:JSON.stringify(G),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Z,updated_at:Z}).execute();let J=await $.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",$.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((W)=>W.or([W("publisher","is",null),W("publisher","=",Q)])).execute();if(J.length>0)await $.db.insertInto("event_deliveries").values(J.map((W)=>({id:Zf$(),event_id:X,subscription_id:W.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Z}))).execute();try{await G56`SELECT
|
|
2732
2732
|
pg_notify('studio_events', ${X}),
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as E,F as L,b7 as K,K as F,b as Q,m as _,j as I}from"./index-BwgY1kqd.js";import{u as H}from"./use-registry-connections-CKbB-Fbi.js";import{f as q}from"./use-organization-settings-Dx_jMpFY.js";import{S,n as G}from"./use-mcp-client-C_SLYCKU.js";import{u as U}from"./useInfiniteQuery-DSEAwRSE.js";import{i as V,f as X}from"./extract-connection-data-DL2DskJ1.js";import{r as Y,R as z}from"./retry-CErkP7V6.js";import{g as $}from"./connection-slug-eyAPH6o3.js";import{C as B}from"./card-BLpFgfuY.js";import{I as W}from"./integration-icon-BqcLi7JG.js";function pe(){const s=E.c(6),e=H(),t=q(),n=L().project.enabledPlugins??[];let o;if(s[0]!==n||s[1]!==t||s[2]!==e){let a;s[4]!==t?(a=r=>t(r.id),s[4]=t,s[5]=a):a=s[5],o=e.filter(a).map(Z),n.includes("private-registry")&&t(S)&&o.push({id:S,title:"Private Registry",icon:null}),s[0]=n,s[1]=t,s[2]=e,s[3]=o}else o=s[3];return o}function Z(s){return{id:s.id,title:s.title,icon:s.icon}}const J=24,k=3;function D(s){return s.id.includes("community-registry")}function O(s){const e=s?.trim().split(/\s+/).filter(Boolean)??[];if(e.length===0)return;const t=[["title"],["description"],["name"],["server","title"]];return{operator:"or",conditions:e.flatMap(n=>t.map(o=>({field:o,operator:"contains",value:n})))}}function A(s,e,t,n,o){const a=s.map(d=>d.id).sort().join(","),r=O(o),{data:p,fetchNextPage:m,hasNextPage:f,isFetchingNextPage:g,isLoading:b}=U({queryKey:F.storeDiscovery(e,`${a}:${o??""}`),queryFn:async({pageParam:d})=>{const c=d??{};return await Promise.all(s.map(async i=>{const h=c[i.id];if(h==="EXHAUSTED")return{registryId:i.id,registryTitle:i.title,registryIcon:i.icon,items:[]};const C=V(i.id,e);try{return await Y(async()=>{let u=null;try{u=await G({connectionId:i.id,orgId:e,orgSlug:t});const x={limit:J};h&&(x.cursor=h),r&&(x.where=r);const N=await u.callTool({name:C,arguments:x}),v=N.structuredContent??N,P=v.nextCursor||v.cursor||void 0,R=X(v?[v]:[]);return{registryId:i.id,registryTitle:i.title,registryIcon:i.icon,items:R,nextCursor:P}}finally{await u?.close().catch(()=>{})}},{maxAttempts:k,minTimeout:0,maxTimeout:1e3,jitter:0})}catch(u){return console.warn(`[useMergedStoreDiscovery] Registry "${i.title}" (${i.id}) failed after ${k} attempts:`,u instanceof z?u.cause:u),{registryId:i.id,registryTitle:i.title,registryIcon:i.icon,items:[]}}}))},initialPageParam:{},getNextPageParam:d=>{const c={};let l=!1;for(const i of d)i.registryId&&(i.nextCursor?(c[i.registryId]=i.nextCursor,l=!0):c[i.registryId]="EXHAUSTED");return l?c:void 0},staleTime:3600*1e3,placeholderData:K,retry:!1,enabled:s.length>0}),y=[];if(p?.pages)for(const d of p.pages)for(const c of d)for(const l of c.items)y.push({...l,_sourceName:l._sourceName??c.registryTitle,_sourceIcon:l._sourceIcon??c.registryIcon,_registryId:l._registryId??c.registryId});return{items:y,hasMore:f??!1,isLoadingMore:g,isInitialLoading:b,fetchNextPage:()=>{f&&!g&&m()}}}function ge(s,e){const t=E.c(16),{org:n}=L();let o;t[0]!==s?(o=s.filter(te),t[0]=s,t[1]=o):o=t[1];const a=o;let r;t[2]!==s?(r=s.filter(ee),t[2]=s,t[3]=r):r=t[3];const p=r,m=A(a,n.id,n.slug,!0,e),f=A(p,n.id,n.slug,!0,e);let g;if(t[4]!==f.items||t[5]!==m.items){const h=new Set;g=[];const C=[...m.items,...f.items];for(const u of C){const x=`${u._registryId}:${u.id}`;h.has(x)||(h.add(x),g.push(u))}t[4]=f.items,t[5]=m.items,t[6]=g}else g=t[6];const b=m.isInitialLoading||f.isInitialLoading,y=m.isLoadingMore||f.isLoadingMore,d=m.hasMore||f.hasMore;let c;t[7]!==f||t[8]!==m?(c=()=>{m.hasMore&&m.fetchNextPage(),f.hasMore&&f.fetchNextPage()},t[7]=f,t[8]=m,t[9]=c):c=t[9];const l=c;let i;return t[10]!==d||t[11]!==b||t[12]!==y||t[13]!==g||t[14]!==l?(i={items:g,hasMore:d,isLoadingMore:y,isInitialLoading:b,loadMore:l},t[10]=d,t[11]=b,t[12]=y,t[13]=g,t[14]=l,t[15]=i):i=t[15],i}function ee(s){return D(s)}function te(s){return!D(s)}function ye(s){const e=new Map;for(const o of s){const a=$(o),r=e.get(a);r?r.push(o):e.set(a,[o])}const t=[],n=new Set;for(const o of s){const a=$(o);if(n.has(a))continue;n.add(a);const r=e.get(a),p=r[0];r.length===1?t.push({type:"single",connection:p}):t.push({type:"group",key:a,icon:p.icon,title:p.app_name?p.title.replace(/\s*\(\d+\)\s*$/,""):p.title,connections:r})}return t}function he(s){const e=E.c(42),{connection:t,onClick:n,headerActions:o,headerActionsAlwaysVisible:a,footer:r,className:p,fallbackIcon:m}=s,f=a===void 0?!1:a,g=Q(),b=n&&"cursor-pointer hover:bg-muted/50";let y;e[0]!==p||e[1]!==b?(y=_("transition-colors group overflow-hidden flex flex-col h-full",b,p),e[0]=p,e[1]=b,e[2]=y):y=e[2];const d=n?"button":void 0,c=n?0:void 0;let l;e[3]!==n?(l=n?w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),n())}:void 0,e[3]=n,e[4]=l):l=e[4];let i;e[5]!==t.icon||e[6]!==t.title||e[7]!==m?(i=I.jsx(W,{icon:t.icon,name:t.title,size:"sm",className:"shrink-0 shadow-sm",fallbackIcon:m}),e[5]=t.icon,e[6]=t.title,e[7]=m,e[8]=i):i=e[8];let h;e[9]!==o||e[10]!==f?(h=o&&I.jsx("div",{className:_("transition-opacity",!f&&"sm:opacity-0 sm:group-hover:opacity-100 sm:group-focus-within:opacity-100"),onClick:ie,children:o}),e[9]=o,e[10]=f,e[11]=h):h=e[11];let C;e[12]!==h?(C=I.jsx("div",{className:"relative",children:h}),e[12]=h,e[13]=C):C=e[13];let u;e[14]!==i||e[15]!==C?(u=I.jsxs("div",{className:"flex items-start justify-between",children:[i,C]}),e[14]=i,e[15]=C,e[16]=u):u=e[16];let x;e[17]!==t.title?(x=I.jsx("h3",{className:"text-sm font-medium text-foreground truncate",children:t.title}),e[17]=t.title,e[18]=x):x=e[18];let N;e[19]!==t.description||e[20]!==g?(N=t.description||g("connections.connectionCard.noDescription"),e[19]=t.description,e[20]=g,e[21]=N):N=e[21];let v;e[22]!==N?(v=I.jsx("p",{className:"text-sm text-muted-foreground line-clamp-2",children:N}),e[22]=N,e[23]=v):v=e[23];let P;e[24]!==x||e[25]!==v?(P=I.jsxs("div",{className:"flex flex-col gap-1",children:[x,v]}),e[24]=x,e[25]=v,e[26]=P):P=e[26];let R;e[27]!==u||e[28]!==P?(R=I.jsxs("div",{className:"flex flex-col gap-3 p-4.5",children:[u,P]}),e[27]=u,e[28]=P,e[29]=R):R=e[29];let j;e[30]!==r?(j=r&&I.jsx("div",{className:"border-t border-border mt-auto",children:I.jsx("div",{className:"h-14 flex items-center p-4.5",onClick:se,children:r})}),e[30]=r,e[31]=j):j=e[31];let M;e[32]!==R||e[33]!==j?(M=I.jsxs("div",{className:"flex flex-col flex-1",children:[R,j]}),e[32]=R,e[33]=j,e[34]=M):M=e[34];let T;return e[35]!==n||e[36]!==M||e[37]!==y||e[38]!==d||e[39]!==c||e[40]!==l?(T=I.jsx(B,{className:y,onClick:n,role:d,tabIndex:c,onKeyDown:l,children:M}),e[35]=n,e[36]=M,e[37]=y,e[38]=d,e[39]=c,e[40]=l,e[41]=T):T=e[41],T}function se(s){return s.stopPropagation()}function ie(s){return s.stopPropagation()}export{he as C,ge as a,ye as g,pe as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as K,c as re,b as ae,j as t,B as G,k as ge,p as ce,m as xe,E as Je,F as De,d as Ne,u as Ye,a as ke,D as Ze,I as et,G as tt,a1 as nt,a2 as st,o as ot,t as Q,K as it}from"./index-BwgY1kqd.js";import{a as Te,b as ct,g as rt,e as lt}from"./extract-connection-data-DL2DskJ1.js";import{C as at}from"./collection-display-button-C_GNsGP3.js";import{S as dt}from"./search-input-DYPst4xo.js";import{C as ut}from"./collection-tabs-DYabT4Jk.js";import{C as ve,u as mt,a as Ae,g as gt}from"./connection-card-BA7cqfkQ.js";import{E as pt}from"./empty-state-KPku5IL3.js";import{P as pe}from"./index-Cyav31EB.js";import{u as ft,D as ht}from"./use-delete-connection-VJJ4yZoR.js";import{u as Ce}from"./use-capability-ak-s2Vaq.js";import{u as xt}from"./use-infinite-scroll-BRKgSd4r.js";import{u as jt}from"./use-view-mode-MBewBxKM.js";import{g as he}from"./connection-slug-eyAPH6o3.js";import{A as we,a as Ie,b as Pe,c as Le,d as Oe,e as Me,f as Fe,g as $e}from"./alert-dialog-DoBTkQti.js";import{n as je}from"./Tool02-BG0wvg15.js";import{g as yt}from"./metadata-dUsYcpuu.js";import{b as Ue,h as Ve,a as ze,c as Ee,d as Be,e as Ke}from"./dialog-YewNLxEX.js";import{D as St,a as Ct,c as vt,b as bt,g as _t,e as Dt,f as Nt}from"./drawer-OibwTaDQ.js";import{u as kt}from"./use-mobile-B-ayRTms.js";import{d as te,a as ne,e as se,b as oe,c as ie,F as be}from"./form-CAO_X5q6.js";import{I as de}from"./input-DxtlvNx4.js";import{S as Tt,a as At,b as wt,c as It,d as me}from"./select-CI2Kb9Sa.js";import{T as Pt}from"./textarea-Cy6fYP8f.js";import{b as He,u as Lt}from"./use-connection-CxBpyaM7.js";import{a as Ot}from"./use-virtual-mcp-MgLxHkl6.js";import{u as Mt}from"./studio-tools-Buts9Jdh.js";import{s as Se}from"./Star01-Da76zNXt.js";import{s as Re}from"./Plus-BmjRtSKh.js";import{aE as Ft,Q as $t,P as Ut,ae as Vt}from"./agent-icon-DxROnAVl.js";import{s as We}from"./XClose-CsD47O1t.js";import{i as fe,a as _e,E as zt,c as Et,p as Bt,b as Kt,d as Ht}from"./connection-form-helpers-BZW3JlGP.js";import{a as Rt}from"./authenticate-and-persist-oauth-7NmulFBy.js";import{I as Wt}from"./integration-icon-BqcLi7JG.js";import{C as Xe}from"./checkbox-xmeSRC-T.js";import{a as ue,D as Xt,c as Gt,b as qt}from"./dropdown-menu-De-Zj9zn.js";import{a as Qt}from"./DotsVertical-BGb9JOh-.js";import{s as Ge}from"./Eye-DkElT0Vs.js";import{s as qe}from"./Trash01-CKV3Apy3.js";import"./use-mcp-client-C_SLYCKU.js";import"./auth-UIWygxsU.js";import"./ArrowUp-CNY1yOxC.js";import"./Check-CN3aR95k.js";import"./SwitchHorizontal01-DhN66_vL.js";import"./tooltip-CRCj97hY.js";import"./view-mode-toggle-CMagOSsq.js";import"./badge-DR3LHWR5.js";import"./SearchMd-Cn88JKCH.js";import"./use-registry-connections-CKbB-Fbi.js";import"./use-organization-settings-Dx_jMpFY.js";import"./useInfiniteQuery-DSEAwRSE.js";import"./retry-CErkP7V6.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./card-BLpFgfuY.js";import"./sidebar-DBsLvkYY.js";import"./LayoutLeft-D_y_5wH6.js";import"./X-BiJLSBaw.js";import"./label-B0ikG0BR.js";import"./ChevronDown-BzVNS1OZ.js";import"./ChevronUp-DnZCjXI4.js";import"./AlertCircle-CM_0Ehfg.js";import"./Tool01-quOYoGMK.js";import"./ArrowLeft-BZfdTkDM.js";import"./XCircle-BaWRjJTV.js";import"./ArrowUpRight-BaWBsvbw.js";import"./TrendUp01-DvvMG3Yc.js";import"./ZapSquare-CFeSjiMW.js";import"./Users03-DvVlP7qg.js";import"./CheckCircle-CugtwX3I.js";import"./ChevronRight-Ch3xlSyS.js";import"./Stars02-DidMAYeR.js";import"./Copy01-Dy_ezRAZ.js";import"./CpuChip01-Bf5F_zWu.js";import"./CreditCard01-Co7CzX5-.js";import"./Globe01-BvK8SYlx.js";import"./Settings02-CSMcNzxI.js";import"./FilterLines-EcsEo4Jg.js";import"./Share07-BmL98gFX.js";import"./Globe04-Mxnxy5DN.js";import"./HardDrive-D4mmhAKW.js";import"./Key01-Dl2hMZR_.js";import"./LinkExternal01-Cz-T7iI3.js";import"./LogOut01-CaZwogo8.js";import"./Monitor01-DxknN2yJ.js";import"./Sun-CMTBWgtq.js";import"./Palette-Bu8w-a35.js";import"./Play-DVXmxEpH.js";import"./SearchLg-B-8ZzylY.js";import"./Shield01-C0siL_Jx.js";import"./Stars01-D-hcXadg.js";import"./Upload01-2YYegxFf.js";import"./User01-G1OuxYv2.js";import"./Users01-CNQ8Pd9F.js";import"./Zap-BsnGyygG.js";import"./mcp-oauth-CYPbiT_k.js";function Jt(s){const e=`deco-filters-${s}`,[n,g]=K.useState(()=>{try{const c=globalThis.localStorage?.getItem(e);if(c)return JSON.parse(c)}catch(c){console.error("Failed to parse stored filters:",c)}return[]});return[n,c=>{g(c);try{globalThis.localStorage?.setItem(e,JSON.stringify(c))}catch(o){console.error("Failed to save filters:",o)}}]}function Yt(s){const e=re.c(7),[n,g]=K.useState(s),[l,c]=K.useState(s?"desc":null);let o;e[0]!==l||e[1]!==n?(o=a=>{n!==a?(g(a),c("asc")):l==="asc"?c("desc"):l==="desc"&&(g(void 0),c(null))},e[0]=l,e[1]=n,e[2]=o):o=e[2];const r=o;let d;return e[3]!==r||e[4]!==l||e[5]!==n?(d={sortKey:n,sortDirection:l,handleSort:r},e[3]=r,e[4]=l,e[5]=n,e[6]=d):d=e[6],d}function Zt(s){const e=re.c(20),{namespace:n,resource:g,defaultSortKey:l,defaultViewMode:c}=s,o=l===void 0?"title":l,r=c===void 0?"table":c,[d,a]=K.useState(""),N=K.useDeferredValue(d),h=`${n}-${g}`,[p,v]=Jt(h),x=`studio-${g}-filter-visible-${n}`;let _;e[0]!==x?(_=()=>globalThis.localStorage?.getItem(x)==="true",e[0]=x,e[1]=_):_=e[1];const[m,S]=K.useState(_);let j;e[2]!==x?(j=U=>{S(U),globalThis.localStorage?.setItem(x,String(U))},e[2]=x,e[3]=j):j=e[3];const D=j;let b;e[4]!==m||e[5]!==D?(b=()=>{D(!m)},e[4]=m,e[5]=D,e[6]=b):b=e[6];const k=b,[i,T]=jt(`studio-${g}-${n}`,r),{sortKey:L,sortDirection:$,handleSort:A}=Yt(o),V=L;let O;return e[7]!==m||e[8]!==p||e[9]!==A||e[10]!==d||e[11]!==N||e[12]!==D||e[13]!==v||e[14]!==T||e[15]!==$||e[16]!==V||e[17]!==k||e[18]!==i?(O={search:d,searchTerm:N,setSearch:a,filters:p,setFilters:v,filterBarVisible:m,setFilterBarVisible:D,toggleFilterBar:k,viewMode:i,setViewMode:T,sortKey:V,sortDirection:$,handleSort:A},e[7]=m,e[8]=p,e[9]=A,e[10]=d,e[11]=N,e[12]=D,e[13]=v,e[14]=T,e[15]=$,e[16]=V,e[17]=k,e[18]=i,e[19]=O):O=e[19],O}function en(s){const e=re.c(35),{open:n,onOpenChange:g,count:l,onConfirm:c}=s,o=ae(),r=l===1?"orgs.bulkDeleteDialog.deleteTitleSingular":"orgs.bulkDeleteDialog.deleteTitlePlural";let d;e[0]!==l||e[1]!==o||e[2]!==r?(d=o(r,{count:l}),e[0]=l,e[1]=o,e[2]=r,e[3]=d):d=e[3];let a;e[4]!==d?(a=t.jsx(we,{children:d}),e[4]=d,e[5]=a):a=e[5];const N=l===1?"orgs.bulkDeleteDialog.deleteDescriptionSingular":"orgs.bulkDeleteDialog.deleteDescriptionPlural";let h;e[6]!==o||e[7]!==N?(h=o(N),e[6]=o,e[7]=N,e[8]=h):h=e[8];let p;e[9]!==h?(p=t.jsx(Ie,{children:h}),e[9]=h,e[10]=p):p=e[10];let v;e[11]!==a||e[12]!==p?(v=t.jsxs(Pe,{children:[a,p]}),e[11]=a,e[12]=p,e[13]=v):v=e[13];let x;e[14]!==o?(x=o("orgs.bulkDeleteDialog.cancelButton"),e[14]=o,e[15]=x):x=e[15];let _;e[16]!==x?(_=t.jsx(Le,{children:x}),e[16]=x,e[17]=_):_=e[17];const m=l===1?"orgs.bulkDeleteDialog.deleteButtonSingular":"orgs.bulkDeleteDialog.deleteButtonPlural";let S;e[18]!==l||e[19]!==o||e[20]!==m?(S=o(m,{count:l}),e[18]=l,e[19]=o,e[20]=m,e[21]=S):S=e[21];let j;e[22]!==c||e[23]!==S?(j=t.jsx(Oe,{onClick:c,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:S}),e[22]=c,e[23]=S,e[24]=j):j=e[24];let D;e[25]!==j||e[26]!==_?(D=t.jsxs(Me,{children:[_,j]}),e[25]=j,e[26]=_,e[27]=D):D=e[27];let b;e[28]!==D||e[29]!==v?(b=t.jsxs(Fe,{children:[v,D]}),e[28]=D,e[29]=v,e[30]=b):b=e[30];let k;return e[31]!==g||e[32]!==n||e[33]!==b?(k=t.jsx($e,{open:n,onOpenChange:g,children:b}),e[31]=g,e[32]=n,e[33]=b,e[34]=k):k=e[34],k}function tn(s){return s._registryId?.includes("community-registry")===!0}function nn(s){const e=re.c(83),{item:n,canManage:g,allConnections:l,connectedAppNames:c,connectingItemId:o,onNavigateConnected:r,onConnect:d}=s,a=ae(),[N,h]=K.useState(!1),[p,v]=K.useState(null);let x,_;e[0]!==c||e[1]!==n?(x=Te(n)??"",_=c.has(x),e[0]=c,e[1]=n,e[2]=x,e[3]=_):(x=e[2],_=e[3]);const m=_;let S;e[4]!==n._meta?(S=yt(n._meta),e[4]=n._meta,e[5]=S):S=e[5];const j=S,D=j?.friendlyName||j?.friendly_name||n.server?.title||n.title||n.server?.name||n.name||n.id||"",b=n.server?.description||n.description||null;let k;e[6]!==n.server?.icons?.[0]?.src||e[7]!==n.server?.repository?(k=n.server?.icons?.[0]?.src||ct(n.server?.repository)||null,e[6]=n.server?.icons?.[0]?.src,e[7]=n.server?.repository,e[8]=k):k=e[8];const i=k;let T;if(e[9]!==l||e[10]!==x){let E;e[12]!==x?(E=le=>le.connection_type!=="VIRTUAL"&&le.app_name===x,e[12]=x,e[13]=E):E=e[13],T=l.filter(E),e[9]=l,e[10]=x,e[11]=T}else T=e[11];const L=T;let $;e[14]!==n?($=tn(n),e[14]=n,e[15]=$):$=e[15];const A=$;let V,O;e[16]!==L||e[17]!==g||e[18]!==A||e[19]!==m||e[20]!==n||e[21]!==d||e[22]!==r?(V=()=>{if(m){const E=L[0];E&&r(E);return}g&&O()},O=()=>{A?(v("connect"),h(!0)):d(n)},e[16]=L,e[17]=g,e[18]=A,e[19]=m,e[20]=n,e[21]=d,e[22]=r,e[23]=V,e[24]=O):(V=e[23],O=e[24]);let U;e[25]!==n||e[26]!==d||e[27]!==p?(U=()=>{ce("connections_community_warning_confirmed",{registry_item_id:n.id}),h(!1),p==="connect"&&d(n),v(null)},e[25]=n,e[26]=d,e[27]=p,e[28]=U):U=e[28];const B=U;let I;e[29]!==b||e[30]!==i||e[31]!==D?(I={title:D,description:b,icon:i},e[29]=b,e[30]=i,e[31]=D,e[32]=I):I=e[32];let q;e[33]===Symbol.for("react.memo_cache_sentinel")?(q=t.jsx(je,{}),e[33]=q):q=e[33];let J;e[34]!==A||e[35]!==n._sourceIcon?(J=A&&n._sourceIcon&&t.jsx("img",{src:n._sourceIcon,alt:"Community",className:"size-4 rounded-sm object-contain"}),e[34]=A,e[35]=n._sourceIcon,e[36]=J):J=e[36];let y;e[37]!==g||e[38]!==o||e[39]!==O||e[40]!==m||e[41]!==n.id||e[42]!==a?(y=m?t.jsx("span",{className:"text-xs text-muted-foreground font-normal",children:a("orgs.catalogItemCard.connected")}):g&&t.jsx(G,{variant:"outline",size:"sm",className:"h-7 px-3 rounded-lg text-sm font-medium",disabled:o!==null,onClick:E=>{E.stopPropagation(),O()},children:o===n.id?t.jsx(ge,{size:14,className:"animate-spin"}):a("orgs.catalogItemCard.connect")}),e[37]=g,e[38]=o,e[39]=O,e[40]=m,e[41]=n.id,e[42]=a,e[43]=y):y=e[43];let w;e[44]!==y||e[45]!==J?(w=t.jsxs("div",{className:"flex items-center gap-2",children:[J,y]}),e[44]=y,e[45]=J,e[46]=w):w=e[46];let z;e[47]!==V||e[48]!==w||e[49]!==I?(z=t.jsx(ve,{connection:I,fallbackIcon:q,onClick:V,headerActionsAlwaysVisible:!0,headerActions:w}),e[47]=V,e[48]=w,e[49]=I,e[50]=z):z=e[50];let R;e[51]!==a?(R=a("orgs.catalogItemCard.communityMcpServerTitle"),e[51]=a,e[52]=R):R=e[52];let H;e[53]!==R?(H=t.jsx(we,{children:R}),e[53]=R,e[54]=H):H=e[54];let C;e[55]!==a?(C=a("orgs.catalogItemCard.communityMcpServerDescription"),e[55]=a,e[56]=C):C=e[56];let M;e[57]!==C?(M=t.jsx(Ie,{children:C}),e[57]=C,e[58]=M):M=e[58];let P;e[59]!==H||e[60]!==M?(P=t.jsxs(Pe,{children:[H,M]}),e[59]=H,e[60]=M,e[61]=P):P=e[61];let Y;e[62]!==a?(Y=a("orgs.catalogItemCard.cancel"),e[62]=a,e[63]=Y):Y=e[63];let ee;e[64]!==Y?(ee=t.jsx(Le,{children:Y}),e[64]=Y,e[65]=ee):ee=e[65];let Z;e[66]!==a?(Z=a("orgs.catalogItemCard.continue"),e[66]=a,e[67]=Z):Z=e[67];let u;e[68]!==B||e[69]!==Z?(u=t.jsx(Oe,{onClick:B,children:Z}),e[68]=B,e[69]=Z,e[70]=u):u=e[70];let f;e[71]!==ee||e[72]!==u?(f=t.jsxs(Me,{children:[ee,u]}),e[71]=ee,e[72]=u,e[73]=f):f=e[73];let F;e[74]!==P||e[75]!==f?(F=t.jsxs(Fe,{children:[P,f]}),e[74]=P,e[75]=f,e[76]=F):F=e[76];let W;e[77]!==N||e[78]!==F?(W=t.jsx($e,{open:N,onOpenChange:h,children:F}),e[77]=N,e[78]=F,e[79]=W):W=e[79];let X;return e[80]!==z||e[81]!==W?(X=t.jsxs(t.Fragment,{children:[z,W]}),e[80]=z,e[81]=W,e[82]=X):X=e[82],X}function Qe(s){const e=re.c(8),{selectionMode:n,children:g}=s,l=n?"w-8 opacity-100":"w-0 opacity-0 group-hover:w-8 group-hover:opacity-100";let c;e[0]!==l?(c=xe("overflow-hidden transition-all duration-150 ease-out",l),e[0]=l,e[1]=c):c=e[1];let o;e[2]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsx(Xt,{asChild:!0,children:t.jsx(G,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:on,children:t.jsx(Qt,{size:20})})}),e[2]=o):o=e[2];let r;e[3]!==g?(r=t.jsxs(Gt,{children:[o,t.jsx(qt,{align:"end",onClick:sn,children:g})]}),e[3]=g,e[4]=r):r=e[4];let d;return e[5]!==c||e[6]!==r?(d=t.jsx("div",{className:c,children:r}),e[5]=c,e[6]=r,e[7]=d):d=e[7],d}function sn(s){return s.stopPropagation()}function on(s){return s.stopPropagation()}function cn(s){const e=re.c(56),{group:n,onOpen:g,selectionMode:l,selectedIds:c,onToggleSelect:o}=s,r=ae();let d;if(e[0]!==n.connections||e[1]!==c){let I;e[3]!==c?(I=q=>c.has(q.id),e[3]=c,e[4]=I):I=e[4],d=n.connections.every(I),e[0]=n.connections,e[1]=c,e[2]=d}else d=e[2];const a=d;let N;if(e[5]!==n.connections||e[6]!==c){let I;e[8]!==c?(I=q=>c.has(q.id),e[8]=c,e[9]=I):I=e[9],N=n.connections.some(I),e[5]=n.connections,e[6]=c,e[7]=N}else N=e[7];const h=N;let p;e[10]!==a||e[11]!==n.connections||e[12]!==o||e[13]!==c?(p=()=>{for(const I of n.connections)a?c.has(I.id)&&o(I.id):c.has(I.id)||o(I.id)},e[10]=a,e[11]=n.connections,e[12]=o,e[13]=c,e[14]=p):p=e[14];const v=p,x=n.title,_=n.icon;let m;e[15]!==n.connections.length||e[16]!==r?(m=r("orgs.connectionSelectionUi.instancesCount",{count:n.connections.length}),e[15]=n.connections.length,e[16]=r,e[17]=m):m=e[17];let S;e[18]!==n.icon||e[19]!==n.title||e[20]!==m?(S={title:x,icon:_,description:m},e[18]=n.icon,e[19]=n.title,e[20]=m,e[21]=S):S=e[21];let j;e[22]!==g||e[23]!==l||e[24]!==v?(j=()=>l?v():g(),e[22]=g,e[23]=l,e[24]=v,e[25]=j):j=e[25];const D=l&&a&&"ring-2 ring-primary",b=l&&h&&!a&&"ring-1 ring-primary/50";let k;e[26]!==b||e[27]!==D?(k=xe(D,b),e[26]=b,e[27]=D,e[28]=k):k=e[28];let i;e[29]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(je,{}),e[29]=i):i=e[29];let T;e[30]!==a||e[31]!==n.connections.length||e[32]!==l||e[33]!==h||e[34]!==r||e[35]!==v?(T=l?t.jsx(Xe,{checked:a?!0:h?"indeterminate":!1,onCheckedChange:v}):t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx("span",{className:"text-xs text-muted-foreground font-normal",children:r("orgs.connectionSelectionUi.connected")}),t.jsxs("span",{className:"text-xs text-muted-foreground font-normal tabular-nums",children:["x",n.connections.length]})]}),e[30]=a,e[31]=n.connections.length,e[32]=l,e[33]=h,e[34]=r,e[35]=v,e[36]=T):T=e[36];let L;e[37]!==g?(L=I=>{I.stopPropagation(),g()},e[37]=g,e[38]=L):L=e[38];let $;e[39]===Symbol.for("react.memo_cache_sentinel")?($=t.jsx(Ge,{size:16}),e[39]=$):$=e[39];let A;e[40]!==r?(A=r("orgs.connectionSelectionUi.open"),e[40]=r,e[41]=A):A=e[41];let V;e[42]!==L||e[43]!==A?(V=t.jsxs(ue,{onClick:L,children:[$,A]}),e[42]=L,e[43]=A,e[44]=V):V=e[44];let O;e[45]!==l||e[46]!==V?(O=t.jsx(Qe,{selectionMode:l,children:V}),e[45]=l,e[46]=V,e[47]=O):O=e[47];let U;e[48]!==T||e[49]!==O?(U=t.jsxs("div",{className:"flex items-center gap-1",children:[T,O]}),e[48]=T,e[49]=O,e[50]=U):U=e[50];let B;return e[51]!==k||e[52]!==U||e[53]!==S||e[54]!==j?(B=t.jsx(t.Fragment,{children:t.jsx(ve,{connection:S,onClick:j,className:k,fallbackIcon:i,headerActionsAlwaysVisible:!0,headerActions:U})}),e[51]=k,e[52]=U,e[53]=S,e[54]=j,e[55]=B):B=e[55],B}function rn(s){const e=re.c(36),{connection:n,isSelected:g,selectionMode:l,canManage:c,canManageAgents:o,onToggleSelect:r,onOpen:d,onToggleStatus:a,onDelete:N}=s,h=ae();let p;e[0]!==g||e[1]!==r||e[2]!==l||e[3]!==h?(p=l?t.jsx(Xe,{checked:g,onCheckedChange:r,onClick:ln}):t.jsx("span",{className:"text-xs text-muted-foreground font-normal",children:h("orgs.connectionSelectionUi.connected")}),e[0]=g,e[1]=r,e[2]=l,e[3]=h,e[4]=p):p=e[4];let v;e[5]!==d?(v=i=>{i.stopPropagation(),d()},e[5]=d,e[6]=v):v=e[6];let x;e[7]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsx(Ge,{size:16}),e[7]=x):x=e[7];let _;e[8]!==h?(_=h("orgs.connectionSelectionUi.open"),e[8]=h,e[9]=_):_=e[9];let m;e[10]!==v||e[11]!==_?(m=t.jsxs(ue,{onClick:v,children:[x,_]}),e[10]=v,e[11]=_,e[12]=m):m=e[12];let S;e[13]!==c||e[14]!==o||e[15]!==r||e[16]!==h?(S=(c||o)&&t.jsxs(ue,{onClick:i=>{i.stopPropagation(),r()},children:[t.jsx(Ft,{size:16}),h("orgs.connectionSelectionUi.select")]}),e[13]=c,e[14]=o,e[15]=r,e[16]=h,e[17]=S):S=e[17];let j;e[18]!==c||e[19]!==n||e[20]!==a||e[21]!==h?(j=c&&(n.status==="active"?t.jsxs(ue,{onClick:i=>{i.stopPropagation(),a("inactive")},children:[t.jsx($t,{size:16}),h("orgs.connectionSelectionUi.disable")]}):t.jsxs(ue,{onClick:i=>{i.stopPropagation(),a("active")},children:[t.jsx(Ut,{size:16}),h("orgs.connectionSelectionUi.enable")]})),e[18]=c,e[19]=n,e[20]=a,e[21]=h,e[22]=j):j=e[22];let D;e[23]!==c||e[24]!==N||e[25]!==h?(D=c&&t.jsxs(ue,{variant:"destructive",onClick:i=>{i.stopPropagation(),N()},children:[t.jsx(qe,{size:16}),h("orgs.connectionSelectionUi.delete")]}),e[23]=c,e[24]=N,e[25]=h,e[26]=D):D=e[26];let b;e[27]!==l||e[28]!==m||e[29]!==S||e[30]!==j||e[31]!==D?(b=t.jsxs(Qe,{selectionMode:l,children:[m,S,j,D]}),e[27]=l,e[28]=m,e[29]=S,e[30]=j,e[31]=D,e[32]=b):b=e[32];let k;return e[33]!==p||e[34]!==b?(k=t.jsxs("div",{className:"flex items-center gap-1",children:[p,b]}),e[33]=p,e[34]=b,e[35]=k):k=e[35],k}function ln(s){return s.stopPropagation()}function an(s){const e=re.c(29),{count:n,total:g,canManage:l,canManageAgents:c,onSelectAll:o,onDeselectAll:r,onDelete:d,onAddToAgent:a,onToggleStatus:N,onCancel:h}=s,p=ae();if(n===0)return null;let v;e[0]!==n||e[1]!==p?(v=p("orgs.connectionSelectionUi.selectedCount",{count:n}),e[0]=n,e[1]=p,e[2]=v):v=e[2];let x;e[3]!==v?(x=t.jsx("div",{className:"text-xs text-muted-foreground pr-1 tabular-nums",children:v}),e[3]=v,e[4]=x):x=e[4];let _;e[5]!==n||e[6]!==r||e[7]!==o||e[8]!==p||e[9]!==g?(_=n<g?t.jsx(G,{variant:"outline",size:"sm",className:"h-7 text-xs px-2",onClick:o,children:p("orgs.connectionSelectionUi.selectAll",{total:g})}):t.jsx(G,{variant:"outline",size:"sm",className:"h-7 text-xs px-2",onClick:r,children:p("orgs.connectionSelectionUi.clearSelection")}),e[5]=n,e[6]=r,e[7]=o,e[8]=p,e[9]=g,e[10]=_):_=e[10];let m;e[11]!==c||e[12]!==a||e[13]!==p?(m=c&&t.jsxs(G,{variant:"outline",size:"sm",className:"h-7 text-xs px-2",onClick:a,children:[t.jsx(Re,{size:13}),p("orgs.connectionSelectionUi.addToAgent")]}),e[11]=c,e[12]=a,e[13]=p,e[14]=m):m=e[14];let S;e[15]!==l||e[16]!==d||e[17]!==N||e[18]!==p?(S=l&&t.jsxs(t.Fragment,{children:[t.jsx(G,{variant:"outline",size:"sm",className:"h-7 text-xs px-2",onClick:()=>N("active"),children:p("orgs.connectionSelectionUi.enable")}),t.jsx(G,{variant:"outline",size:"sm",className:"h-7 text-xs px-2",onClick:()=>N("inactive"),children:p("orgs.connectionSelectionUi.disable")}),t.jsxs(G,{variant:"destructive",size:"sm",className:"h-7 text-xs px-2",onClick:d,children:[t.jsx(qe,{size:13}),p("orgs.connectionSelectionUi.delete")]})]}),e[15]=l,e[16]=d,e[17]=N,e[18]=p,e[19]=S):S=e[19];let j;e[20]===Symbol.for("react.memo_cache_sentinel")?(j=t.jsx(We,{size:13}),e[20]=j):j=e[20];let D;e[21]!==h?(D=t.jsx(G,{variant:"ghost",size:"sm",className:"h-7 text-xs px-2",onClick:h,children:j}),e[21]=h,e[22]=D):D=e[22];let b;return e[23]!==x||e[24]!==_||e[25]!==m||e[26]!==S||e[27]!==D?(b=t.jsx("div",{className:"fixed bottom-4 left-1/2 z-50 -translate-x-1/2",children:t.jsxs("div",{className:"rounded-xl border border-border bg-background/95 shadow-lg backdrop-blur px-3 py-2 flex items-center gap-2",children:[x,_,m,S,D]})}),e[23]=x,e[24]=_,e[25]=m,e[26]=S,e[27]=D,e[28]=b):b=e[28],b}function dn(s){const e=re.c(45),{open:n,onOpenChange:g,agents:l,onConfirm:c}=s,o=ae(),[r,d]=K.useState(null);let a;e[0]!==o?(a=o("orgs.connectionSelectionUi.addToAgentTitle"),e[0]=o,e[1]=a):a=e[1];let N;e[2]!==a?(N=t.jsx(Ue,{children:a}),e[2]=a,e[3]=N):N=e[3];let h;e[4]!==o?(h=o("orgs.connectionSelectionUi.addToAgentDescription"),e[4]=o,e[5]=h):h=e[5];let p;e[6]!==h?(p=t.jsx(Ve,{children:h}),e[6]=h,e[7]=p):p=e[7];let v;e[8]!==N||e[9]!==p?(v=t.jsxs(ze,{children:[N,p]}),e[8]=N,e[9]=p,e[10]=v):v=e[10];let x;e[11]!==l||e[12]!==r||e[13]!==o?(x=l.length===0?t.jsx("p",{className:"text-sm text-muted-foreground text-center py-4",children:o("orgs.connectionSelectionUi.noAgentsFound")}):l.map(A=>t.jsxs("button",{type:"button",onClick:()=>d(A.id),className:xe("flex items-center gap-3 w-full rounded-md px-3 py-2 text-left transition-colors",r===A.id?"bg-primary/10 ring-1 ring-primary":"hover:bg-muted/50"),children:[t.jsx(Wt,{icon:A.icon,name:A.title,size:"sm",className:"shrink-0"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:A.title}),A.description&&t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:A.description})]})]},A.id)),e[11]=l,e[12]=r,e[13]=o,e[14]=x):x=e[14];let _;e[15]!==x?(_=t.jsx("div",{className:"max-h-60 overflow-auto py-2 space-y-1",children:x}),e[15]=x,e[16]=_):_=e[16];let m;e[17]!==g?(m=()=>g(!1),e[17]=g,e[18]=m):m=e[18];let S;e[19]!==o?(S=o("orgs.connectionSelectionUi.cancel"),e[19]=o,e[20]=S):S=e[20];let j;e[21]!==m||e[22]!==S?(j=t.jsx(G,{variant:"outline",onClick:m,children:S}),e[21]=m,e[22]=S,e[23]=j):j=e[23];const D=!r;let b;e[24]!==c||e[25]!==g||e[26]!==r?(b=()=>{r&&(c(r),g(!1),d(null))},e[24]=c,e[25]=g,e[26]=r,e[27]=b):b=e[27];let k;e[28]!==o?(k=o("orgs.connectionSelectionUi.add"),e[28]=o,e[29]=k):k=e[29];let i;e[30]!==D||e[31]!==b||e[32]!==k?(i=t.jsx(G,{disabled:D,onClick:b,children:k}),e[30]=D,e[31]=b,e[32]=k,e[33]=i):i=e[33];let T;e[34]!==j||e[35]!==i?(T=t.jsxs(Ee,{children:[j,i]}),e[34]=j,e[35]=i,e[36]=T):T=e[36];let L;e[37]!==T||e[38]!==v||e[39]!==_?(L=t.jsxs(Be,{className:"sm:max-w-[400px]",children:[v,_,T]}),e[37]=T,e[38]=v,e[39]=_,e[40]=L):L=e[40];let $;return e[41]!==g||e[42]!==n||e[43]!==L?($=t.jsx(Ke,{open:n,onOpenChange:g,children:L}),e[41]=g,e[42]=n,e[43]=L,e[44]=$):$=e[44],$}function un({listState:s,activeTab:e,typeFilter:n,statusFilter:g,registryFilter:l,enabledRegistries:c}){const o=ae(),{org:r}=De(),d=ot(),a=Ne(),{data:N}=ke.useSession(),h=He(),p=Lt(s),v=ft(),{granted:x}=Ce("connections:manage"),{granted:_}=Ce("agents:manage"),[m,S]=K.useState(new Set),j=m.size>0,[D,b]=K.useState(!1),[k,i]=K.useState(!1),[T,L]=K.useState(null),$=Ot(),A=p.filter(u=>!(n!=="ALL"&&u.connection_type!==n||g!=="ALL"&&u.status!==g)),V=gt(A),O=u=>{S(f=>{const F=new Set(f);return F.has(u)?F.delete(u):F.add(u),F})},U=()=>{S(new Set)},B=Ae(c,s.searchTerm),I=B.items,q=xt(B.loadMore,B.hasMore,B.isLoadingMore),J=new Set(p.filter(u=>u.app_name).map(u=>u.app_name)),y=l==="ALL"||c.some(u=>u.id===l)?l:"ALL",w=s.search.length>0,z=e==="all"||w?I.filter(u=>{if(y!=="ALL"&&u._registryId!==y)return!1;if(w){const f=Te(u);if(f&&J.has(f))return!1}return!0}):[],R=e==="connected"||w?V:[],H=async u=>{if(!(!r||!N?.user?.id)){ce("connection_add_clicked",{action:"connect_new",registry_item_id:u.id,source:"connections_page"}),L(u.id);try{const f=lt(u,r.id,N.user.id,{remoteIndex:0}),F=f.connection_type==="STDIO",W=!!f.connection_url,X=F&&f.connection_headers&&typeof f.connection_headers=="object"&&"command"in f.connection_headers;if(!W&&!X){Q.error(o("orgs.connections.cannotConnectNoMethod")),L(null);return}const{id:E}=await h.create.mutateAsync(f),le=await Rt({connectionId:E,orgId:r.id,orgSlug:r.slug,persistFallback:ye=>h.update.mutateAsync({id:E,data:{connection_token:ye}}).then(()=>{})});if(le.ran&&!le.ok){ce("connection_oauth_failed",{connection_id:E,flow:"connections_page_connect",error:le.error??"no_token"}),Q.error(o("orgs.connections.authenticationFailed",{error:le.error??"no token received"}));return}if(le.ran){ce("connection_oauth_succeeded",{connection_id:E,flow:"connections_page_connect"});const ye=new URL(`/api/${r.slug}/mcp/${E}`,window.location.origin);await d.invalidateQueries({queryKey:it.isMCPAuthenticated(ye.href,null)}),M(),Q.success(o("orgs.connections.authenticationSuccessful"))}Q.success(o("orgs.connections.connectedSuccessfully"))}catch(f){Q.error(o("orgs.connections.failedToConnect",{error:f instanceof Error?f.message:String(f)}))}finally{L(null)}}},C=Mt(),M=()=>{d.invalidateQueries({predicate:u=>{const f=u.queryKey;return f[1]===r.id&&f[3]==="collection"&&f[4]==="CONNECTIONS"}})},P=async()=>{b(!1);const u=[...m];ce("connections_bulk_delete",{count:u.length});let f=0;for(const F of u)try{await C.call("COLLECTION_CONNECTIONS_DELETE",{id:F,force:!0}),f++}catch{}M(),Q.success(o("orgs.connections.deletedConnections",{count:f})),U()},Y=async(u,f)=>{try{await h.update.mutateAsync({id:u,data:{status:f}}),M(),Q.success(o(f==="active"?"orgs.connections.connectionEnabled":"orgs.connections.connectionDisabled"))}catch{Q.error(o("orgs.connections.failedToUpdateConnection"))}},ee=async u=>{const f=[...m];ce("connections_bulk_status_toggled",{count:f.length,to_status:u});let F=0;for(const W of f)try{await h.update.mutateAsync({id:W,data:{status:u}}),F++}catch{}M(),Q.success(u==="active"?o("orgs.connections.enabledConnections",{count:F}):o("orgs.connections.disabledConnections",{count:F})),U()},Z=async u=>{const f=$.find(X=>X.id===u);if(!f)return;ce("connections_bulk_add_to_agent",{agent_id:u,count:m.size});const F=new Set(f.connections.map(X=>X.connection_id)),W=[...m].filter(X=>!F.has(X)).map(X=>({connection_id:X,selected_tools:null,selected_resources:null,selected_prompts:null}));if(W.length===0){Q.info(o("orgs.connections.allConnectionsAlreadyInAgent"));return}try{await C.call("COLLECTION_VIRTUAL_MCP_UPDATE",{id:u,data:{connections:[...f.connections,...W]}}),d.invalidateQueries({predicate:X=>{const E=X.queryKey;return E[1]===r.id&&E[3]==="collection"&&E[4]==="VIRTUAL_MCP"}}),Q.success(o("orgs.connections.addedConnectionsToAgent",{count:W.length,agentTitle:f.title})),U()}catch{Q.error(o("orgs.connections.failedToAddConnectionsToAgent"))}};return t.jsxs(t.Fragment,{children:[t.jsx(ht,{...v}),t.jsx(en,{open:D,onOpenChange:b,count:m.size,onConfirm:P}),t.jsx(dn,{open:k,onOpenChange:i,agents:$,onConfirm:Z}),B.isInitialLoading&&e==="all"?t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsx(ge,{size:32,className:"animate-spin text-muted-foreground"})}):t.jsx("div",{children:(w?z.length===0&&A.length===0:e==="all"?z.length===0:A.length===0)?t.jsx(pt,{image:t.jsx("img",{src:"/emptystate-mcp.svg",alt:"",width:336,height:320,"aria-hidden":"true"}),title:o("orgs.connections.noConnectionsFound"),description:s.search?o("orgs.connections.noConnectionsMatchSearch",{search:s.search}):o(x?"orgs.connections.createConnectionToGetStarted":"orgs.connections.askAdminToAddConnection")}):t.jsxs("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:[R.map(u=>{if(u.type==="group")return t.jsx(cn,{group:u,onOpen:()=>{a({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:u.key}})},selectionMode:j,selectedIds:m,onToggleSelect:O},u.key);const f=u.connection,F=m.has(f.id);return t.jsx(ve,{connection:f,fallbackIcon:t.jsx(je,{}),onClick:()=>j?O(f.id):a({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:he(f)}}),className:xe(F&&"ring-2 ring-primary bg-primary/5"),headerActionsAlwaysVisible:!0,headerActions:t.jsx(rn,{connection:f,isSelected:F,selectionMode:j,canManage:x,canManageAgents:_,onToggleSelect:()=>O(f.id),onOpen:()=>a({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:he(f)}}),onToggleStatus:W=>Y(f.id,W),onDelete:()=>v.requestDelete(f)})},f.id)}),z.map(u=>t.jsx(nn,{item:u,canManage:x,allConnections:p,connectedAppNames:J,connectingItemId:T,onNavigateConnected:f=>a({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:he(f)}}),onConnect:H},`catalog-${u._registryId}:${u.id}`)),(e==="all"||w)&&c.length>0&&t.jsx("div",{ref:q,className:"col-span-full h-4"}),(e==="all"||w)&&B.isLoadingMore&&t.jsx("div",{className:"col-span-full flex justify-center py-6",children:t.jsx(ge,{size:24,className:"animate-spin text-muted-foreground"})})]})}),j&&t.jsx(an,{count:m.size,total:A.length,canManage:x,canManageAgents:_,onSelectAll:()=>{S(new Set(A.map(u=>u.id)))},onDeselectAll:()=>S(new Set),onDelete:()=>b(!0),onAddToAgent:()=>i(!0),onToggleStatus:ee,onCancel:U})]})}function mn(){const s=ae(),{org:e}=De(),n=Ne(),g=Ye({strict:!1}),{data:l}=ke.useSession(),{stdioEnabled:c}=Ze(),o=kt(),{granted:r}=Ce("connections:manage"),d=Zt({namespace:e.slug,resource:"connections"}),a=He(),[N,h]=et(tt.connectionsTab(e.slug),y=>g.tab==="all"||g.tab==="connected"?g.tab:y??"all"),[p,v]=K.useState("ALL"),[x,_]=K.useState("ALL"),[m,S]=K.useState("ALL"),j=mt(),b=Ae(j,d.searchTerm).items,k=d.search!==d.searchTerm,i=nt({resolver:st(Et),defaultValues:{title:"",description:null,icon:null,ui_type:"HTTP",connection_url:"",connection_token:null,npx_package:"",stdio_command:"",stdio_args:"",stdio_cwd:"",env_vars:[]}}),T=i.watch("ui_type"),L=i.watch("connection_url"),$=i.watch("npx_package"),A=fe({uiType:T,connectionUrl:L??"",npxPackage:$??""})??_e({uiType:T,connectionUrl:L??"",registryItems:b}),V=r&&g.action==="create",O=()=>{ce("connections_custom_dialog_opened",{source:"connections_page"}),n({to:"/$org/settings/connections",params:{org:e.slug},search:{action:"create"}})},U=()=>{n({to:"/$org/settings/connections",params:{org:e.slug},search:{}})},B=async y=>{let w,z=null,R=null,H=null;y.ui_type==="NPX"?(w="STDIO",z="",H=Kt(y.npx_package||"",y.env_vars||[])):y.ui_type==="STDIO"?(w="STDIO",z="",H=Ht(y.stdio_command||"",y.stdio_args||"",y.stdio_cwd,y.env_vars||[])):(w=y.ui_type,z=y.connection_url||"",R=y.connection_token||null);const C=rt("conn");ce("connection_custom_created",{connection_type:w,ui_type:y.ui_type}),await a.create.mutateAsync({id:C,title:y.title,description:y.description||null,connection_type:w,connection_url:z,connection_token:R,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:l?.user?.id||"system",organization_id:e.id,icon:y.icon??null,app_name:null,app_id:null,connection_headers:H,oauth_config:null,configuration_state:null,metadata:null,tools:null,bindings:null,status:"inactive"}),U(),i.reset(),n({to:"/$org/settings/connections/$appSlug",params:{org:e.slug,appSlug:he({app_name:null,connection_url:z,title:y.title,id:C})}})},I=y=>{y||(V&&U(),i.reset())},q=y=>{const w=y.trim();if(!w)return;const z=!!i.formState.dirtyFields.title,R=!!i.formState.dirtyFields.description,H=!!i.formState.dirtyFields.env_vars,C=P=>{if(P&&(!z&&!i.getValues("title").trim()&&P.title&&i.setValue("title",P.title,{shouldDirty:!1}),!R&&!(i.getValues("description")??"").trim()&&P.description&&i.setValue("description",P.description,{shouldDirty:!1}),!H&&P.envVarKeys?.length)){const Y=i.getValues("env_vars")??[],ee=new Set(Y.map(u=>u.key)),Z=P.envVarKeys.filter(u=>!ee.has(u));Z.length>0&&i.setValue("env_vars",[...Y,...Z.map(u=>({key:u,value:""}))],{shouldDirty:!0})}},M=Bt(w);if(M&&c){i.setValue("ui_type","NPX",{shouldDirty:!0}),i.setValue("npx_package",M.packageName,{shouldDirty:!0}),i.setValue("connection_url","",{shouldDirty:!0}),i.setValue("connection_token",null,{shouldDirty:!0}),C(fe({uiType:"NPX",npxPackage:M.packageName}));return}if(w.startsWith("http://")||w.startsWith("https://")){const P=T==="HTTP"||T==="SSE"||T==="Websocket"?T:"HTTP";i.setValue("ui_type",P,{shouldDirty:!0}),i.setValue("connection_url",w,{shouldDirty:!0}),C(fe({uiType:P,connectionUrl:w})??_e({uiType:P,connectionUrl:w,registryItems:b}));return}T==="NPX"&&C(fe({uiType:"NPX",npxPackage:w}))},J=r?t.jsx("div",{className:"flex items-center gap-2",children:t.jsxs(G,{variant:"outline",onClick:O,children:[t.jsx(Re,{size:14,className:"sm:hidden"}),t.jsx("span",{className:"hidden sm:inline",children:s("orgs.connections.customConnection")})]})}):null;return t.jsx(t.Fragment,{children:t.jsxs(pe,{children:[(()=>{const y=s("orgs.connections.createConnection"),w=s("orgs.connections.createConnectionDescription"),z=i.formState.isSubmitting?s("orgs.connections.saving"):s("orgs.connections.createConnection"),R=t.jsxs("div",{className:"grid gap-4",children:[t.jsx(te,{control:i.control,name:"ui_type",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.type")}),t.jsxs(Tt,{value:C.value,onValueChange:C.onChange,children:[t.jsx(oe,{children:t.jsx(At,{children:t.jsx(wt,{})})}),t.jsxs(It,{children:[t.jsx(me,{value:"HTTP",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Se,{className:"w-4 h-4"}),"HTTP"]})}),t.jsx(me,{value:"SSE",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Se,{className:"w-4 h-4"}),"SSE"]})}),t.jsx(me,{value:"Websocket",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Se,{className:"w-4 h-4"}),"Websocket"]})}),c&&t.jsxs(t.Fragment,{children:[t.jsx(me,{value:"NPX",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(je,{className:"w-4 h-4"}),s("orgs.connections.npxPackage")]})}),t.jsx(me,{value:"STDIO",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Vt,{className:"w-4 h-4"}),s("orgs.connections.customCommand")]})})]})]})]}),t.jsx(ie,{})]})}),T==="NPX"&&t.jsx(te,{control:i.control,name:"npx_package",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.npmPackage")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.npmPackagePlaceholder"),...C,value:C.value??"",onPaste:M=>{const P=M.clipboardData.getData("text");P&&(M.preventDefault(),i.setValue("npx_package",P.trim(),{shouldDirty:!0}),q(P))},onBlur:M=>{q(M.target.value),C.onBlur()}})}),t.jsx(ie,{})]})}),T==="STDIO"&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid grid-cols-2 gap-4 items-start",children:[t.jsx(te,{control:i.control,name:"stdio_command",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.command")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.commandPlaceholder"),...C,value:C.value??""})}),t.jsx(ie,{})]})}),t.jsx(te,{control:i.control,name:"stdio_args",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.arguments")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.argumentsPlaceholder"),...C,value:C.value??""})}),t.jsx(ie,{})]})})]}),t.jsx(te,{control:i.control,name:"stdio_cwd",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.workingDirectory")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.workingDirectoryPlaceholder"),...C,value:C.value??""})}),t.jsx("p",{className:"text-xs text-muted-foreground",children:s("orgs.connections.directoryExecutionNote")}),t.jsx(ie,{})]})})]}),(T==="NPX"||T==="STDIO")&&t.jsx(te,{control:i.control,name:"env_vars",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.environmentVariables")}),t.jsx(oe,{children:t.jsx(zt,{value:C.value??[],onChange:C.onChange})}),t.jsx(ie,{})]})}),T!=="NPX"&&T!=="STDIO"&&t.jsxs(t.Fragment,{children:[t.jsx(te,{control:i.control,name:"connection_url",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.url")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.urlPlaceholder"),...C,value:C.value??"",onPaste:M=>{const P=M.clipboardData.getData("text");P&&(M.preventDefault(),i.setValue("connection_url",P.trim(),{shouldDirty:!0}),q(P))},onBlur:M=>{q(M.target.value),C.onBlur()}})}),t.jsx(ie,{})]})}),t.jsx(te,{control:i.control,name:"connection_token",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:A?.token?.label??s("orgs.connections.tokenOptional")}),t.jsx(oe,{children:t.jsx(de,{type:"password",placeholder:A?.token?.placeholder??s("orgs.connections.tokenPlaceholder"),...C,value:C.value??""})}),A?.token?.helperText&&t.jsxs("p",{className:"text-xs text-muted-foreground",children:[A.token.helperText,A.id==="github"&&t.jsxs(t.Fragment,{children:[" ","·"," ",t.jsx("a",{className:"text-foreground underline underline-offset-4 hover:text-foreground/80",href:"https://github.com/settings/personal-access-tokens",target:"_blank",rel:"noreferrer",children:s("orgs.connections.openGitHubPatSettings")})]})]}),t.jsx(ie,{})]})})]}),t.jsx(te,{control:i.control,name:"title",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.name")}),t.jsx(oe,{children:t.jsx(de,{placeholder:s("orgs.connections.namePlaceholder"),...C})}),t.jsx(ie,{})]})}),t.jsx(te,{control:i.control,name:"description",render:({field:C})=>t.jsxs(ne,{children:[t.jsx(se,{children:s("orgs.connections.description")}),t.jsx(oe,{children:t.jsx(Pt,{placeholder:s("orgs.connections.descriptionPlaceholder"),rows:3,...C,value:C.value??""})}),t.jsx(ie,{})]})})]}),H=V;return o?t.jsx(St,{open:H,onOpenChange:I,children:t.jsxs(Ct,{className:"max-h-[90vh]",children:[t.jsx(vt,{className:"pb-2",children:t.jsxs("div",{className:"flex items-start justify-between gap-4",children:[t.jsxs("div",{className:"flex-1 text-left",children:[t.jsx(bt,{children:y}),t.jsx(_t,{className:"mt-1",children:w})]}),t.jsx(Dt,{asChild:!0,children:t.jsx(G,{variant:"ghost",size:"icon",className:"shrink-0 -mt-1","aria-label":s("orgs.connections.close"),children:t.jsx(We,{size:16})})})]})}),t.jsx(be,{...i,children:t.jsxs("form",{onSubmit:i.handleSubmit(B),children:[t.jsx("div",{className:"overflow-y-auto px-4 pb-4",children:R}),t.jsx(Nt,{children:t.jsx(G,{type:"submit",disabled:i.formState.isSubmitting,className:"w-full",children:z})})]})})]})}):t.jsx(Ke,{open:H,onOpenChange:I,children:t.jsxs(Be,{className:"sm:max-w-[525px]",children:[t.jsxs(ze,{children:[t.jsx(Ue,{children:y}),t.jsx(Ve,{children:w})]}),t.jsx(be,{...i,children:t.jsxs("form",{onSubmit:i.handleSubmit(B),children:[t.jsx("div",{className:"py-4",children:R}),t.jsxs(Ee,{children:[t.jsx(G,{type:"button",variant:"outline",onClick:()=>I(!1),children:s("orgs.connections.cancel")}),t.jsx(G,{type:"submit",disabled:i.formState.isSubmitting,className:"min-w-40",children:z})]})]})})]})})})(),t.jsx(pe.Content,{children:t.jsx(pe.Body,{children:t.jsxs("div",{className:"flex flex-col gap-6",children:[t.jsx(pe.Title,{children:s("orgs.connections.pageTitle")}),t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(dt,{value:d.search,onChange:d.setSearch,placeholder:s("orgs.connections.searchPlaceholder"),className:"w-full md:w-[375px]",onKeyDown:y=>{y.key==="Escape"&&(d.setSearch(""),y.target.blur())}}),t.jsx(at,{sortKey:d.sortKey,sortDirection:d.sortDirection,onSort:d.handleSort,sortOptions:[{id:"title",label:s("orgs.connections.sortName")},{id:"description",label:s("orgs.connections.sortDescription")},{id:"connection_type",label:s("orgs.connections.sortType")},{id:"updated_by",label:s("orgs.connections.sortUpdatedBy")},{id:"updated_at",label:s("orgs.connections.sortUpdated")}],filters:[{label:s("orgs.connections.filterType"),value:p,onChange:y=>v(y||"ALL"),options:[{id:"ALL",label:s("orgs.connections.filterAll")},{id:"HTTP",label:"HTTP"},{id:"SSE",label:"SSE"},{id:"Websocket",label:"WebSocket"},{id:"STDIO",label:"STDIO"}]},{label:s("orgs.connections.filterStatus"),value:x,onChange:y=>_(y||"ALL"),options:[{id:"ALL",label:s("orgs.connections.filterAll")},{id:"active",label:s("orgs.connections.filterActive")},{id:"inactive",label:s("orgs.connections.filterInactive")},{id:"error",label:s("orgs.connections.filterError")}]},...j.length>1?[{label:s("orgs.connections.filterRegistry"),value:m,onChange:y=>S(y||"ALL"),options:[{id:"ALL",label:s("orgs.connections.filterAllRegistries")},...j.map(y=>({id:y.id,label:y.id.includes("community-registry")?s("orgs.connections.communityMcpRegistry"):y.title}))]}]:[]]})]}),J]}),t.jsx(ut,{tabs:[{id:"all",label:s("orgs.connections.tabAll")},{id:"connected",label:s("orgs.connections.tabConnected")}],activeTab:N,onTabChange:y=>{const w=y;w!==N&&ce("connections_page_tab_changed",{to_tab:w}),h(w)}}),t.jsx(K.Suspense,{fallback:t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsx(ge,{size:32,className:"animate-spin text-muted-foreground"})}),children:t.jsx("div",{style:{opacity:k?.5:1,transition:k?"opacity 0.2s 0.2s linear":"opacity 0s 0s linear",pointerEvents:k?"none":"auto"},children:t.jsx(un,{listState:d,activeTab:N,typeFilter:p,statusFilter:x,registryFilter:m,enabledRegistries:j})})})]})})})]})})}function eo(){const s=re.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(Je,{children:t.jsx(K.Suspense,{fallback:t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsx(ge,{size:32,className:"animate-spin text-muted-foreground"})}),children:t.jsx(mn,{})})}),s[0]=e):e=s[0],e}export{eo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as L,b as R,j as r}from"./index-BwgY1kqd.js";import{I as A}from"./input-DxtlvNx4.js";import{L as I}from"./label-B0ikG0BR.js";import{S as z,a as J,b as O,c as V,d as $}from"./select-CI2Kb9Sa.js";import{T as D}from"./textarea-Cy6fYP8f.js";import{R as M,T as U,U as W,J as q,W as G,$ as H}from"./index-D81t5S79.js";import{s as F}from"./primitives-DqbuoYNf.js";import{u as Q}from"./use-autosave-BVdke6VE.js";import"./tooltip-CRCj97hY.js";import"./Check-CN3aR95k.js";import"./ChevronDown-BzVNS1OZ.js";import"./ChevronUp-DnZCjXI4.js";import"./ArrowUp-CNY1yOxC.js";import"./chat-context-Ck8Wn4ca.js";import"./tab-id-Bh2qnhiE.js";import"./dialog-YewNLxEX.js";import"./X-BiJLSBaw.js";import"./Copy01-Dy_ezRAZ.js";import"./hooks-CqZGTIJB.js";import"./use-mcp-client-C_SLYCKU.js";import"./auth-UIWygxsU.js";import"./decopilot-sse-pool-BaFfx-DU.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-virtual-mcp-MgLxHkl6.js";import"./use-ai-providers-Dba7uv8t.js";import"./studio-tools-Buts9Jdh.js";import"./use-decopilot-events-CmWmX6dr.js";import"./use-organization-settings-Dx_jMpFY.js";import"./automation-runs-C902l-4i.js";import"./agent-icon-DxROnAVl.js";import"./AlertCircle-CM_0Ehfg.js";import"./Tool01-quOYoGMK.js";import"./ArrowLeft-BZfdTkDM.js";import"./Tool02-BG0wvg15.js";import"./XCircle-BaWRjJTV.js";import"./ArrowUpRight-BaWBsvbw.js";import"./TrendUp01-DvvMG3Yc.js";import"./ZapSquare-CFeSjiMW.js";import"./Users03-DvVlP7qg.js";import"./CheckCircle-CugtwX3I.js";import"./ChevronRight-Ch3xlSyS.js";import"./DotsVertical-BGb9JOh-.js";import"./Stars02-DidMAYeR.js";import"./CpuChip01-Bf5F_zWu.js";import"./CreditCard01-Co7CzX5-.js";import"./Globe01-BvK8SYlx.js";import"./Settings02-CSMcNzxI.js";import"./Eye-DkElT0Vs.js";import"./FilterLines-EcsEo4Jg.js";import"./Share07-BmL98gFX.js";import"./Star01-Da76zNXt.js";import"./Globe04-Mxnxy5DN.js";import"./SwitchHorizontal01-DhN66_vL.js";import"./HardDrive-D4mmhAKW.js";import"./Key01-Dl2hMZR_.js";import"./LayoutLeft-D_y_5wH6.js";import"./LinkExternal01-Cz-T7iI3.js";import"./LogOut01-CaZwogo8.js";import"./Monitor01-DxknN2yJ.js";import"./Sun-CMTBWgtq.js";import"./Palette-Bu8w-a35.js";import"./Play-DVXmxEpH.js";import"./Plus-BmjRtSKh.js";import"./SearchLg-B-8ZzylY.js";import"./SearchMd-Cn88JKCH.js";import"./Shield01-C0siL_Jx.js";import"./Stars01-D-hcXadg.js";import"./Trash01-CKV3Apy3.js";import"./Upload01-2YYegxFf.js";import"./User01-G1OuxYv2.js";import"./Users01-CNQ8Pd9F.js";import"./XClose-CsD47O1t.js";import"./Zap-BsnGyygG.js";import"./useInfiniteQuery-DSEAwRSE.js";import"./use-infinite-scroll-BRKgSd4r.js";import"./use-connection-CxBpyaM7.js";import"./card-BLpFgfuY.js";import"./sidebar-DBsLvkYY.js";import"./use-mobile-B-ayRTms.js";import"./table-B-32UXnW.js";import"./empty-state-KPku5IL3.js";import"./use-members-0DTQfivq.js";import"./use-org-auth-client-0V6UXVgf.js";import"./use-clock-tick-Dbc3gz3T.js";import"./use-automations-ge2qYOWe.js";import"./useSuspenseInfiniteQuery-B4qA_36b.js";import"./avatar-BmBuWuWu.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-CdO2QS5D.js";import"./monaco-editor-BHM3MMOU.js";import"./spinner-B7P5D5DJ.js";import"./index-DEW97_0a.js";import"./shell-layout-CXbgrB5Q.js";import"./required-auth-layout-DLyGIUz-.js";import"./use-org-sso-C6WLVbIu.js";import"./integration-icon-BqcLi7JG.js";import"./use-navigate-to-agent-DibNb447.js";import"./reusable-new-chat-CouMjkYR.js";import"./AreaChart-BwcE5gcI.js";import"./form-CAO_X5q6.js";import"./file-type-icon-C0tXzXoK.js";import"./drawer-OibwTaDQ.js";import"./collection-search-InLvasRc.js";import"./tabs-BpuA5U2K.js";import"./toggle-group-Dv4yZJI8.js";import"./use-deco-credits-C_FbPMAf.js";import"./popover-DYbukGRm.js";import"./alert-dialog-DoBTkQti.js";import"./toolbar-DVE0wyCG.js";import"./skeleton-BcB7Gm6Z.js";import"./github-repo-picker-DNVKomBZ.js";import"./use-debounced-value-Nw-Hdj_U.js";import"./authenticate-and-persist-oauth-7NmulFBy.js";import"./mcp-oauth-CYPbiT_k.js";import"./use-mcp-tools-CA_iMswr.js";import"./extract-connection-data-DL2DskJ1.js";import"./metadata-dUsYcpuu.js";import"./provision-repo-scoped-github-connection-ufuvpGD9.js";import"./agent-capabilities-cXfbMfjV.js";import"./connection-card-BA7cqfkQ.js";import"./use-registry-connections-CKbB-Fbi.js";import"./retry-CErkP7V6.js";import"./connection-slug-eyAPH6o3.js";import"./connection-form-helpers-BZW3JlGP.js";import"./collection-tabs-DYabT4Jk.js";import"./badge-DR3LHWR5.js";import"./use-open-billing-url-BC_Odgdb.js";import"./select-model-D37Qrxxb.js";import"./checkbox-xmeSRC-T.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-mwDLkM3p.js";import"./cards-Bu7Ith-J.js";import"./dropdown-menu-De-Zj9zn.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-2-Y__opH.js";import"./deco-site-production-url-CaKZ7xBn.js";import"./use-capability-ak-s2Vaq.js";import"./pt-BR-CLy76QW2.js";import"./switch-D9rdVIva.js";import"./use-debounced-autosave-wmsXR2fY.js";import"./index-Cyav31EB.js";import"./search-input-DYPst4xo.js";import"./index-BB-gxEp-.js";import"./use-secrets-CFu8AAkj.js";import"./self-tool-result-CMbkWdG_.js";import"./use-tags-D4gtaS4D.js";import"./get-initials-D-f_fDFw.js";import"./command-DSMHhj9E.js";import"./index-ByQjYSP9.js";import"./use-file-configs-O7xnLjKI.js";import"./automation-list-row-NB4qaUu1.js";const X={authors:[{key:"name",labelKey:"sandbox.recordEditor.fieldName",widget:"text"},{key:"type",labelKey:"sandbox.recordEditor.fieldType",widget:"select",options:[{value:"Person",labelKey:"sandbox.recordEditor.optionPerson"},{value:"Organization",labelKey:"sandbox.recordEditor.optionOrganization"}]},{key:"email",labelKey:"sandbox.recordEditor.fieldEmail",widget:"text",placeholderKey:"sandbox.recordEditor.placeholderEmail"},{key:"jobTitle",labelKey:"sandbox.recordEditor.fieldJobTitle",widget:"text"},{key:"company",labelKey:"sandbox.recordEditor.fieldCompany",widget:"text"},{key:"avatar",labelKey:"sandbox.recordEditor.fieldAvatar",widget:"image"}]},Y={authors:"sandbox.recordEditor.titleAuthor"};function Wr(C){const t=L.c(40),{orgSlug:K,virtualMcpId:h,branch:w,kind:a,blockKey:g,block:f}=C,i=R(),P=M(h);let b;t[0]!==w||t[1]!==K||t[2]!==P||t[3]!==h?(b={orgSlug:K,virtualMcpId:h,branch:w,packagePath:P},t[0]=w,t[1]=K,t[2]=P,t[3]=h,t[4]=b):b=t[4];const p=U(b);let k;t[5]!==f||t[6]!==a?(k=W(f,a),t[5]=f,t[6]=a,t[7]=k):k=t[7];const B=k;let v;t[8]!==g||t[9]!==a||t[10]!==p?(v=l=>{p.mutate({blockKey:g,data:G(g,a,l)})},t[8]=g,t[9]=a,t[10]=p,t[11]=v):v=t[11];const[e,S]=Q(B,v);let j;t[12]!==e||t[13]!==S?(j=(l,o)=>S({...e,[l]:o}),t[12]=e,t[13]=S,t[14]=j):j=t[14];const s=j,T=Y[a];let n;t[15]!==i||t[16]!==T?(n=i(T),t[15]=i,t[16]=T,t[17]=n):n=t[17];let c;t[18]!==n?(c=r.jsx("span",{className:"text-sm font-medium",children:n}),t[18]=n,t[19]=c):c=t[19];let d;t[20]!==p.isError||t[21]!==p.isPending?(d=r.jsx(q,{isPending:p.isPending,isError:p.isError}),t[20]=p.isError,t[21]=p.isPending,t[22]=d):d=t[22];let y;t[23]!==c||t[24]!==d?(y=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[c,d]}),t[23]=c,t[24]=d,t[25]=y):y=t[25];const N=X[a];let x;if(t[26]!==e||t[27]!==s||t[28]!==i||t[29]!==N){let l;t[31]!==e||t[32]!==s||t[33]!==i?(l=o=>r.jsx("div",{className:"space-y-2",children:o.widget==="image"?r.jsx(H,{schema:{type:"string",format:"image-uri",title:i(o.labelKey)},value:e[o.key],onChange:m=>s(o.key,m),path:o.key,label:i(o.labelKey)}):o.widget==="select"?r.jsxs(r.Fragment,{children:[r.jsx(I,{htmlFor:o.key,children:i(o.labelKey)}),r.jsxs(z,{value:F(e[o.key])||o.options?.[0]?.value,onValueChange:m=>s(o.key,m),children:[r.jsx(J,{id:o.key,className:"h-10 w-full",children:r.jsx(O,{placeholder:i(o.labelKey)})}),r.jsx(V,{children:(o.options??[]).map(m=>r.jsx($,{value:m.value,children:i(m.labelKey)},m.value))})]})]}):r.jsxs(r.Fragment,{children:[r.jsx(I,{htmlFor:o.key,children:i(o.labelKey)}),o.widget==="textarea"?r.jsx(D,{id:o.key,value:F(e[o.key]),onChange:m=>s(o.key,m.target.value),rows:3}):r.jsx(A,{id:o.key,value:F(e[o.key]),placeholder:o.placeholderKey?i(o.placeholderKey):void 0,onChange:m=>s(o.key,m.target.value),className:"h-10"})]})},o.key),t[31]=e,t[32]=s,t[33]=i,t[34]=l):l=t[34],x=N.map(l),t[26]=e,t[27]=s,t[28]=i,t[29]=N,t[30]=x}else x=t[30];let u;t[35]!==x?(u=r.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto px-6 py-6",children:r.jsx("div",{className:"mx-auto max-w-xl space-y-6",children:x})}),t[35]=x,t[36]=u):u=t[36];let E;return t[37]!==y||t[38]!==u?(E=r.jsxs("div",{className:"flex h-full flex-col",children:[y,u]}),t[37]=y,t[38]=u,t[39]=E):E=t[39],E}export{Wr as RecordEditor};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-CZsydJOC.js","assets/index-BwgY1kqd.js","assets/index-GO9q_qH2.css","assets/Tool02-BG0wvg15.js","assets/CheckCircle-CugtwX3I.js","assets/Settings02-CSMcNzxI.js","assets/use-mcp-client-C_SLYCKU.js","assets/auth-UIWygxsU.js","assets/useInfiniteQuery-DSEAwRSE.js","assets/use-infinite-scroll-BRKgSd4r.js","assets/studio-tools-Buts9Jdh.js","assets/badge-DR3LHWR5.js","assets/input-DxtlvNx4.js","assets/dropdown-menu-De-Zj9zn.js","assets/Check-CN3aR95k.js","assets/ChevronRight-Ch3xlSyS.js","assets/DotsVertical-BGb9JOh-.js","assets/table-B-32UXnW.js","assets/toggle-group-Dv4yZJI8.js","assets/use-view-mode-MBewBxKM.js","assets/use-mobile-B-ayRTms.js","assets/FilterLines-EcsEo4Jg.js","assets/Globe01-BvK8SYlx.js","assets/SearchMd-Cn88JKCH.js","assets/dialog-YewNLxEX.js","assets/X-BiJLSBaw.js","assets/AlertCircle-CM_0Ehfg.js","assets/Upload01-2YYegxFf.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-DoBTkQti.js","assets/card-BLpFgfuY.js","assets/Trash01-CKV3Apy3.js","assets/label-B0ikG0BR.js","assets/select-CI2Kb9Sa.js","assets/tooltip-CRCj97hY.js","assets/ChevronDown-BzVNS1OZ.js","assets/ChevronUp-DnZCjXI4.js","assets/switch-D9rdVIva.js","assets/textarea-Cy6fYP8f.js","assets/ArrowLeft-BZfdTkDM.js","assets/XCircle-BaWRjJTV.js","assets/checkbox-xmeSRC-T.js","assets/Eye-DkElT0Vs.js","assets/LinkExternal01-Cz-T7iI3.js","assets/use-copy-CdO2QS5D.js","assets/Copy01-Dy_ezRAZ.js","assets/Key01-Dl2hMZR_.js","assets/Plus-BmjRtSKh.js","assets/mcp-oauth-CYPbiT_k.js","assets/Play-DVXmxEpH.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as i,j as e,r as s,k as a,aG as o}from"./index-BwgY1kqd.js";import{R as m}from"./require-capability-DoX1CpBC.js";import"./use-capability-ak-s2Vaq.js";import"./access-gate-BvYqWd0t.js";import"./capability-load-error-wLwNwR0H.js";const n=s.lazy(()=>o(()=>import("./registry-layout-CZsydJOC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49])));function f(){const r=i.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(m,{capability:"registry:manage",area:"the registry",children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{size:20,className:"animate-spin text-muted-foreground"})}),children:e.jsx(n,{})})}),r[0]=t):t=r[0],t}export{f as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-CZsydJOC.js","assets/index-BwgY1kqd.js","assets/index-GO9q_qH2.css","assets/Tool02-BG0wvg15.js","assets/CheckCircle-CugtwX3I.js","assets/Settings02-CSMcNzxI.js","assets/use-mcp-client-C_SLYCKU.js","assets/auth-UIWygxsU.js","assets/useInfiniteQuery-DSEAwRSE.js","assets/use-infinite-scroll-BRKgSd4r.js","assets/studio-tools-Buts9Jdh.js","assets/badge-DR3LHWR5.js","assets/input-DxtlvNx4.js","assets/dropdown-menu-De-Zj9zn.js","assets/Check-CN3aR95k.js","assets/ChevronRight-Ch3xlSyS.js","assets/DotsVertical-BGb9JOh-.js","assets/table-B-32UXnW.js","assets/toggle-group-Dv4yZJI8.js","assets/use-view-mode-MBewBxKM.js","assets/use-mobile-B-ayRTms.js","assets/FilterLines-EcsEo4Jg.js","assets/Globe01-BvK8SYlx.js","assets/SearchMd-Cn88JKCH.js","assets/dialog-YewNLxEX.js","assets/X-BiJLSBaw.js","assets/AlertCircle-CM_0Ehfg.js","assets/Upload01-2YYegxFf.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-DoBTkQti.js","assets/card-BLpFgfuY.js","assets/Trash01-CKV3Apy3.js","assets/label-B0ikG0BR.js","assets/select-CI2Kb9Sa.js","assets/tooltip-CRCj97hY.js","assets/ChevronDown-BzVNS1OZ.js","assets/ChevronUp-DnZCjXI4.js","assets/switch-D9rdVIva.js","assets/textarea-Cy6fYP8f.js","assets/ArrowLeft-BZfdTkDM.js","assets/XCircle-BaWRjJTV.js","assets/checkbox-xmeSRC-T.js","assets/Eye-DkElT0Vs.js","assets/LinkExternal01-Cz-T7iI3.js","assets/use-copy-CdO2QS5D.js","assets/Copy01-Dy_ezRAZ.js","assets/Key01-Dl2hMZR_.js","assets/Plus-BmjRtSKh.js","assets/mcp-oauth-CYPbiT_k.js","assets/Play-DVXmxEpH.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as m,d as n,f as c,j as t,k as f,r as l,aG as p}from"./index-BwgY1kqd.js";import{R as u}from"./require-capability-DoX1CpBC.js";import"./use-capability-ak-s2Vaq.js";import"./access-gate-BvYqWd0t.js";import"./capability-load-error-wLwNwR0H.js";const g=l.lazy(()=>p(()=>import("./registry-layout-CZsydJOC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49])));function j(){const e=m.c(5),i=n();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=c(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u}from"./use-infinite-scroll-BRKgSd4r.js";import{e4 as i}from"./index-BwgY1kqd.js";function t(e,r){return i(e,u,r)}export{t as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as s}from"./use-infinite-scroll-BRKgSd4r.js";import{e4 as u,b2 as n}from"./index-BwgY1kqd.js";function a(e,r){return u({...e,enabled:!0,suspense:!0,throwOnError:n},s,r)}export{a as u};
|