@openhands/agent-canvas 1.0.0-alpha.6 → 1.0.0-alpha.8
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/README.md +32 -7
- package/bin/agent-canvas.mjs +35 -2
- package/build/assets/{QueryClientProvider-DITRCGAK.js → QueryClientProvider-B7kl84Kj.js} +1 -1
- package/build/assets/{Trans-D43bd3yR.js → Trans-1j65oy9O.js} +1 -1
- package/build/assets/{acp-providers-SCPK1BIU.js → acp-providers-DauuOsW9.js} +1 -1
- package/build/assets/{acp-route-guard-IWlFmS6x.js → acp-route-guard-CQTmeJwM.js} +1 -1
- package/build/assets/{active-backend-context-CkP3ZEJs.js → active-backend-context-TVbjnvmP.js} +1 -1
- package/build/assets/add-backend-modal-KMmPQNZU.js +1 -0
- package/build/assets/{agent-server-client-options-8OJSXbm8.js → agent-server-client-options-DT2GP6VJ.js} +1 -1
- package/build/assets/{agent-server-compatibility-DvKtnXHw.js → agent-server-compatibility-2aOx5iWd.js} +1 -1
- package/build/assets/{agent-server-conversation-service.api-BdEre_71.js → agent-server-conversation-service.api-DSl9G5UR.js} +3 -3
- package/build/assets/{agent-settings-DdisD2Xx.js → agent-settings-B247S9G3.js} +2 -2
- package/build/assets/{alert-banner-CvTYN73l.js → alert-banner-BWoqueRw.js} +1 -1
- package/build/assets/{analytics-consent-form-modal-BKgT9i2w.js → analytics-consent-form-modal-C7sXfxRh.js} +1 -1
- package/build/assets/{app-settings-DcYXtxGP.js → app-settings-BVeSaty9.js} +1 -1
- package/build/assets/automation-detail-g5-RZ0da.js +1 -0
- package/build/assets/automations-list-DHoq_0MM.js +1 -0
- package/build/assets/{backend-form-modal-KudhWUX8.js → backend-form-modal-K6IMCr3p.js} +1 -1
- package/build/assets/{backend-synced-settings-badge-BFy2HylT.js → backend-synced-settings-badge-nAfiUWvM.js} +1 -1
- package/build/assets/{base-modal-B4HvlFHE.js → base-modal-CQRvRHu1.js} +1 -1
- package/build/assets/{brand-button-8fVVei4i.js → brand-button-C2nEKopC.js} +1 -1
- package/build/assets/{browser-vYpdU3CR.js → browser-DKG63inJ.js} +1 -1
- package/build/assets/{browser-tab-DTM6RyoV.js → browser-tab-B_BuTvrO.js} +1 -1
- package/build/assets/{checkmark-BcvXE9bf.js → checkmark-BJJrZUF8.js} +1 -1
- package/build/assets/{chevron-left-small-BqSkXTeq.js → chevron-left-small-CSh-sE9L.js} +1 -1
- package/build/assets/{circle-plus-check-toggle-DRvuu-RD.js → circle-plus-check-toggle-qs8Va1cC.js} +1 -1
- package/build/assets/{clock-DfoVUZVq.js → clock-ZR4Kn-_Y.js} +1 -1
- package/build/assets/{close-SnIy2eLD.js → close-BdmyeRqS.js} +1 -1
- package/build/assets/{combobox-caret-BMsz5mQX.js → combobox-caret-B53O9Hsq.js} +1 -1
- package/build/assets/{condenser-settings-DduLQcpV.js → condenser-settings-A35V3yng.js} +1 -1
- package/build/assets/{confirmation-modal-B-DOYMUH.js → confirmation-modal-C9-La0h3.js} +1 -1
- package/build/assets/{context-menu-list-item-DzjPB8aC.js → context-menu-list-item-Buu9nc0q.js} +1 -1
- package/build/assets/conversation-BD5WemJI.js +19 -0
- package/build/assets/conversation-C47K62n8.js +1 -0
- package/build/assets/conversation-panel-Dn-S56Gk.js +1 -0
- package/build/assets/{conversation-service.api-YTGTw0pz.js → conversation-service.api-C8pYCyV6.js} +1 -1
- package/build/assets/{conversation-tab-empty-state-BtFDbyTe.js → conversation-tab-empty-state-D8dNvo-V.js} +1 -1
- package/build/assets/conversation-websocket-context-Ywrxd_9p.js +3 -0
- package/build/assets/{copy-BxgbrjDT.js → copy-C7Ti2d8C.js} +1 -1
- package/build/assets/{custom-toast-handlers-BYxhSr3t.js → custom-toast-handlers-BOc3qeQ7.js} +1 -1
- package/build/assets/declaration-D378OjpZ.js +1 -0
- package/build/assets/{device-verify-CTbXX9CQ.js → device-verify-CMusn8nX.js} +1 -1
- package/build/assets/edit-automation-modal-Dnjxbjn7.js +1 -0
- package/build/assets/{ellipsis-button-BoU2-xlG.js → ellipsis-button-ugUATsNo.js} +1 -1
- package/build/assets/{entry.client-DU7-q4ZU.js → entry.client-D9uR9Blz.js} +2 -2
- package/build/assets/{enum-filter-dropdown-BJt-NplD.js → enum-filter-dropdown-1vpOGySB.js} +1 -1
- package/build/assets/{environment-switch-overlay-DQ1n6Iu6.js → environment-switch-overlay-CTCTQikP.js} +1 -1
- package/build/assets/{extensions-hub-BW1FAKFJ.js → extensions-hub-BSUseHVF.js} +1 -1
- package/build/assets/{extensions-navigation-CbPMhSML.js → extensions-navigation-CT1kc1u_.js} +1 -1
- package/build/assets/{files-tab-CbJ4s7Ik.js → files-tab-B3A1NDlZ.js} +1 -1
- package/build/assets/{folder-CerIk8uG.js → folder-0WSMImNX.js} +1 -1
- package/build/assets/git-control-bar-branch-button-CcIpmyfM.js +27 -0
- package/build/assets/{git-provider-icon-D8RE4unY.js → git-provider-icon-DYE9n7fs.js} +1 -1
- package/build/assets/{home-D9fJfhQA.js → home-dIzxi5Dd.js} +1 -1
- package/build/assets/{i18n-DkYgs32x.js → i18n-DjAGhTis.js} +1 -1
- package/build/assets/install-server-modal-z5VaHeXd.js +1 -0
- package/build/assets/{launch-DKCU9uJH.js → launch-hZ0ifhcV.js} +1 -1
- package/build/assets/{lesson-plan-CmkRbe6Z.js → lesson-plan-DRYG5SLI.js} +1 -1
- package/build/assets/{link-external-CvxB0BmI.js → link-external-Df8J52xI.js} +1 -1
- package/build/assets/{llm-client-BpIfxETv.js → llm-client-ChQzg4wX.js} +1 -1
- package/build/assets/llm-settings-2036m7Wt.js +1 -0
- package/build/assets/{llm-settings-BOJC4vD-.js → llm-settings-CcHqGOYL.js} +1 -1
- package/build/assets/{loading-spinner-91b5FiMQ.js → loading-spinner-C04FGh14.js} +1 -1
- package/build/assets/{manage-backends-modal-DqpzcxdI.js → manage-backends-modal-rYeyGx7j.js} +1 -1
- package/build/assets/{manage-workspaces-modal-eG6XgAvw.js → manage-workspaces-modal-C5EuW8m1.js} +1 -1
- package/build/assets/manifest-97e839da.js +1 -0
- package/build/assets/{markdown-renderer-wZnLDbA1.js → markdown-renderer-CEX4Becj.js} +1 -1
- package/build/assets/mcp-C06YssEI.js +9 -0
- package/build/assets/messages-T2ewVkbp.js +36 -0
- package/build/assets/{modal-backdrop-B04pVYAD.js → modal-backdrop-DTYGVmOR.js} +1 -1
- package/build/assets/{modal-body-CgUoFQA1.js → modal-body-YElmM1dV.js} +1 -1
- package/build/assets/{modal-close-button-SM_WXzDY.js → modal-close-button-C_GpQt9F.js} +1 -1
- package/build/assets/{model-selector-7id-Uirf.js → model-selector-DeMmw-Xa.js} +1 -1
- package/build/assets/{navigation-context-BFjstyH6.js → navigation-context-DeIPtGPp.js} +1 -1
- package/build/assets/{navigation-link-DFQ7YcWq.js → navigation-link-C9JD4PYD.js} +1 -1
- package/build/assets/{openhands-logo-DkDp75rC.js → openhands-logo-CI5Fhn1W.js} +1 -1
- package/build/assets/{option-service.api-DN0ZcGjw.js → option-service.api-DsI1UW7N.js} +1 -1
- package/build/assets/{organization-service.api-Ct2dZF8M.js → organization-service.api-COwMPFg5.js} +1 -1
- package/build/assets/{path-utils-D1ZtqFC7.js → path-utils-CqJboYxo.js} +1 -1
- package/build/assets/{plan-components-gOm-daR3.js → plan-components-DEjMuDDG.js} +1 -1
- package/build/assets/{planner-tab-yubfN-6U.js → planner-tab-BrntFmb1.js} +1 -1
- package/build/assets/{profiles-client-D4twHRVf.js → profiles-client-BGkKEV9j.js} +1 -1
- package/build/assets/{providers-C2T07PM3.js → providers-DXvCAN_u.js} +1 -1
- package/build/assets/{proxy-BMZyC45G.js → proxy-CurRmrqf.js} +1 -1
- package/build/assets/{query-client-config-CiK0GJJO.js → query-client-config-Ba7qAAoO.js} +1 -1
- package/build/assets/recommended-automations-launcher-BI9NhG8Y.js +52 -0
- package/build/assets/root-BS1Td78t.js +2 -0
- package/build/assets/root-DHeCXo9N.css +1 -0
- package/build/assets/root-layout-BLjAEgle.js +2 -0
- package/build/assets/{sdk-section-page-03k88tIR.js → sdk-section-page-CJW0G04-.js} +1 -1
- package/build/assets/{sdk-settings-schema-BY8dOy3a.js → sdk-settings-schema-QBYH-ONX.js} +1 -1
- package/build/assets/{search-BCAF9EDS.js → search-Cq_cFrDt.js} +1 -1
- package/build/assets/{secrets-service-Z3qtRb_G.js → secrets-service-Bwd5DeUs.js} +1 -1
- package/build/assets/{secrets-settings-BnlByuMZ.js → secrets-settings-MLXqOtX2.js} +1 -1
- package/build/assets/{server-client-CG1zHqph.js → server-client-C3mC8Hl3.js} +1 -1
- package/build/assets/{settings-DyzGLF_d.js → settings-D7E2U5tK.js} +1 -1
- package/build/assets/{settings-client-CkXDJwIY.js → settings-client-CwjfwoiB.js} +1 -1
- package/build/assets/{settings-dropdown-input-CAQWQgx-.js → settings-dropdown-input-VwAXNrOb.js} +1 -1
- package/build/assets/{settings-gear-D4ZkEDGb.js → settings-gear-BJwWR1ej.js} +1 -1
- package/build/assets/{settings-index-KtTw49xL.js → settings-index-J-3BNR0W.js} +1 -1
- package/build/assets/{settings-input-BWCZt9g2.js → settings-input-DBywAnA7.js} +1 -1
- package/build/assets/{settings-list-classes-xMleGkTC.js → settings-list-classes-BOS092DR.js} +1 -1
- package/build/assets/{settings-modal-Cv2YWSUY.js → settings-modal-B8vgWDTe.js} +1 -1
- package/build/assets/{settings-section-header-context-1wfkgjZZ.js → settings-section-header-context-32x6WTyL.js} +1 -1
- package/build/assets/settings-service.api-FvJGK45W.js +1 -0
- package/build/assets/{settings-switch-CGap2LtG.js → settings-switch-DTKmHC8F.js} +1 -1
- package/build/assets/{settings-utils-BBozxqqi.js → settings-utils-BsvSU3OM.js} +1 -1
- package/build/assets/{shared-conversation-BfZNCsvo.js → shared-conversation-a0QV8o99.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-DXplko7u.js → sidebar-mobile-menu-toggle-DTUNI1WQ.js} +1 -1
- package/build/assets/{sidebar-nav-link-B4h8naZ7.js → sidebar-nav-link-CnWoZcwc.js} +1 -1
- package/build/assets/{skill-card-pill-row-D0oTWx-a.js → skill-card-pill-row-tZ599jli.js} +1 -1
- package/build/assets/{skills-BN8atjgW.js → skills-ZyAO5dyK.js} +1 -1
- package/build/assets/{skills-plugins-BTnp7QcQ.js → skills-plugins-BSRz041I.js} +1 -1
- package/build/assets/{skills-settings-CbOQvzkR.js → skills-settings-DOnMn9q1.js} +2 -2
- package/build/assets/{status-DDL-ipIP.js → status-CsatcFbK.js} +1 -1
- package/build/assets/{styled-tooltip-Awq4HMw3.js → styled-tooltip-CS3mB_1X.js} +1 -1
- package/build/assets/{switch-skeleton-Bv21RGWd.js → switch-skeleton-C-CfhYYV.js} +1 -1
- package/build/assets/{task-list-tab-B45ktzHM.js → task-list-tab-Day9nhRT.js} +1 -1
- package/build/assets/{terminal-DGuR4559.js → terminal-LNa-iU5c.js} +1 -1
- package/build/assets/{terminal-D5pzR9Ru.js → terminal-ro4SNjUU.js} +1 -1
- package/build/assets/{toggle-switch-gj6T-wsU.js → toggle-switch-k-IZCDbt.js} +1 -1
- package/build/assets/{typography-BbaUAC4V.js → typography-vVUMoNUg.js} +1 -1
- package/build/assets/{u-check-circle-DHGiAi-w.js → u-check-circle-DplbarS5.js} +1 -1
- package/build/assets/{u-check-circle-half-BPcWtWwv.js → u-check-circle-half-yDuiSZHC.js} +1 -1
- package/build/assets/{u-circuit-B_nK9hOu.js → u-circuit-C9tYkpeK.js} +1 -1
- package/build/assets/{u-edit-BPFJBd34.js → u-edit-KAUlufD8.js} +1 -1
- package/build/assets/{use-active-conversation-Bu5J9iLy.js → use-active-conversation-D15D9GgR.js} +1 -1
- package/build/assets/{use-agent-settings-schema-BbtOsR7P.js → use-agent-settings-schema-Bvp5UzV8.js} +1 -1
- package/build/assets/{use-agent-state-DN9Nc5pP.js → use-agent-state-DE5dlEXJ.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-B_rMUiu8.js → use-cloud-current-user-id-DWVar4st.js} +1 -1
- package/build/assets/{use-config-Bcz2JL2t.js → use-config-BSu_53GL.js} +1 -1
- package/build/assets/{use-conversation-id-BOaaZahn.js → use-conversation-id-DajhCn2A.js} +1 -1
- package/build/assets/{use-create-conversation-BWFA_FId.js → use-create-conversation-DW7AGgLA.js} +1 -1
- package/build/assets/{use-handle-plan-click-CgrCGmT1.js → use-handle-plan-click-DpgEQDAV.js} +1 -1
- package/build/assets/use-is-authed-hXC8vxgT.js +1 -0
- package/build/assets/{use-is-creating-conversation-DhoM7UAB.js → use-is-creating-conversation-DhDeeWfA.js} +1 -1
- package/build/assets/{use-launch-skill-in-chat-DOyQsXFO.js → use-launch-skill-in-chat-DVGPFrbI.js} +1 -1
- package/build/assets/{use-llm-profiles-CAIzHJDX.js → use-llm-profiles-D3-KXwQ0.js} +1 -1
- package/build/assets/use-runtime-is-ready-XFbT16BD.js +1 -0
- package/build/assets/{use-save-settings-5m3w89Ph.js → use-save-settings-CEEKSTWG.js} +1 -1
- package/build/assets/{use-settings-DzG0C3vO.js → use-settings-DQ7Oo1Hj.js} +1 -1
- package/build/assets/{use-settings-nav-items-BIsKeX52.js → use-settings-nav-items-YmrXrjn9.js} +2 -2
- package/build/assets/{use-skills-Cn-78xP1.js → use-skills-Xe0vjPMt.js} +1 -1
- package/build/assets/{use-unified-vscode-url-C5iI-Z5A.js → use-unified-vscode-url-BOsIOd-b.js} +1 -1
- package/build/assets/use-user-conversation-Mc0mQgkl.js +1 -0
- package/build/assets/{useMutation-CRJwk4cR.js → useMutation-B4OUESdw.js} +1 -1
- package/build/assets/{useTranslation-01pF7z10.js → useTranslation-CpIcQBq6.js} +1 -1
- package/build/assets/{utils-Czcl6buL.js → utils-D-HX7JCe.js} +1 -1
- package/build/assets/{vendor~conversation-panel~conversation-CbjvWBSu.js → vendor~conversation-panel~conversation-BlCIz9XQ.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CofhIDpd.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Ds9quNZ9.js} +1 -1
- package/build/assets/vendor~home~mcp~automations-list-C5PoHCy6.js +1 -0
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-BQPOygpY.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CGlZoBKa.js} +1 -1
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CyYIBiBk.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DE11mPxp.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-CuGq_cxH.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-8b8V5bfO.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-CFpDeb9o.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-Dy7L6fMG.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-C1p8-pMr.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-D40EXhZx.js} +1 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-CHrEOFl6.js +48 -0
- package/build/assets/{vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-DlKA6SoO.js → vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-CyUbhpbm.js} +1 -1
- package/build/assets/{verification-settings-DbziMp4K.js → verification-settings-BtlTiHP8.js} +1 -1
- package/build/assets/{vscode-tab-BVhQR2rt.js → vscode-tab-C0ShhiSU.js} +1 -1
- package/build/assets/{waiting-for-runtime-message-JotSOBdC.js → waiting-for-runtime-message-DWPl_Yby.js} +1 -1
- package/build/assets/{x-mark-CZ57VvRX.js → x-mark-CWI0f9yI.js} +1 -1
- package/build/favicon.svg +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +8 -0
- package/build/locales/ca/openhands.json +8 -0
- package/build/locales/de/openhands.json +8 -0
- package/build/locales/en/openhands.json +8 -0
- package/build/locales/es/openhands.json +8 -0
- package/build/locales/fr/openhands.json +8 -0
- package/build/locales/it/openhands.json +8 -0
- package/build/locales/ja/openhands.json +8 -0
- package/build/locales/ko-KR/openhands.json +8 -0
- package/build/locales/no/openhands.json +8 -0
- package/build/locales/pt/openhands.json +8 -0
- package/build/locales/tr/openhands.json +8 -0
- package/build/locales/uk/openhands.json +8 -0
- package/build/locales/zh-CN/openhands.json +8 -0
- package/build/locales/zh-TW/openhands.json +8 -0
- package/config/defaults.json +1 -1
- package/dist/api/agent-server-config.cjs +1 -1
- package/dist/api/agent-server-config.cjs.map +1 -1
- package/dist/api/agent-server-config.d.ts +1 -1
- package/dist/api/agent-server-config.js +1 -1
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +12 -0
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +4 -0
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/mcp-service/mcp-service.api.cjs +2 -0
- package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -0
- package/dist/api/mcp-service/mcp-service.api.d.ts +6 -0
- package/dist/api/mcp-service/mcp-service.api.js +36 -0
- package/dist/api/mcp-service/mcp-service.api.js.map +1 -0
- package/dist/api/settings-service/settings-service.api.cjs +1 -1
- package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
- package/dist/api/settings-service/settings-service.api.d.ts +1 -0
- package/dist/api/settings-service/settings-service.api.js +59 -41
- package/dist/api/settings-service/settings-service.api.js.map +1 -1
- package/dist/components/features/automations/detail/activity-log-item.d.ts +1 -1
- package/dist/components/features/automations/recommended-automations-launcher.d.ts +1 -1
- package/dist/components/features/backends/backend-selector.cjs +1 -1
- package/dist/components/features/backends/backend-selector.cjs.map +1 -1
- package/dist/components/features/backends/backend-selector.js +95 -95
- package/dist/components/features/backends/backend-selector.js.map +1 -1
- package/dist/components/features/chat/change-agent-button.cjs +1 -1
- package/dist/components/features/chat/change-agent-button.cjs.map +1 -1
- package/dist/components/features/chat/change-agent-button.js +65 -59
- package/dist/components/features/chat/change-agent-button.js.map +1 -1
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +15 -14
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.js +115 -137
- package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-model.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-model.d.ts +10 -0
- package/dist/components/features/chat/components/chat-input-model.js +95 -60
- package/dist/components/features/chat/components/chat-input-model.js.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.cjs +1 -1
- package/dist/components/features/chat/components/slash-command-menu.cjs.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.js +1 -1
- package/dist/components/features/chat/components/slash-command-menu.js.map +1 -1
- package/dist/components/features/chat/git-control-bar.cjs +1 -1
- package/dist/components/features/chat/git-control-bar.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar.js +60 -59
- package/dist/components/features/chat/git-control-bar.js.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.js +2 -2
- package/dist/components/features/conversation/conversation-name-with-status.js.map +1 -1
- package/dist/components/features/conversation/conversation-name.cjs +1 -1
- package/dist/components/features/conversation/conversation-name.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name.js +3 -3
- package/dist/components/features/conversation/conversation-name.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +16 -16
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/mcp-logo-badge.cjs +1 -1
- package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
- package/dist/components/features/mcp-logo-badge.d.ts +2 -2
- package/dist/components/features/mcp-logo-badge.js +1 -1
- package/dist/components/features/mcp-logo-badge.js.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.js +64 -41
- package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
- package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
- package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
- package/dist/components/features/mcp-page/install-server-modal.d.ts +1 -1
- package/dist/components/features/mcp-page/install-server-modal.js +126 -102
- package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
- package/dist/components/features/mcp-page/installed-server-card.cjs.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.js +1 -1
- package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
- package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-card.cjs.map +1 -1
- package/dist/components/features/mcp-page/marketplace-card.d.ts +1 -1
- package/dist/components/features/mcp-page/marketplace-card.js +27 -25
- package/dist/components/features/mcp-page/marketplace-card.js.map +1 -1
- package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-section.cjs.map +1 -1
- package/dist/components/features/mcp-page/marketplace-section.d.ts +1 -1
- package/dist/components/features/mcp-page/marketplace-section.js +1 -1
- package/dist/components/features/mcp-page/marketplace-section.js.map +1 -1
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.d.ts +2 -2
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +7 -7
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.d.ts +8 -12
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js +114 -87
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.d.ts +1 -2
- package/dist/components/features/sidebar/sidebar-rail-body.js +104 -104
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/sidebar.cjs +1 -1
- package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar.js +82 -83
- package/dist/components/features/sidebar/sidebar.js.map +1 -1
- package/dist/context/scroll-context.cjs +1 -1
- package/dist/context/scroll-context.cjs.map +1 -1
- package/dist/context/scroll-context.d.ts +1 -0
- package/dist/context/scroll-context.js +4 -1
- package/dist/context/scroll-context.js.map +1 -1
- package/dist/contexts/conversation-websocket-context.cjs +3 -3
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.js +36 -36
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/favicon.svg +1 -0
- package/dist/hooks/mutation/use-switch-acp-model.cjs +2 -0
- package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -0
- package/dist/hooks/mutation/use-switch-acp-model.d.ts +23 -0
- package/dist/hooks/mutation/use-switch-acp-model.js +26 -0
- package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -0
- package/dist/hooks/mutation/use-test-mcp-server.cjs +2 -0
- package/dist/hooks/mutation/use-test-mcp-server.cjs.map +1 -0
- package/dist/hooks/mutation/use-test-mcp-server.d.ts +2 -0
- package/dist/hooks/mutation/use-test-mcp-server.js +10 -0
- package/dist/hooks/mutation/use-test-mcp-server.js.map +1 -0
- package/dist/hooks/query/use-automation-detail.d.ts +3 -2
- package/dist/hooks/query/use-local-git-info.cjs +3 -1
- package/dist/hooks/query/use-local-git-info.cjs.map +1 -1
- package/dist/hooks/query/use-local-git-info.d.ts +2 -2
- package/dist/hooks/query/use-local-git-info.js +27 -24
- package/dist/hooks/query/use-local-git-info.js.map +1 -1
- package/dist/hooks/use-acp-model-context.cjs.map +1 -1
- package/dist/hooks/use-acp-model-context.d.ts +3 -4
- package/dist/hooks/use-acp-model-context.js.map +1 -1
- package/dist/hooks/use-chat-input-model-state.cjs +2 -0
- package/dist/hooks/use-chat-input-model-state.cjs.map +1 -0
- package/dist/hooks/use-chat-input-model-state.d.ts +12 -0
- package/dist/hooks/use-chat-input-model-state.js +29 -0
- package/dist/hooks/use-chat-input-model-state.js.map +1 -0
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +8 -0
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +2 -2
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +136 -0
- package/dist/i18n/translation.js.map +1 -1
- package/dist/locales/ar/openhands.json +8 -0
- package/dist/locales/ca/openhands.json +8 -0
- package/dist/locales/de/openhands.json +8 -0
- package/dist/locales/en/openhands.json +8 -0
- package/dist/locales/es/openhands.json +8 -0
- package/dist/locales/fr/openhands.json +8 -0
- package/dist/locales/it/openhands.json +8 -0
- package/dist/locales/ja/openhands.json +8 -0
- package/dist/locales/ko-KR/openhands.json +8 -0
- package/dist/locales/no/openhands.json +8 -0
- package/dist/locales/pt/openhands.json +8 -0
- package/dist/locales/tr/openhands.json +8 -0
- package/dist/locales/uk/openhands.json +8 -0
- package/dist/locales/zh-CN/openhands.json +8 -0
- package/dist/locales/zh-TW/openhands.json +8 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +37 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/atlassian.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/atlassian.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/browser-mcp.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/browser-mcp.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/browser-mcp.js +31 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/browser-mcp.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js +52 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-bindings.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-bindings.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-bindings.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-bindings.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-browser-rendering.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-browser-rendering.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-browser-rendering.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-browser-rendering.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-builds.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-builds.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-builds.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-builds.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-docs.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-docs.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-docs.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-docs.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-observability.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-observability.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/cloudflare-observability.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/cloudflare-observability.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/deepwiki.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/deepwiki.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/deepwiki.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/deepwiki.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/everything.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/everything.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/everything.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/everything.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/fetch.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/fetch.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/fetch.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/fetch.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +40 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/filesystem.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/filesystem.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/filesystem.js +39 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/filesystem.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/git.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/git.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/git.js +40 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/git.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +47 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/huggingface.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/huggingface.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/huggingface.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/huggingface.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/linear.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/linear.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/memory.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/memory.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/memory.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/memory.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js +36 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js +40 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +39 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js +38 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/paypal.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/paypal.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/paypal.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/paypal.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/playwright.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/playwright.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/playwright.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/playwright.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js +43 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js +41 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/sentry.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sequential-thinking.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sequential-thinking.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/sequential-thinking.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sequential-thinking.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +45 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/stripe.js +15 -5
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +37 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/tavily.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js +39 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/time.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/time.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/catalog/time.js +13 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/time.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/index.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/index.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/index.js +175 -0
- package/dist/node_modules/@openhands/extensions/integrations/index.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/logos.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/logos.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/{mcps → integrations}/logos.js +2 -2
- package/dist/node_modules/@openhands/extensions/integrations/logos.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-catalog.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-catalog.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-catalog.js +548 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-catalog.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-registration-defaults.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-registration-defaults.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-registration-defaults.js +482 -0
- package/dist/node_modules/@openhands/extensions/integrations/oauth-provider-registration-defaults.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +3 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js +22 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js +3 -0
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +6 -4
- package/dist/package.js.map +1 -1
- package/dist/routes/mcp.cjs +1 -1
- package/dist/routes/mcp.cjs.map +1 -1
- package/dist/routes/mcp.js +1 -1
- package/dist/routes/mcp.js.map +1 -1
- package/dist/stores/error-message-store.cjs +1 -1
- package/dist/stores/error-message-store.cjs.map +1 -1
- package/dist/stores/error-message-store.d.ts +10 -1
- package/dist/stores/error-message-store.js +16 -3
- package/dist/stores/error-message-store.js.map +1 -1
- package/dist/utils/mcp-marketplace-utils.cjs +1 -1
- package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
- package/dist/utils/mcp-marketplace-utils.d.ts +21 -1
- package/dist/utils/mcp-marketplace-utils.js +23 -13
- package/dist/utils/mcp-marketplace-utils.js.map +1 -1
- package/dist/utils/settings-utils.cjs.map +1 -1
- package/dist/utils/settings-utils.js.map +1 -1
- package/package.json +6 -4
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/dev-safe.mjs +25 -7
- package/scripts/dev-static.mjs +6 -0
- package/scripts/dev-with-automation.mjs +12 -1
- package/scripts/static-server.mjs +85 -4
- package/tools/canvas_ui_tool.py +129 -0
- package/build/assets/add-backend-modal-CqjNjGqY.js +0 -1
- package/build/assets/automation-detail-CQrtk33s.js +0 -1
- package/build/assets/automations-list-COmogz0S.js +0 -1
- package/build/assets/conversation-CeGMBOyB.js +0 -1
- package/build/assets/conversation-D8scXOe7.js +0 -17
- package/build/assets/conversation-panel-DMz46ji-.js +0 -1
- package/build/assets/conversation-websocket-context-B0Gd3yiT.js +0 -3
- package/build/assets/declaration-C9nuq2Dj.js +0 -1
- package/build/assets/edit-automation-modal-DnTHJrf1.js +0 -1
- package/build/assets/git-control-bar-branch-button-DhpPgadK.js +0 -27
- package/build/assets/install-server-modal-VB5hOBpW.js +0 -1
- package/build/assets/llm-settings-CIdxmimN.js +0 -1
- package/build/assets/manifest-6400820c.js +0 -1
- package/build/assets/mcp-BdfyCW1l.js +0 -9
- package/build/assets/messages-BfaEAG2q.js +0 -36
- package/build/assets/recommended-automations-launcher-Cx7svuGE.js +0 -52
- package/build/assets/root-6AdVEJBT.js +0 -2
- package/build/assets/root-DEotKI6b.css +0 -1
- package/build/assets/root-layout-DvYGxAnr.js +0 -2
- package/build/assets/settings-service.api-Z6x0l0GU.js +0 -1
- package/build/assets/use-is-authed-BFoh8Ogh.js +0 -1
- package/build/assets/use-runtime-is-ready-BQWLEyqa.js +0 -1
- package/build/assets/use-user-conversation-BCYpbPT1.js +0 -1
- package/build/assets/vendor~home~mcp~automations-list-DRfWZRnF.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-BJm2mGIp.js +0 -48
- package/dist/node_modules/@openhands/extensions/mcps/catalog/airtable.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/airtable.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/airtable.js +0 -30
- package/dist/node_modules/@openhands/extensions/mcps/catalog/airtable.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/apify.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/apify.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/apify.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/apify.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/atlassian.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/atlassian.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/brave-search.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/brave-search.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/brave-search.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/brave-search.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/browser-mcp.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/browser-mcp.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/browser-mcp.js +0 -24
- package/dist/node_modules/@openhands/extensions/mcps/catalog/browser-mcp.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/clickhouse.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/clickhouse.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/clickhouse.js +0 -45
- package/dist/node_modules/@openhands/extensions/mcps/catalog/clickhouse.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-bindings.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-bindings.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-browser-rendering.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-browser-rendering.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-browser-rendering.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-builds.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-builds.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-docs.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-docs.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-observability.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-observability.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/cloudflare-observability.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/deepwiki.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/deepwiki.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/elevenlabs.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/elevenlabs.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/elevenlabs.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/elevenlabs.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/everything.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/everything.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/exa.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/exa.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/exa.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/exa.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/fetch.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/fetch.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/figma.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/figma.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/figma.js +0 -33
- package/dist/node_modules/@openhands/extensions/mcps/catalog/figma.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/filesystem.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/filesystem.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/filesystem.js +0 -32
- package/dist/node_modules/@openhands/extensions/mcps/catalog/filesystem.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/firecrawl.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/firecrawl.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/firecrawl.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/firecrawl.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/git.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/git.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/git.js +0 -33
- package/dist/node_modules/@openhands/extensions/mcps/catalog/git.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/github.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/github.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/github.js +0 -40
- package/dist/node_modules/@openhands/extensions/mcps/catalog/github.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/huggingface.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/huggingface.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/kagi.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/kagi.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/kagi.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/kagi.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/linear.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/linear.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/memory.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/memory.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/memory.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/mongodb.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/mongodb.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/mongodb.js +0 -29
- package/dist/node_modules/@openhands/extensions/mcps/catalog/mongodb.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/neon.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/neon.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/neon.js +0 -33
- package/dist/node_modules/@openhands/extensions/mcps/catalog/neon.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/notion.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/notion.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/notion.js +0 -32
- package/dist/node_modules/@openhands/extensions/mcps/catalog/notion.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/obsidian.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/obsidian.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/obsidian.js +0 -31
- package/dist/node_modules/@openhands/extensions/mcps/catalog/obsidian.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/paypal.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/paypal.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/paypal.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/playwright.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/playwright.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/playwright.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/redis.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/redis.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/redis.js +0 -36
- package/dist/node_modules/@openhands/extensions/mcps/catalog/redis.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/resend.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/resend.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/resend.js +0 -34
- package/dist/node_modules/@openhands/extensions/mcps/catalog/resend.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sentry.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sentry.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sentry.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sequential-thinking.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sequential-thinking.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/sequential-thinking.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/slack.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/slack.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/slack.js +0 -38
- package/dist/node_modules/@openhands/extensions/mcps/catalog/slack.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/stripe.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/stripe.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/stripe.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/supabase.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/supabase.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/supabase.js +0 -30
- package/dist/node_modules/@openhands/extensions/mcps/catalog/supabase.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/tavily.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/tavily.js +0 -32
- package/dist/node_modules/@openhands/extensions/mcps/catalog/tavily.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/time.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/catalog/time.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/catalog/time.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/index.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/mcps/index.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/index.js +0 -87
- package/dist/node_modules/@openhands/extensions/mcps/index.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/logos.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/mcps/logos.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-modal-Cv2YWSUY.js","assets/rolldown-runtime-BFRubm34.js","assets/model-selector-7id-Uirf.js","assets/vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-BQPOygpY.js","assets/preload-helper-CT1Z6Pdu.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-CuGq_cxH.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-CFpDeb9o.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i9dbt75i-CI82Did1.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js","assets/declaration-C9nuq2Dj.js","assets/react-CM_dJw1Z.js","assets/vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CyYIBiBk.js","assets/react-dom-hVBnwgwZ.js","assets/agent-server-client-options-8OJSXbm8.js","assets/llm-client-BpIfxETv.js","assets/vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-DlKA6SoO.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~b4cctr4k-B7YVdv1X.js","assets/QueryClientProvider-DITRCGAK.js","assets/useTranslation-01pF7z10.js","assets/context-CEQZwATj.js","assets/brand-button-8fVVei4i.js","assets/utils-Czcl6buL.js","assets/combobox-caret-BMsz5mQX.js","assets/sdk-settings-schema-BY8dOy3a.js","assets/dist-DZHSA2e6.js","assets/sdk-settings-field-metadata-CBPmeqYa.js","assets/map-provider-COBVzZYo.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-iOsylxCS.js","assets/settings-input-BWCZt9g2.js","assets/base-modal-B4HvlFHE.js","assets/modal-body-CgUoFQA1.js","assets/modal-backdrop-B04pVYAD.js","assets/navigation-context-BFjstyH6.js","assets/use-save-settings-5m3w89Ph.js","assets/useMutation-CRJwk4cR.js","assets/mutation-Cz7N4XAo.js","assets/settings-service.api-Z6x0l0GU.js","assets/settings-client-CkXDJwIY.js","assets/proxy-BMZyC45G.js","assets/vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~pfbaerbd-zhv9fooy.js","assets/settings-D5am1n6X.js","assets/query-keys-tAsQcc_9.js","assets/use-settings-DzG0C3vO.js","assets/active-backend-context-CkP3ZEJs.js","assets/health-store-BDC2rM-X.js","assets/settings-utils-BBozxqqi.js","assets/add-backend-modal-CqjNjGqY.js","assets/backend-form-modal-KudhWUX8.js","assets/server-client-CG1zHqph.js","assets/organization-service.api-Ct2dZF8M.js","assets/modal-close-button-SM_WXzDY.js","assets/manage-backends-modal-DqpzcxdI.js","assets/pencil-Dr0b2jL1.js","assets/createLucideIcon-Ddu8jDOQ.js","assets/plus-DT-M0FA1.js","assets/trash-2-CbVljPko.js","assets/confirmation-modal-B-DOYMUH.js","assets/environment-switch-overlay-DQ1n6Iu6.js","assets/environment-switch-store-C4ulFJKp.js","assets/analytics-consent-form-modal-BKgT9i2w.js","assets/handle-capture-consent-BfZATzpI.js","assets/alert-banner-CvTYN73l.js","assets/vendor~conversation-panel~conversation~alert-banner-Df7_G0zR.js","assets/vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-BP1SKG0F.js","assets/iconBase-C7N9pPOs.js","assets/close-SnIy2eLD.js","assets/typography-BbaUAC4V.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./preload-helper-CT1Z6Pdu.js";import{A as r,C as i,F as a,L as o,M as s,N as c,P as l,R as u,c as d,j as f,k as p}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{t as m}from"./react-dom-hVBnwgwZ.js";import{t as h}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-DlKA6SoO.js";import{d as g,t as _,u as v}from"./path-utils-D1ZtqFC7.js";import{o as y,t as b}from"./declaration-C9nuq2Dj.js";import{t as x}from"./use-is-creating-conversation-DhoM7UAB.js";import{t as S}from"./useTranslation-01pF7z10.js";import{a as C}from"./i18n-DkYgs32x.js";import{t as w}from"./createLucideIcon-Ddu8jDOQ.js";import{n as T,r as E,t as D}from"./git-branch-DQS2nMK4.js";import{t as O}from"./check-CYxAHs85.js";import{a as k,c as A,d as j,f as M,i as N,l as P,o as ee,r as F,s as I,t as L,u as R}from"./sidebar-mobile-menu-toggle-DXplko7u.js";import{n as z,r as te}from"./custom-toast-handlers-BYxhSr3t.js";import{t as ne}from"./plus-DT-M0FA1.js";import{t as re}from"./trash-2-CbVljPko.js";import{t as ie}from"./x-JOBEVLW0.js";import{t as B}from"./utils-Czcl6buL.js";import{n as ae,r as oe}from"./active-backend-context-CkP3ZEJs.js";import{n as se}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js";import{t as ce}from"./agent-server-conversation-service.api-BdEre_71.js";import{t as le}from"./modal-backdrop-B04pVYAD.js";import{n as ue}from"./modal-body-CgUoFQA1.js";import{i as de,r as fe}from"./base-modal-B4HvlFHE.js";import{c as pe,d as me,i as he}from"./brand-button-8fVVei4i.js";import{t as ge}from"./loading-spinner-91b5FiMQ.js";import{t as _e}from"./use-config-Bcz2JL2t.js";import{t as ve}from"./openhands-logo-DkDp75rC.js";import{n as ye,t as be}from"./navigation-context-BFjstyH6.js";import{t as xe}from"./navigation-link-DFQ7YcWq.js";import{a as Se,d as Ce,f as we,i as Te,m as V,n as Ee,o as H,p as U,s as De,t as Oe}from"./use-cloud-current-user-id-B_rMUiu8.js";import{n as W,t as ke}from"./sidebar-nav-link-B4h8naZ7.js";import{t as Ae}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-C1p8-pMr.js";import{t as je}from"./vendor~root-layout~home~conversation-panel~conversation-DjAjXS5J.js";import{t as G}from"./styled-tooltip-Awq4HMw3.js";import{r as Me,t as Ne}from"./combobox-caret-BMsz5mQX.js";import{_ as Pe,a as Fe,c as Ie,d as Le,f as Re,g as ze,h as Be,i as Ve,l as He,m as Ue,n as We,p as Ge,r as Ke,s as qe,t as Je,u as Ye}from"./git-provider-icon-D8RE4unY.js";import{i as Xe,r as Ze}from"./backend-form-modal-KudhWUX8.js";import{s as Qe}from"./environment-switch-store-C4ulFJKp.js";import{t as $e}from"./react-Do0CT17Y.js";import{r as et,t as tt}from"./middleware-BC9EwbB9.js";import{t as nt}from"./conversation-store-Z5iMCRpc.js";import{t as rt}from"./add-backend-modal-CqjNjGqY.js";import{t as it}from"./manage-backends-modal-DqpzcxdI.js";import{t as K}from"./common-SMkEaBSr.js";import{c as at,o as ot,s as st}from"./acp-providers-SCPK1BIU.js";import{t as ct}from"./use-is-authed-BFoh8Ogh.js";import{t as lt}from"./use-click-outside-element-835W9pC6.js";import{i as ut,n as dt}from"./status-DDL-ipIP.js";import{r as ft,t as pt}from"./use-settings-DzG0C3vO.js";import{t as mt}from"./use-create-conversation-BWFA_FId.js";import{t as ht}from"./vscode-url-helper-jesbpos5.js";import{t as gt}from"./conversation-service.api-YTGTw0pz.js";import{r as _t,t as vt}from"./vendor~root-layout~conversation-panel~conversation~shared-conversation-DrXgiSCq.js";import{n as yt,t as q}from"./context-menu-list-item-DzjPB8aC.js";import{i as J,r as bt,t as xt}from"./ellipsis-button-BoU2-xlG.js";import{t as St}from"./u-edit-BPFJBd34.js";import{t as Ct}from"./skills-BN8atjgW.js";import{a as wt,c as Tt,i as Et,l as Dt,n as Ot,o as kt,r as At,s as jt,t as Mt,u as Nt}from"./manage-workspaces-modal-eG6XgAvw.js";import{o as Pt,s as Ft,t as It}from"./vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-BP1SKG0F.js";import{t as Lt}from"./search-BCAF9EDS.js";import{t as Rt}from"./sidebar-store-cOeaKmIm.js";import{t as zt}from"./handle-capture-consent-BfZATzpI.js";import{t as Bt}from"./use-save-settings-5m3w89Ph.js";import{t as Vt}from"./use-user-conversation-BCYpbPT1.js";import{t as Ht}from"./conversation-state-store-Bc0slAjL.js";var Ut=w(`calendar-arrow-down`,[[`path`,{d:`m14 18 4 4 4-4`,key:`1waygx`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M18 14v8`,key:`irew45`}],[`path`,{d:`M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343`,key:`bse4f3`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}]]),Wt=w(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),Gt=w(`clock-arrow-down`,[[`path`,{d:`M12 6v6l2 1`,key:`19cm8n`}],[`path`,{d:`M12.337 21.994a10 10 0 1 1 9.588-8.767`,key:`28moa`}],[`path`,{d:`m14 18 4 4 4-4`,key:`1waygx`}],[`path`,{d:`M18 14v8`,key:`irew45`}]]),Kt=w(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),qt=w(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Jt=w(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Yt=w(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),Xt=w(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),Zt=w(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Qt=w(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),$t=w(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),Y=e(t(),1),X=y(),en=46,tn=30;function nn({className:e,logoClassName:t,logoWidth:n=en,logoHeight:r=tn}={}){let{t:i}=S(`openhands`);return(0,X.jsx)(xe,{to:`/conversations`,"aria-label":i(b.BRANDING$OPENHANDS_LOGO),className:B(e),children:(0,X.jsx)(ve,{width:n,height:r,className:B(`shrink-0`,t)})})}function rn(){return(0,X.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-white/20 border-t-white rounded-full`,"data-testid":`dropdown-loading`})}function an({onClear:e}){return(0,X.jsx)(`button`,{type:`button`,"data-testid":`dropdown-clear`,onClick:e,"aria-label":`Clear selection`,className:`text-white hover:text-[var(--oh-text-tertiary)]`,children:(0,X.jsx)(ie,{size:14})})}function on({isOpen:e,isDisabled:t,getToggleButtonProps:n}){return(0,X.jsx)(`button`,{type:`button`,"data-testid":`dropdown-trigger`,...n({disabled:t,className:B(Me,`text-current`,e&&`rotate-180`,t&&`cursor-not-allowed`)}),children:(0,X.jsx)(Ne,{})})}function sn({isOpen:e,filteredOptions:t,selectedItem:n,emptyMessage:r,getMenuProps:i,getItemProps:a,footer:o,openUpward:s=!1,fitContent:c=!1}){return(0,X.jsxs)(`div`,{className:B(`absolute z-50 overflow-hidden text-white`,c?`min-w-full w-max`:`w-full`,s?`bottom-full mb-1`:`mt-1`,`bg-tertiary rounded-[6px] context-menu-box-shadow p-1`,`max-h-60 overflow-auto`,!e&&`hidden`),children:[(0,X.jsxs)(`ul`,{...i({className:`p-0`}),children:[e&&t.length===0&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,children:r}),e&&t.map((e,t)=>(0,X.jsxs)(`li`,{...a({item:e,index:t,className:B(`px-2 py-2 cursor-pointer text-sm rounded`,`text-white focus:outline-none font-normal`,`flex items-center gap-2`,n?.value===e.value?`bg-[var(--oh-interactive-selected)] text-white`:`hover:bg-[var(--oh-interactive-hover)]`)}),children:[e.prefix,(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:e.label})]},e.value))]}),e&&o?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Pe,{inset:`menu`}),(0,X.jsx)(`div`,{className:`p-0`,children:o})]}):null]})}function cn({placeholder:e,isDisabled:t,getInputProps:n,italicPlaceholder:r=!0,fitContent:i=!1}){return(0,X.jsx)(`input`,{...n({placeholder:e,disabled:t,className:B(`outline-none bg-transparent text-white not-italic`,i?`w-auto field-sizing-content whitespace-nowrap text-sm`:`flex-1 min-w-0`,r&&`placeholder:italic placeholder:text-tertiary-alt`,!r&&`placeholder:text-tertiary-alt`,he,`px-0 not-italic text-inherit`)})})}var ln={position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0};function un({options:e,emptyMessage:t=`No options`,clearable:n=!1,loading:r=!1,disabled:i=!1,placeholder:a,defaultValue:o,onChange:s,testId:c,className:l,footer:u,openUpward:d=!1,hideTrigger:f=!1,defaultOpen:p=!1,openOnHover:m=!1,italicPlaceholder:h=!0,fitContent:g=!1}){let _=Y.useRef(null),[v,y]=(0,Y.useState)(o?.label??``),[b,x]=(0,Y.useState)(``),S=e.filter(e=>e.label.toLowerCase().includes(b.toLowerCase())),{isOpen:C,selectedItem:w,selectItem:T,openMenu:E,closeMenu:D,getToggleButtonProps:O,getMenuProps:k,getItemProps:A,getInputProps:j}=je({items:S,itemToString:e=>e?.label??``,inputValue:v,stateReducer:(e,t)=>t.type===je.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes,initialIsOpen:p,onInputValueChange:({inputValue:e})=>{y(e??``),x(e??``)},defaultSelectedItem:o,onSelectedItemChange:({selectedItem:e})=>{s?.(e??null)},onIsOpenChange:({isOpen:e,selectedItem:t})=>{e?(y(``),x(``)):(y(t?.label??``),x(``))}}),M=r||i,N=w?e.find(e=>e.value===w.value)??w:null,P=e=>j({...e,onChange:e=>{y(e.target.value),x(e.target.value)}});return(0,X.jsxs)(`div`,{className:B(`relative`,g?`inline-block w-auto`:`w-full`),"data-testid":c,onMouseEnter:m?()=>{_.current&&=(clearTimeout(_.current),null),E()}:void 0,onMouseLeave:m?()=>{_.current=setTimeout(()=>D(),150)}:void 0,children:[f?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`input`,{...P({"aria-label":a??`Filter options`,tabIndex:-1}),style:ln}),(0,X.jsx)(`button`,{type:`button`,...O({tabIndex:-1}),style:ln,"aria-hidden":!0})]}):(0,X.jsxs)(`div`,{className:B(`bg-tertiary border border-[var(--oh-border-input)] rounded p-2`,`flex items-center gap-2`,g?`w-auto`:`w-full`,pe,`group w-full gap-2 px-3 text-[var(--oh-muted)] hover:text-white`,M&&`cursor-not-allowed opacity-60`,l),children:[N?.prefix?(0,X.jsx)(`span`,{className:`flex items-center shrink-0`,children:N.prefix}):null,(0,X.jsx)(cn,{placeholder:a,isDisabled:M,getInputProps:P,italicPlaceholder:h,fitContent:g}),r&&(0,X.jsx)(rn,{}),n&&w&&(0,X.jsx)(an,{onClear:()=>T(null)}),(0,X.jsx)(on,{isOpen:C,isDisabled:M,getToggleButtonProps:O})]}),(0,X.jsx)(sn,{isOpen:C,filteredOptions:S,selectedItem:w,emptyMessage:t,getMenuProps:k,getItemProps:A,footer:u,openUpward:d,fitContent:g})]})}var dn=`::`;function fn(e,t){return t?`${e}${dn}${t}`:e}function pn(e){let[t,n]=e.split(dn);return{backendId:t,orgId:n??null}}function mn(e){return(0,X.jsx)(Ze,{isConnected:e?.isConnected??null})}function hn(e,t,n,r,i){let a=[],o=e.filter(e=>e.kind===`local`),s=e.filter(e=>e.kind===`cloud`);for(let e of o)a.push({value:fn(e.id,null),label:e.name,prefix:mn(i[e.id])});for(let e of s){let o=n[e.id],s=mn(i[e.id]);if(!o||o.orgs.length===0)a.push({value:fn(e.id,null),label:e.name,prefix:s});else{let n=r[e.id]?.userId??null;for(let r of o.orgs){let i=n&&n===r.id?t:r.name;a.push({value:fn(e.id,r.id),label:`${e.name} – ${i}`,prefix:s})}}}return a}function gn({openUpward:e=!1,hideTrigger:t=!1,defaultOpen:n=!1,onSelectOption:i,onOpenAddBackend:a,onOpenManageBackends:o,sidebarCollapsed:c=!1}={}){let{t:l}=S(`openhands`),{backends:u,active:d,setActive:f}=oe(),p=Ee(),m=Oe(),h=Xe(u),g=s(),_=r(`/settings`),v=r(`/settings/*`),y=r(`/conversations/:conversationId`),x=r(`/automations/:automationId`),[C,w]=Y.useState(!1),[T,E]=Y.useState(!1),D=l(b.BACKEND$PERSONAL_WORKSPACE),O=Y.useMemo(()=>hn(u,D,p,m,h),[u,D,p,m,h]),k=fn(d.backend.id,d.orgId),A=O.find(e=>e.value===k),j=!!(_||v),M=l(b.SIDEBAR$SETTINGS),N=nt(e=>e.isRightPanelShown),P=!c||y&&N?`top`:`left`,ee=Object.values(p).some(e=>e.isLoading);Y.useEffect(()=>{if(d.backend.kind!==`cloud`||d.orgId)return;let{backend:e}=d,t=p[e.id];if(!t||t.orgs.length===0)return;let n=m[e.id]?.userId??null,r=(n?t.orgs.find(e=>e.id===n):void 0)??t.orgs[0];r&&f(e.id,r.id)},[d,p,m,f]);let F=Y.useCallback(()=>{if(a){a(),i?.();return}w(!0)},[a,i]),I=Y.useCallback(()=>{if(o){o(),i?.();return}E(!0)},[o,i]),L=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),R=(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`add-backend-menu-item`,onMouseDown:L,onClick:F,className:`flex w-full items-center gap-2 px-2 py-2 rounded-md text-sm cursor-pointer text-white hover:bg-[var(--oh-interactive-hover)]`,children:[(0,X.jsx)(ne,{width:16,height:16,className:`text-white shrink-0`}),l(b.BACKEND$ADD)]}),(0,X.jsxs)(`button`,{type:`button`,"data-testid":`manage-backends-menu-item`,onMouseDown:L,onClick:I,className:`flex w-full items-center gap-2 px-2 py-2 rounded-md text-sm cursor-pointer text-white hover:bg-[var(--oh-interactive-hover)]`,children:[(0,X.jsx)(Qt,{width:16,height:16,className:`text-white shrink-0`}),l(b.BACKEND$MANAGE)]})]}),z=Y.useCallback(async e=>{if(e===k)return;let{backendId:t,orgId:n}=pn(e),r=u.find(e=>e.id===t);r&&(Qe(O.find(t=>t.value===e)?.label??r.name),await new Promise(e=>{setTimeout(e,400)}),y?g(`/conversations`):x&&g(`/automations`),f(r.id,n),i?.())},[k,u,y,x,g,O,f,l,i]);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[(0,X.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,X.jsx)(un,{testId:`backend-selector`,defaultValue:A??{value:k,label:d.backend.name,prefix:mn(h[d.backend.id])},footer:R,openUpward:e,hideTrigger:t,defaultOpen:n,openOnHover:!t,onChange:e=>{e&&z(e.value)},placeholder:d.backend.name,loading:ee,options:O,className:`h-10 px-2 py-0 bg-transparent border-transparent hover:bg-[var(--oh-surface-raised)] focus-within:bg-[var(--oh-surface-raised)] focus-within:border-transparent focus-within:ring-0`},`${k}-${A?.label??``}`)}),t?null:(0,X.jsx)(G,{content:M,placement:P,offset:10,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`backend-selector-settings-link`,"data-active":j,"aria-label":M,onClick:()=>g(`/settings`),className:B(j?`inline-flex items-center justify-center shrink-0 w-9 h-9 rounded-md bg-tertiary text-white font-normal cursor-pointer`:`inline-flex items-center justify-center shrink-0 w-9 h-9 rounded-md text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)] cursor-pointer`,me),children:(0,X.jsx)(Qt,{width:16,height:16})})})]}),C?(0,X.jsx)(rt,{onClose:()=>w(!1)}):null,T?(0,X.jsx)(it,{onClose:()=>E(!1)}):null]})}var _n=(e=20)=>{let{data:t}=ct(),n=ae();return g({queryKey:[`user`,`conversations`,`paginated`,e,n.backend.id,n.orgId],queryFn:async({pageParam:t})=>await ce.searchConversations(e,t),enabled:!!t,getNextPageParam:e=>e.next_page_id,initialPageParam:void 0,refetchInterval:1e4,meta:{backendId:n.backend.id}})},vn=(e=10)=>h({queryKey:[`start-tasks`,`search`,e],queryFn:()=>[],select:e=>e.filter(e=>e.status!==`READY`&&e.status!==`ERROR`)});function yn({onConfirm:e,onClose:t,onCancel:n}){let{t:r}=S(`openhands`);return(0,X.jsx)(le,{onClose:n,children:(0,X.jsxs)(ue,{testID:`confirm-new-conversation-modal`,children:[(0,X.jsx)(fe,{title:r(b.CONVERSATION$EXIT_WARNING)}),(0,X.jsxs)(`div`,{className:`flex w-full justify-end gap-2`,children:[(0,X.jsx)(de,{text:r(b.BUTTON$CANCEL),onClick:t,className:`bg-tertiary`}),(0,X.jsx)(de,{text:r(b.ACTION$CONFIRM),onClick:e,className:`bg-[#C63143]`})]})]})})}var bn=e=>e.includes(`Z`)||e.match(/[+-]\d{2}:\d{2}$/)!==null?new Date(e):new Date(`${e}Z`),xn=e=>{let t=typeof e==`string`?bn(e):e,n=new Date().getTime()-t.getTime(),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60),o=Math.floor(a/24),s=Math.floor(o/30),c=Math.floor(s/12);return r<60?`${r}s`:i<60?`${i}m`:a<24?`${a}h`:o<30?`${o}d`:s<12?`${s}mo`:`${c}y`};function Sn({titleMode:e,title:t,onSave:n,isConversationArchived:r}){return e===`edit`?(0,X.jsx)(`input`,{autoFocus:!0,"data-testid":`conversation-card-title`,onClick:e=>{e.preventDefault(),e.stopPropagation()},onBlur:e=>{n(e.currentTarget?.value?.trim?.()??``)},onKeyUp:e=>{e.nativeEvent.isComposing||e.key===`Enter`&&e.currentTarget.blur()},type:`text`,defaultValue:t,className:`text-sm leading-6 font-semibold bg-transparent w-full`}):(0,X.jsx)(`p`,{"data-testid":`conversation-card-title`,className:B(`text-xs leading-6 font-semibold bg-transparent truncate overflow-hidden`,r&&`opacity-60`),title:t,children:t})}var Cn=e=>{switch(e){case K.FINISHED:return`check`;case K.RUNNING:return`working`;case K.IDLE:case K.WAITING_FOR_CONFIRMATION:return`active`;case K.PAUSED:return`paused`;case K.ERROR:case K.STUCK:return`error`;default:return`unknown`}},wn=(e,t)=>{if(t)return`COMMON$ARCHIVED`;switch(e){case`check`:return`COMMON$FINISHED`;case`working`:case`active`:return`COMMON$WORKING`;case`paused`:return`COMMON$PAUSED`;case`error`:return`COMMON$ERROR`;default:return`COMMON$STOPPED`}};function Tn(e){switch(e){case`check`:return(0,X.jsx)(`svg`,{"data-testid":`conversation-status-check`,viewBox:`0 0 12 12`,className:`w-2.5 h-2.5 stroke-[var(--oh-status-success)]`,fill:`none`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,X.jsx)(`path`,{d:`M2.5 6.5 5 9l4.5-5.5`})});case`working`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-working`,className:`w-1.5 h-1.5 rounded-full animate-pulse bg-[var(--oh-status-success)]`});case`active`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-active`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-status-success)]`});case`paused`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-paused`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-muted)]`});case`error`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-error`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-status-error)]`});default:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-unknown`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-color-tertiary)]`})}}function En({executionStatus:e,sandboxStatus:t,showTooltip:n=!0}){let{t:r}=S(`openhands`),i=t===`MISSING`,a=t===`ERROR`?`error`:i?`paused`:Cn(e),o=r(wn(a,i)),s=(0,X.jsx)(`div`,{className:`w-2.5 h-2.5 flex items-center justify-center shrink-0`,children:i?(0,X.jsx)(vt,{"data-testid":`conversation-status-archived`,size:10,className:`shrink-0 text-[var(--oh-muted)] opacity-60`,"aria-hidden":!0}):Tn(a)});return n?(0,X.jsx)(G,{content:o,placement:`right`,showArrow:!0,tooltipClassName:`bg-base text-white text-xs shadow-lg`,children:s}):s}function Dn({title:e,titleMode:t,onTitleSave:n,executionStatus:r,sandboxStatus:i}){return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden`,children:[r!==void 0&&(0,X.jsx)(`div`,{className:`flex w-[18px] shrink-0 items-center justify-center`,children:(0,X.jsx)(En,{executionStatus:r,sandboxStatus:i})}),(0,X.jsx)(Sn,{title:e,titleMode:t,onSave:n,isConversationArchived:i===`MISSING`||i===`ERROR`})]})}var On=e(m(),1);function kn({onClose:e,onDelete:t,onStop:n,onEdit:r,onDisplayCost:i,onShowAgentTools:a,onShowSkills:o,onDownloadViaVSCode:s,onDownloadConversation:c,position:l=`bottom`,floatingStyle:u,ignoreOutsideClickRef:d}){let{t:f}=S(`openhands`),{backend:p}=ae(),m=lt(e,d),h=p.kind===`cloud`?b.COMMON$CLOSE_CONVERSATION_STOP_RUNTIME:b.COMMON$STOP_CONVERSATION,g=(0,Y.useCallback)((e,t,n)=>{let r=e.filter(e=>e!=null);return r.length>0?n?(0,X.jsx)(Y.Fragment,{children:r},t):(0,X.jsxs)(Y.Fragment,{children:[r,(0,X.jsx)(Pe,{inset:`menu`})]},t):null},[]),_=u!=null;return(0,X.jsxs)(yt,{ref:m,testId:`context-menu`,style:_?u:void 0,theme:_?`popover`:`default`,position:_?`none`:l,alignment:_?`none`:`right`,spacing:_?`none`:`default`,className:_?`mt-0 min-w-[200px] w-max max-w-[min(280px,100vw-16px)]`:`z-[200] mt-0`,children:[g([r&&(0,X.jsx)(q,{testId:`edit-button`,onClick:r,children:(0,X.jsx)(J,{icon:(0,X.jsx)(St,{width:16,height:16}),text:f(b.BUTTON$RENAME)})},`edit-button`)],`edit-section`),g([a&&(0,X.jsx)(q,{testId:`show-agent-tools-button`,onClick:a,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ue,{width:16,height:16}),text:f(b.BUTTON$SHOW_AGENT_TOOLS_AND_METADATA)})},`show-agent-tools-button`),o&&(0,X.jsx)(q,{testId:`show-skills-button`,onClick:o,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ct,{width:16,height:16,className:`stroke-[1.75]`,"aria-hidden":!0}),text:f(b.CONVERSATION$SHOW_SKILLS)})},`show-skills-button`)],`tools-section`),g([n&&(0,X.jsx)(q,{testId:`stop-button`,onClick:n,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ge,{width:16,height:16}),text:f(h)})},`stop-button`),s&&(0,X.jsx)(q,{testId:`download-vscode-button`,onClick:s,children:(0,X.jsx)(J,{icon:(0,X.jsx)(A,{width:16,height:16}),text:f(b.BUTTON$DOWNLOAD_VIA_VSCODE)})},`download-vscode-button`),c&&(0,X.jsx)(q,{testId:`download-trajectory-button`,onClick:c,children:(0,X.jsx)(J,{icon:(0,X.jsx)(A,{width:16,height:16}),text:f(b.BUTTON$EXPORT_CONVERSATION)})},`download-trajectory-button`)],`control-section`),g([i&&(0,X.jsx)(q,{testId:`display-cost-button`,onClick:i,children:(0,X.jsx)(J,{icon:(0,X.jsx)(I,{width:16,height:16}),text:f(b.BUTTON$DISPLAY_COST)})},`display-cost-button`),t&&(0,X.jsx)(q,{testId:`delete-button`,onClick:t,children:(0,X.jsx)(J,{icon:(0,X.jsx)(bt,{width:16,height:16}),text:f(b.COMMON$DELETE_CONVERSATION)})},`delete-button`)],`info-section`,!0)]})}function An({contextMenuOpen:e,onContextMenuToggle:t,onDelete:n,onStop:r,onEdit:i,onDownloadViaVSCode:a,onDownloadConversation:o,executionStatus:s,conversationId:c,showOptions:l}){let u=ut(s),d=dt(s),f=(0,Y.useRef)(null),[,p]=(0,Y.useReducer)(e=>e+1,0);(0,Y.useLayoutEffect)(()=>{if(!e)return;p();let t=0,n=()=>{t||=window.requestAnimationFrame(()=>{t=0,p()})};return window.addEventListener(`resize`,n),window.addEventListener(`scroll`,n,!0),()=>{t&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,n),window.removeEventListener(`scroll`,n,!0)}},[e]);let m=(()=>{if(!e||!f.current)return;let t=f.current.getBoundingClientRect(),n=Number(window.innerWidth)||0,r=Number(window.innerHeight)||0,i=Number(t.bottom)||0,a=Number(t.right)||0;return{position:`fixed`,top:i+280+8>r?Math.max(8,t.top-280-4):i+4,right:Math.max(8,n-a),zIndex:1e5}})(),h=typeof document<`u`?document.body:null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(xt,{ref:f,onClick:n=>{n.preventDefault(),n.stopPropagation(),t(!e)},className:B(u&&`opacity-60`)}),e&&m&&h?(0,On.createPortal)((0,X.jsx)(kn,{ignoreOutsideClickRef:f,floatingStyle:m,onClose:()=>t(!1),onDelete:n,onStop:d?r:void 0,onEdit:i,onDownloadViaVSCode:c&&l?a:void 0,onDownloadConversation:c?o:void 0,position:`bottom`}),h):null]})}var jn={bitbucket:It,bitbucket_data_center:It,github:Pt,gitlab:Ft};function Mn({selectedRepository:e}){let t=e.git_provider?jn[e.git_provider]:null;return(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 overflow-hidden`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[t&&(0,X.jsx)(t,{size:14,className:`shrink-0 text-[var(--oh-muted)]`}),e.git_provider===`azure_devops`&&(0,X.jsx)(Re,{className:`h-[14px] w-[14px] shrink-0 text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{"data-testid":`conversation-card-selected-repository`,className:`min-w-0 truncate text-xs text-[var(--oh-muted)]`,children:e.selected_repository})]}),(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,X.jsx)(_t,{size:12,className:`shrink-0 text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{"data-testid":`conversation-card-selected-branch`,className:`min-w-0 truncate text-xs text-[var(--oh-muted)]`,children:e.selected_branch})]})]})}function Nn({workspaceWorkingDir:e}){let{t}=S(`openhands`),n=e?_(e).trim():``;return n?(0,X.jsx)(`span`,{className:`truncate min-w-0 text-xs text-[var(--oh-muted)] flex-1`,title:e??void 0,children:n}):(0,X.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-[var(--oh-muted)] flex-1 min-w-0 overflow-hidden`,children:[(0,X.jsx)(Le,{width:14,height:14,className:`text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{className:`truncate min-w-0`,children:t(b.COMMON$NO_REPOSITORY)})]})}function Pn({selectedRepository:e,lastUpdatedAt:t,createdAt:n,executionStatus:r,workspaceWorkingDir:i,showRepositoryMetadata:a=!0,showTimestamp:o=!0,llmModel:s,showAgentChip:c=!1,agentKind:l=null,acpServer:u=null}){let{t:d}=S(`openhands`),f=ut(r),p=null;if(c)if(l===`acp`){let e=ot(u)??d(b.CONVERSATION$ACP_AGENT_GENERIC),t=st(u,s),n=t??e;p={kind:at(u),text:n,tooltip:t?`${e} · ${t}`:e}}else s&&(p={kind:`openhands`,text:s,tooltip:s});let m=r===void 0?void 0:`pl-[26px]`;return(0,X.jsxs)(`div`,{className:B(`flex flex-col gap-0.5 mt-0.5 w-full min-w-0`,f&&`opacity-60`),children:[p?(0,X.jsx)(`div`,{className:m,children:(0,X.jsxs)(`span`,{"data-testid":`conversation-card-agent-chip`,className:`inline-flex items-center gap-1 text-xs text-[var(--oh-muted)] max-w-full min-w-0`,title:p.tooltip,children:[(0,X.jsx)(Nt,{kind:p.kind}),(0,X.jsx)(`span`,{className:`truncate`,children:p.text})]})}):null,(0,X.jsxs)(`div`,{className:B(`flex flex-row items-center gap-2 w-full min-w-0`,a&&m),children:[a&&(e?.selected_repository?(0,X.jsx)(Mn,{selectedRepository:e}):(0,X.jsx)(Nn,{workspaceWorkingDir:i})),(0,X.jsx)(`div`,{className:`flex items-center gap-2 shrink-0 ml-auto`,children:o&&(n??t)&&(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)] text-right`,children:(0,X.jsx)(`time`,{children:`${xn(t??n)} ${d(b.CONVERSATION$AGO)}`})})})]})]})}function Fn(){let{t:e}=S(`openhands`);return(0,X.jsxs)(`span`,{"data-testid":`error-badge`,className:`flex items-center gap-1 px-1.5 py-0.5 bg-[var(--oh-status-error)] text-white text-xs font-medium rounded-full`,children:[(0,X.jsx)(Ye,{className:`text-white w-3 h-3`}),(0,X.jsx)(`span`,{children:e(b.COMMON$ERROR)})]})}function In({onClick:e,onDelete:t,onStop:n,onChangeTitle:r,showOptions:i,title:a,selectedRepository:o,lastUpdatedAt:s,createdAt:c,conversationId:l,executionStatus:u,sandboxStatus:d,contextMenuOpen:f=!1,onContextMenuToggle:p,isActive:m=!1,workspaceWorkingDir:h,showRepositoryMetadata:g=!0,llmModel:_=null,showLlmProfiles:v=!1,agentKind:y=null,acpServer:b=null}){let x=se(),[S,C]=Y.useState(`view`),{mutateAsync:w}=He(),T=e=>{e!==``&&e!==a&&r?.(e),C(`view`)},E=e=>{e.preventDefault(),e.stopPropagation(),t?.(),p?.(!1)},D=e=>{e.preventDefault(),e.stopPropagation(),n?.(),p?.(!1)},O=e=>{e.preventDefault(),e.stopPropagation(),C(`edit`),p?.(!1)},k=async e=>{if(e.preventDefault(),e.stopPropagation(),x.capture(`download_via_vscode_button_clicked`),l)try{let e=await gt.getVSCodeUrl(l);if(e.vscode_url){let t=ht(e.vscode_url);t&&window.open(t,`_blank`)}}catch{}p?.(!1)},A=async e=>{e.preventDefault(),e.stopPropagation(),l&&await w(l),p?.(!1)},j=!!(t||r||i),M=g||v&&(y===`acp`||!!_);return(0,X.jsxs)(`div`,{"data-testid":`conversation-card`,"data-context-menu-open":f.toString(),"data-active":m?`true`:`false`,onClick:e,className:B(`group relative h-auto w-full cursor-pointer rounded-md py-1 pl-2 pr-1 transition-colors`,`data-[context-menu-open=false]:hover:bg-[var(--oh-surface)]`,`data-[active=true]:bg-[var(--oh-surface)]`),children:[(0,X.jsxs)(`div`,{className:`flex items-center w-full min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden`,children:[(0,X.jsx)(Dn,{title:a,titleMode:S,onTitleSave:T,executionStatus:u,sandboxStatus:d}),d===`ERROR`&&(0,X.jsx)(Fn,{})]}),(0,X.jsxs)(`div`,{className:`relative ml-auto pl-2 flex items-center justify-end shrink-0`,children:[(c??s)&&(0,X.jsx)(`p`,{className:B(`text-xs text-[var(--oh-muted)] text-right whitespace-nowrap transition-opacity -translate-x-1.5`,j&&`group-hover:opacity-0 group-focus-within:opacity-0`,f&&`opacity-0`),children:(0,X.jsx)(`time`,{children:xn(s??c)})}),j&&(0,X.jsx)(`div`,{className:B(`absolute right-0 top-1/2 -translate-y-1/2 transition-opacity`,`opacity-0 invisible group-hover:opacity-100 group-hover:visible`,f&&`visible opacity-100`),children:(0,X.jsx)(An,{contextMenuOpen:f,onContextMenuToggle:p||(()=>{}),onDelete:t&&E,onStop:n&&D,onEdit:r&&O,onDownloadViaVSCode:k,onDownloadConversation:A,executionStatus:u,conversationId:l,showOptions:i})})]})]}),M&&(0,X.jsx)(Pn,{selectedRepository:o,lastUpdatedAt:s,createdAt:c,executionStatus:u,workspaceWorkingDir:h,showRepositoryMetadata:g,showTimestamp:!1,llmModel:_,showAgentChip:v,agentKind:y,acpServer:b})]})}function Ln({taskStatus:e}){return(0,X.jsx)(`div`,{className:B(`w-2 h-2 rounded-full flex-shrink-0`,(()=>{switch(e){case`READY`:return`bg-green-500`;case`ERROR`:return`bg-red-500`;case`WORKING`:case`WAITING_FOR_SANDBOX`:case`PREPARING_REPOSITORY`:case`RUNNING_SETUP_SCRIPT`:case`SETTING_UP_GIT_HOOKS`:case`SETTING_UP_SKILLS`:case`STARTING_CONVERSATION`:return`bg-yellow-500 animate-pulse`;default:return`bg-[var(--oh-interactive-selected)]`}})()),"aria-label":`Task status: ${e}`})}function Rn({taskStatus:e}){return e===`WORKING`?null:(0,X.jsx)(`span`,{className:B(`text-xs font-medium px-2 py-0.5 rounded border flex-shrink-0`,(()=>{switch(e){case`READY`:return`bg-green-500/10 text-green-400 border-green-500/20`;case`ERROR`:return`bg-red-500/10 text-red-400 border-red-500/20`;default:return`bg-yellow-500/10 text-yellow-400 border-yellow-500/20`}})()),children:(e=>e.toLowerCase().replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()))(e)})}function zn({title:e,taskStatus:t}){return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden mr-2`,children:[(0,X.jsx)(`div`,{className:`flex items-center`,children:(0,X.jsx)(Ln,{taskStatus:t})}),(0,X.jsx)(`h3`,{className:`text-sm font-medium text-content-2 truncate flex-1`,children:e}),(0,X.jsx)(Rn,{taskStatus:t})]})}function Bn({selectedRepository:e,createdAt:t,detail:n}){let{t:r}=S(`openhands`);return(0,X.jsxs)(`div`,{className:B(`flex flex-col gap-1 mt-1`),children:[(0,X.jsxs)(`div`,{className:`flex flex-row justify-between items-center`,children:[e?(0,X.jsx)(Mn,{selectedRepository:e}):(0,X.jsx)(Nn,{}),t&&(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)] flex-1 text-right`,children:(0,X.jsx)(`time`,{children:`${xn(t)} ${r(b.CONVERSATION$AGO)}`})})]}),n&&(0,X.jsx)(`div`,{className:`text-xs text-[var(--oh-text-subtle)] truncate`,children:n})]})}function Vn({task:e,onClick:t}){let{t:n}=S(`openhands`),r=e.request.title||e.detail||n(b.CONVERSATION$STARTING_CONVERSATION),i=e.request.selected_repository?{selected_repository:e.request.selected_repository,selected_branch:e.request.selected_branch||null,git_provider:e.request.git_provider||null}:null;return(0,X.jsxs)(`div`,{"data-testid":`start-task-card`,onClick:t,className:B(`relative h-auto w-full p-3.5 border-b border-[var(--oh-border)] cursor-pointer`,`hover:bg-tertiary`),children:[(0,X.jsx)(`div`,{className:`flex items-center justify-between w-full`,children:(0,X.jsx)(zn,{title:r,taskStatus:e.status})}),(0,X.jsx)(Bn,{selectedRepository:i,createdAt:e.created_at,detail:e.detail})]})}function Hn({compact:e=!1}){return e?(0,X.jsx)(`div`,{"data-testid":`conversation-card-skeleton-compact`,className:`skeleton-stagger flex flex-col items-center gap-1.5 py-1`,"aria-hidden":!0,children:[0,1,2].map(e=>(0,X.jsx)(`div`,{className:`h-1.5 w-7 shrink-0 skeleton`},`conversation-skeleton-compact-${e}`))}):(0,X.jsx)(`div`,{"data-testid":`conversation-card-skeleton`,className:`skeleton-stagger flex flex-col gap-1.5 py-0.5`,"aria-hidden":!0,children:[0,1,2].map(e=>(0,X.jsx)(`div`,{className:`h-6 min-h-6 w-full skeleton`},`conversation-skeleton-row-${e}`))})}function Un({conversationId:e,title:t,selectedRepository:n,executionStatus:r,sandboxStatus:i,lastUpdatedAt:a,createdAt:o,workspaceWorkingDir:s,isActive:c=!1,onClose:l,showRepositoryMetadata:u=!0,llmModel:d=null,showLlmProfiles:f=!1,agentKind:p=null,acpServer:m=null}){return(0,X.jsx)(Ae,{content:(0,X.jsxs)(`div`,{className:`w-[260px] p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,X.jsx)(En,{executionStatus:r,sandboxStatus:i,showTooltip:!1}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,title:t,children:t||`(untitled)`})]}),(0,X.jsx)(Pn,{selectedRepository:n,lastUpdatedAt:a,createdAt:o,executionStatus:r,workspaceWorkingDir:s,showRepositoryMetadata:u,llmModel:d,showAgentChip:f,agentKind:p,acpServer:m})]}),placement:`right`,closeDelay:100,className:`bg-[var(--oh-surface)] text-white border border-[var(--oh-border-subtle)] shadow-xl p-0`,disableAnimation:!1,children:(0,X.jsx)(xe,{to:`/conversations/${e}`,onClick:l,"data-testid":`compact-conversation-row`,"data-conversation-id":e,"aria-label":t||e,className:({isActive:e})=>B(`flex items-center justify-center w-10 h-9 mx-auto rounded-md`,`transition-colors cursor-pointer`,e||c?`bg-tertiary`:`hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(En,{executionStatus:r,sandboxStatus:i,showTooltip:!1})})})}var Wn={showOlderConversations:!0,showRepoBranchMetadata:!1,showLlmProfiles:!1,organizeMode:`chronological`,conversationSort:`updated`,threadScope:`all`},Z=$e()(et(e=>({...Wn,setShowOlderConversations:t=>e(()=>({showOlderConversations:t})),toggleShowOlderConversations:()=>e(e=>({showOlderConversations:!e.showOlderConversations})),setShowRepoBranchMetadata:t=>e(()=>({showRepoBranchMetadata:t})),toggleShowRepoBranchMetadata:()=>e(e=>({showRepoBranchMetadata:!e.showRepoBranchMetadata})),setShowLlmProfiles:t=>e(()=>({showLlmProfiles:t})),toggleShowLlmProfiles:()=>e(e=>({showLlmProfiles:!e.showLlmProfiles})),setOrganizeMode:t=>e(()=>({organizeMode:t})),setConversationSort:t=>e(()=>({conversationSort:t})),setThreadScope:t=>e(()=>({threadScope:t}))}),{name:`conversation-panel-preferences`,storage:tt(()=>localStorage),partialize:e=>({showOlderConversations:e.showOlderConversations,showRepoBranchMetadata:e.showRepoBranchMetadata,showLlmProfiles:e.showLlmProfiles,organizeMode:e.organizeMode,conversationSort:e.conversationSort,threadScope:e.threadScope})})),Gn=e=>e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e,Kn=`px-2 pb-1 pt-1`,qn=`text-[11px] font-semibold uppercase tracking-wide text-[var(--oh-muted)]`;function Jn({children:e,suffix:t}){return t==null?(0,X.jsx)(`div`,{role:`presentation`,className:B(Kn,qn),children:e}):(0,X.jsxs)(`div`,{role:`presentation`,className:B(`flex items-baseline justify-between gap-2`,Kn),children:[(0,X.jsx)(`span`,{className:B(`min-w-0 truncate text-left`,qn),children:e}),t]})}function Yn(){return(0,X.jsx)(Pe,{inset:`menu`})}function Q({icon:e,label:t,selected:n,onClick:r,testId:i,disabled:a}){return(0,X.jsxs)(`button`,{type:`button`,role:n===void 0?`menuitem`:`menuitemradio`,"aria-checked":n===void 0?void 0:!!n,"data-testid":i,disabled:a,onClick:r,className:B(`group flex w-full items-center gap-2 rounded px-2 py-2 text-left text-sm text-[var(--oh-foreground)]`,`hover:bg-[var(--oh-interactive-hover)] disabled:cursor-not-allowed disabled:opacity-50`),children:[(0,X.jsx)(e,{className:B(`h-3.5 w-3.5 shrink-0 text-[var(--oh-muted)] group-hover:text-[var(--oh-foreground)] group-focus-visible:text-[var(--oh-foreground)]`,me),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t}),n?(0,X.jsx)(O,{className:`ml-auto h-3.5 w-3.5 shrink-0 text-[var(--oh-foreground)]`,"aria-hidden":!0}):null]})}function Xn({filterMenuOpen:e,setFilterMenuOpen:t,menuRef:n,backendKind:r,organizeMode:i,setOrganizeMode:a,conversationSort:o,setConversationSort:s,threadScope:c,setThreadScope:l,showOlderConversations:u,toggleShowOlderConversations:d,showRepoBranchMetadata:f,toggleShowRepoBranchMetadata:p,showLlmProfiles:m,toggleShowLlmProfiles:h,totalConversationsCount:g,onRequestDeleteAll:_}){let{t:v}=S(`openhands`),y=v(r===`local`?b.CONVERSATION_PANEL$BY_WORKSPACE:b.CONVERSATION_PANEL$BY_REPOSITORY),x=Y.useRef(null),C=Y.useRef(null),w=Y.useRef(e);return Y.useEffect(()=>{e?(C.current?.querySelector(`[role="menuitem"], [role="menuitemradio"]`))?.focus():w.current&&x.current?.focus(),w.current=e},[e]),(0,X.jsxs)(`div`,{ref:n,className:`relative shrink-0 pr-0.5`,children:[(0,X.jsx)(`button`,{ref:x,type:`button`,"data-testid":`older-conversations-filter-toggle`,"aria-label":v(b.CONVERSATION_PANEL$FILTER_LABEL),"aria-haspopup":`menu`,"aria-expanded":e,onClick:()=>t(!e),className:B(`inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`,me),children:(0,X.jsx)(Yt,{className:`lucide lucide-list-filter shrink-0`,width:14,height:14,strokeWidth:2,"aria-hidden":!0})}),e?(0,X.jsxs)(`div`,{ref:C,role:`menu`,"aria-orientation":`vertical`,"aria-label":v(b.CONVERSATION_PANEL$FILTER_LABEL),tabIndex:-1,"data-testid":`older-conversations-filter-menu`,onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),t(!1);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let n=C.current;if(!n)return;let r=Array.from(n.querySelectorAll(`[role="menuitem"], [role="menuitemradio"]`)).filter(e=>!e.disabled);if(r.length===0)return;let i=r.indexOf(document.activeElement),a=e.key===`ArrowDown`?1:-1,o=((i===-1?0:i)+a+r.length)%r.length;e.preventDefault(),r[o]?.focus()},className:`absolute right-0 top-full z-50 mt-0 w-64 rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 text-[var(--oh-foreground)] shadow-lg`,children:[(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$ORGANIZE)}),(0,X.jsx)(Q,{icon:T,label:y,selected:i===`grouped`,onClick:()=>{a(`grouped`),t(!1)}}),(0,X.jsx)(Q,{icon:Wt,label:v(b.CONVERSATION_PANEL$CHRONOLOGICAL),selected:i===`chronological`,onClick:()=>{a(`chronological`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$SORT_BY)}),(0,X.jsx)(Q,{icon:Ut,label:v(b.CONVERSATION_PANEL$SORT_CREATED),selected:o===`created`,onClick:()=>{s(`created`),t(!1)}}),(0,X.jsx)(Q,{icon:Gt,label:v(b.CONVERSATION_PANEL$SORT_UPDATED),selected:o===`updated`,onClick:()=>{s(`updated`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$SHOW)}),(0,X.jsx)(Q,{icon:Xt,label:v(b.CONVERSATION_PANEL$ALL_THREADS),selected:c===`all`,onClick:()=>{l(`all`),t(!1)}}),(0,X.jsx)(Q,{icon:$t,label:v(b.CONVERSATION_PANEL$RELEVANT_THREADS),selected:c===`relevant`,onClick:()=>{l(`relevant`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$METADATA)}),(0,X.jsx)(Q,{icon:E,label:v(b.CONVERSATION_PANEL$LLM_MODEL),selected:m,testId:`toggle-llm-profiles`,onClick:()=>{h(),t(!1)}}),(0,X.jsx)(Q,{icon:D,label:v(b.CONVERSATION_PANEL$REPO_BRANCH),selected:f,testId:`toggle-repo-branch-metadata`,onClick:()=>{p(),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{suffix:(0,X.jsx)(`span`,{className:`shrink-0 text-right text-[10px] font-medium normal-case tracking-normal text-[var(--oh-muted)]/70`,children:v(b.CONVERSATION_PANEL$OLDER_OVER_ONE_HOUR)}),children:v(b.CONVERSATION_PANEL$OLDER_SECTION)}),(0,X.jsx)(Q,{testId:`toggle-older-conversations`,icon:u?Kt:qt,label:Gn(v(u?b.CONVERSATION$HIDE:b.CONVERSATION$SHOW_ALL)),onClick:()=>{d(),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Q,{testId:`delete-all-conversations`,icon:re,label:Gn(v(b.CONVERSATION$DELETE_ALL)),disabled:g===0,onClick:()=>{g!==0&&(_(),t(!1))}})]}):null]})}var Zn=B(`z-50 flex flex-col rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 text-white shadow-lg`);function Qn(e,t){let{open:n,enabled:r,targetWidth:i=256}=t,[a,o]=Y.useState(null),s=Y.useCallback(()=>{let t=e.current;if(!t)return;let n=t.getBoundingClientRect(),r=Math.min(i,window.innerWidth-16),a=n.right-r;a<8&&(a=8),a+r>window.innerWidth-8&&(a=Math.max(8,window.innerWidth-8-r)),o({top:n.bottom+4,left:a,width:r})},[e,i]);return Y.useLayoutEffect(()=>{if(!n||!r){o(null);return}return s(),window.addEventListener(`resize`,s),window.addEventListener(`scroll`,s,!0),()=>{window.removeEventListener(`resize`,s),window.removeEventListener(`scroll`,s,!0)}},[n,r,s]),a}function $n({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=ye(),[s,c]=Y.useState(!1),l=Y.useRef(null),u=Y.useRef(null),d=Qn(u,{open:s,enabled:i}),{data:f,error:p}=wt(),m=f?.workspaceParents??[],{mutate:h}=jt(),{mutate:g}=Tt(),{mutate:_}=kt(),{mutate:v}=Dt(),{workspaces:y}=Et(),C=At(p,a),[w,T]=Y.useState(!1),[E,D]=Y.useState(!1),{mutate:O,isPending:k}=mt(),A=x(),j=k||A;Y.useEffect(()=>{if(!s||w||E)return;let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s,w,E]),Y.useEffect(()=>{if(!s||w||E)return;let e=e=>{e.key===`Escape`&&c(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,w,E]);let M=e=>{j||O({workingDir:e},{onSuccess:e=>{c(!1),o(`/conversations/${e.conversation_id}`)}})},N=B(`flex w-full cursor-pointer items-center gap-2 rounded px-2 py-2 text-left text-sm text-white`,`font-normal transition-colors hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-60`),P=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),ee=Y.useCallback(()=>{c(e=>!e)},[]),F=s&&(!i||d!==null),I=!!C,L=i&&d?{position:`fixed`,top:d.top,left:d.left,width:d.width}:void 0,R=(0,X.jsx)(`button`,{type:`button`,"data-testid":`add-workspaces-button`,disabled:I,onMouseDown:P,onClick:e=>{e.preventDefault(),e.stopPropagation(),!I&&T(!0)},className:N,children:a(b.HOME$ADD_WORKSPACES)}),z=C?(0,X.jsx)(G,{content:C,placement:`top`,children:(0,X.jsx)(`span`,{className:`block`,children:R})}):R;return(0,X.jsxs)(`div`,{className:B(!i&&`relative`,t),ref:l,children:[(0,X.jsx)(`span`,{ref:u,className:`inline-flex`,children:e({onClick:ee,"aria-expanded":s,"aria-haspopup":`menu`,disabled:j})}),F&&(0,X.jsxs)(`div`,{"data-testid":r,className:B(Zn,!i&&B(`absolute top-full mt-0`,n)),style:L,children:[(0,X.jsxs)(`ul`,{className:`flex max-h-[40vh] flex-col overflow-y-auto sm:max-h-[280px]`,children:[(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,disabled:j,"data-testid":`launch-no-workspace`,onClick:()=>M(),className:N,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-muted)]`,children:a(b.HOME$NO_WORKSPACE_OPTION)})})}),y.map(e=>(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,disabled:j,"data-testid":`launch-workspace`,"data-workspace-path":e.path,onClick:()=>M(e.path),className:N,children:[(0,X.jsx)(Ie,{width:14,height:14,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]})},e.id))]}),(0,X.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`new-conversation-menu-footer`,children:[(0,X.jsx)(Pe,{inset:`menu`,testId:`new-conversation-menu-footer-divider`}),z,(y.length>0||m.length>0)&&(0,X.jsx)(`button`,{type:`button`,"data-testid":`manage-workspaces-button`,onMouseDown:P,onClick:e=>{e.preventDefault(),e.stopPropagation(),D(!0)},className:N,children:a(b.HOME$MANAGE_WORKSPACES)})]})]}),(0,X.jsx)(Ot,{isOpen:w,onClose:()=>T(!1),onAdd:e=>h(e),onAddParent:e=>_(e)}),(0,X.jsx)(Mt,{isOpen:E,workspaces:y,workspaceParents:m,onClose:()=>D(!1),onRemove:e=>g(e),onRemoveParent:e=>v(e)})]})}function er({repo:e,disabled:t,onSelect:n,itemClass:r}){return(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,disabled:t,"data-testid":`launch-repository`,"data-repo-name":e.full_name,onClick:()=>n(e),className:r,children:[(0,X.jsx)(Ie,{width:14,height:14,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.full_name})]})})}function tr({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=ye(),{providers:s}=qe(),{lastSelectedProvider:c,setLastSelectedProvider:l}=We(),[u,d]=Y.useState(!1),f=Y.useRef(null),p=Y.useRef(null),m=Qn(p,{open:u,enabled:i}),[h,g]=Y.useState(c??null),[_,v]=Y.useState(``),y=Ke(_,300);Y.useEffect(()=>{if(s.length===0){h!==null&&g(null);return}h&&s.includes(h)||g(c&&s.includes(c)?c:s[0])},[s,h,c]);let{data:C,isLoading:w,isError:T,hasNextPage:E,isFetchingNextPage:D,fetchNextPage:O}=Fe({provider:h}),{data:k,isLoading:A}=Ve(y,h),j=Y.useMemo(()=>C?.pages.flatMap(e=>e.items)??[],[C]),M=y?k??[]:j,{mutate:N,isPending:P}=mt(),ee=x(),F=P||ee;Y.useEffect(()=>{if(!u)return;let e=e=>{f.current&&!f.current.contains(e.target)&&d(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]),Y.useEffect(()=>{if(!u)return;let e=e=>{e.key===`Escape`&&d(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[u]);let I=e=>{F||N({repository:{name:e.full_name,gitProvider:e.git_provider,branch:e.main_branch??`main`}},{onSuccess:e=>{d(!1),o(`/conversations/${e.conversation_id}`)}})},L=e=>{g(e),l(e),v(``)},R=B(`flex w-full cursor-pointer items-center gap-2 rounded px-2 py-2 text-left text-sm text-white`,`font-normal transition-colors hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-60`);Y.useEffect(()=>{u&&(y||!E||D||w||M.length===0||M.length>=10||O())},[u,y,E,D,w,M.length,O]);let z=y?A:w,te=!y&&E&&M.length>0,ne=Y.useCallback(()=>{d(e=>!e)},[]),re=u&&(!i||m!==null),ie=i&&m?{position:`fixed`,top:m.top,left:m.left,width:m.width}:void 0;return(0,X.jsxs)(`div`,{className:B(!i&&`relative`,t),ref:f,children:[(0,X.jsx)(`span`,{ref:p,className:`inline-flex`,children:e({onClick:ne,"aria-expanded":u,"aria-haspopup":`menu`,disabled:F})}),re&&(0,X.jsxs)(`div`,{"data-testid":r,className:B(Zn,!i&&B(`absolute top-full mt-0`,n)),style:ie,children:[s.length>1&&(0,X.jsx)(`div`,{className:`flex items-center gap-1 px-1 py-1`,"data-testid":`cloud-provider-tabs`,children:s.map(e=>{let t=e===h;return(0,X.jsxs)(`button`,{type:`button`,"data-testid":`cloud-provider-tab-${e}`,onClick:()=>L(e),className:B(`flex items-center gap-1 rounded px-2 py-1 text-xs`,`border transition-colors`,t?`border-[var(--oh-border-subtle)] bg-[var(--oh-interactive-hover)] text-white`:`border-transparent text-[var(--oh-text-secondary)] hover:text-white`),children:[(0,X.jsx)(Je,{gitProvider:e}),(0,X.jsx)(`span`,{className:`capitalize`,children:e})]},e)})}),(0,X.jsx)(`div`,{className:`px-2`,children:(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(Lt,{width:16,height:16,"aria-hidden":!0,className:`pointer-events-none absolute left-0 top-1/2 -translate-y-1/2 text-[var(--oh-muted)]`}),(0,X.jsx)(`input`,{type:`text`,"data-testid":`cloud-repo-search-input`,value:_,onChange:e=>v(e.target.value),placeholder:a(b.COMMON$SEARCH_REPOSITORIES),disabled:!h,className:B(`w-full border-0 bg-transparent py-1.5 pl-6 pr-0 text-sm text-white`,`outline-none placeholder:text-[var(--oh-muted)]`,`focus:outline-none focus:ring-0`,`disabled:cursor-not-allowed disabled:opacity-60`)})]})}),(0,X.jsx)(Pe,{inset:`menu`}),(0,X.jsxs)(`ul`,{className:`flex max-h-[40vh] flex-col overflow-y-auto custom-scrollbar-always sm:max-h-[280px]`,children:[z&&M.length===0&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,"data-testid":`cloud-repo-loading`,children:a(b.HOME$LOADING_REPOSITORIES)}),T&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[#F87171]`,"data-testid":`cloud-repo-error`,children:a(b.HOME$FAILED_TO_LOAD_REPOSITORIES)}),!z&&!T&&M.length===0&&!!h&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,"data-testid":`cloud-repo-empty`,children:a(b.GITHUB$NO_RESULTS)}),M.map(e=>(0,X.jsx)(er,{repo:e,disabled:F,onSelect:I,itemClass:R},`${e.git_provider}:${e.id}`)),te&&(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`cloud-repo-load-more`,disabled:D,onClick:()=>O(),className:R,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-text-secondary)]`,children:a(D?b.HOME$LOADING_MORE_REPOSITORIES:b.CONVERSATION$LOAD_MORE)})})})]})]})]})}var nr=B(`inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,`text-[var(--oh-muted)] transition-colors`,`hover:bg-[var(--oh-surface-raised)] hover:text-white`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,`disabled:cursor-not-allowed disabled:opacity-50`);function rr({backendKind:e}){let{t}=S(`openhands`),n=t(b.CONVERSATION_PANEL$NEW_THREAD_FOLDER_ARIA),r=(0,X.jsx)(Jt,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0,strokeWidth:2});return e===`local`?(0,X.jsx)($n,{useFixedPlacement:!0,popoverTestId:`conversation-panel-new-thread-popover`,popoverClassName:``,trigger:({onClick:e,"aria-expanded":t,disabled:i,"aria-haspopup":a})=>(0,X.jsx)(`button`,{type:`button`,className:nr,"aria-label":n,"aria-expanded":t,"aria-haspopup":a,disabled:i,"data-testid":`conversation-panel-new-thread-picker`,onClick:e,children:r})}):(0,X.jsx)(tr,{useFixedPlacement:!0,popoverTestId:`conversation-panel-new-thread-popover`,popoverClassName:``,trigger:({onClick:e,"aria-expanded":t,disabled:i,"aria-haspopup":a})=>(0,X.jsx)(`button`,{type:`button`,className:nr,"aria-label":n,"aria-expanded":t,"aria-haspopup":a,disabled:i,"data-testid":`conversation-panel-new-thread-picker`,onClick:e,children:r})})}function ir(e,t){let n=t.limit??5;if(t.expanded||e.length<=n)return{visibleConversations:[...e],isPreviewTruncated:e.length>n,isShowingAll:!0};let r=t.activeConversationId==null?-1:e.findIndex(e=>e.id===t.activeConversationId);if(r>=n){let t=e[r];return{visibleConversations:[...e.slice(0,n-1),t],isPreviewTruncated:!0,isShowingAll:!1}}return{visibleConversations:e.slice(0,n),isPreviewTruncated:e.length>n,isShowingAll:!1}}function ar(e,t,n){if(t===`local`)return e===`__none_workspace`?{}:e.startsWith(`ws:`)?{workingDir:e.slice(3)}:{};if(e===`__none_repo`)return{};if(e.startsWith(`repo:`)){let t=e.slice(5),r=n[0];return{repository:{name:t,gitProvider:r?.git_provider??`github`,branch:r?.selected_branch??`main`}}}return{}}function or(e){if(!e)return 0;let t=Date.parse(e);return Number.isFinite(t)?t:0}function sr(e,t){let n=t===`created`?`created_at`:`updated_at`;return[...e].sort((e,t)=>or(t[n])-or(e[n]))}function cr(e){let t=e.selected_workspace?.trim().replace(/\/+$/,``);if(!t)return{id:`__none_workspace`,label:``};let n=t.split(`/`).filter(Boolean).pop()??t;return{id:`ws:${t}`,label:n}}function lr(e){let t=e.selected_repository?.trim().replace(/\/+$/,``);if(!t)return{id:`__none_repo`,label:``};let n=t.split(`/`).filter(Boolean),r=n.length?(n[n.length-1]??t).replace(/\.git$/,``):t.replace(/\.git$/,``);return{id:`repo:${t}`,label:r}}function ur(e,t,n,r){let i=new Map;for(let n of e){let{id:e,label:a}=t===`local`?cr(n):lr(n),o=e===`__none_workspace`?r.emptyWorkspace:e===`__none_repo`?r.emptyRepository:a,s=i.get(e);s?s.conversations.push(n):i.set(e,{label:o,conversations:[n]})}let a=[...i.entries()].map(([e,r])=>{let i=sr(r.conversations,n);return{id:e,label:r.label,conversations:i,launch:ar(e,t,i)}}),o=e=>e.conversations.reduce((e,t)=>Math.max(e,or(n===`created`?t.created_at:t.updated_at)),0);return a.sort((e,t)=>o(t)-o(e)),a}var dr=()=>{},fr=3600*1e3,pr=e=>{let t=Date.now()-fr,n=[],r=[];for(let i of e){let e=i.updated_at?Date.parse(i.updated_at):NaN;Number.isFinite(e)&&e<t?r.push(i):n.push(i)}return{recent:n,older:r}};function mr({onClose:e,compact:t=!1}){let{t:n}=S(`openhands`),{conversationId:r,navigate:i}=ye(),{backend:a}=ae(),o=lt(e??dr),[s,c]=Y.useState(!1),[l,u]=Y.useState(!1),[d,f]=Y.useState(!1),[p,m]=Y.useState(!1),h=Z(e=>e.showOlderConversations),g=Z(e=>e.toggleShowOlderConversations),_=Z(e=>e.showRepoBranchMetadata),v=Z(e=>e.toggleShowRepoBranchMetadata),y=Z(e=>e.showLlmProfiles),C=Z(e=>e.toggleShowLlmProfiles),w=Z(e=>e.organizeMode),E=Z(e=>e.setOrganizeMode),D=Z(e=>e.conversationSort),O=Z(e=>e.setConversationSort),k=Z(e=>e.threadScope),A=Z(e=>e.setThreadScope),[M,N]=Y.useState(!1),[ee,F]=Y.useState(!1),I=lt(()=>{N(!1)}),[L,re]=Y.useState(()=>new Set),[ie,oe]=Y.useState(()=>new Set),se=Y.useCallback(e=>{re(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ce=Y.useCallback(e=>{oe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);Y.useEffect(()=>{w!==`grouped`&&(re(new Set),oe(new Set))},[w]);let le=Y.useRef(null),[ue,de]=Y.useState(null),[fe,pe]=Y.useState(null),[me,he]=Y.useState(null),{data:_e,isLoading:ve,isFetched:be,hasNextPage:Se,isFetchingNextPage:Ce,fetchNextPage:we}=_n(),{data:Te}=vn(),V=Y.useMemo(()=>_e?.pages.flatMap(e=>e.items)??[],[_e]),Ee=Y.useMemo(()=>k===`relevant`?V.filter(e=>dt(e.execution_status)):V,[V,k]),{recent:H,older:U}=Y.useMemo(()=>pr(Ee),[Ee]),De=Y.useMemo(()=>sr(h?[...H,...U]:H,D),[H,U,h,D]),Oe=Y.useMemo(()=>({emptyWorkspace:n(b.CONVERSATION_PANEL$NO_WORKSPACE),emptyRepository:n(b.CONVERSATION_PANEL$NO_REPOSITORY)}),[n]),W=Y.useMemo(()=>t||w!==`grouped`?null:ur([...H,...h?U:[]],a.kind,D,Oe),[a.kind,t,D,Oe,U,w,H,h]),ke=Y.useMemo(()=>sr(H.filter(e=>dt(e.execution_status)),D),[D,H]),Ae=De.length,je=Y.useMemo(()=>W?W.reduce((e,t)=>e+t.conversations.length,0):0,[W]),G=w===`grouped`&&!t?je===0:Ae===0,{mutate:Me,mutateAsync:Ne}=ze(),{mutate:Pe}=Be(),{mutate:Fe}=P(),Ie=U.length>0&&!h,Le=!!Se&&!Ie&&!t&&!G,{mutate:Re}=mt(),Ve=x(),He=Y.useCallback(e=>{Ve||Re({workingDir:e.workingDir,repository:e.repository},{onSuccess:e=>{i(`/conversations/${e.conversation_id}`)}})},[Re,Ve,i]),Ue=Y.useCallback((e,t)=>{c(!0),de(e),pe(t)},[]),We=Y.useCallback(e=>{u(!0),de(e)},[]),Ge=Y.useCallback((e,t)=>{Fe({conversationId:e,newTitle:t},{onSuccess:()=>{te(n(b.CONVERSATION$TITLE_UPDATED))}})},[n,Fe]),Ke=()=>{ue&&Me({conversationId:ue},{onSuccess:()=>{ue===r&&i(`/conversations`)}})},qe=()=>{ue&&Pe({conversationId:ue})},Je=async()=>{let e=V.map(e=>e.id),t=await Promise.allSettled(e.map(e=>Ne({conversationId:e}))),n=t.flatMap((t,n)=>t.status===`fulfilled`?[e[n]]:[]),a=t.length-n.length;r!==null&&n.includes(r)&&i(`/conversations`),a>0&&z(`${a} conversation${a===1?``:`s`} could not be deleted.`)},Ye=Y.useCallback(n=>t?(0,X.jsx)(Un,{conversationId:n.id,title:n.title??``,selectedRepository:{selected_repository:n.selected_repository,selected_branch:n.selected_branch,git_provider:n.git_provider},executionStatus:n.execution_status,sandboxStatus:n.sandbox_status,lastUpdatedAt:n.updated_at,createdAt:n.created_at,workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,isActive:n.id===r,onClose:e,showRepositoryMetadata:_,llmModel:n.llm_model,showLlmProfiles:y,agentKind:n.agent_kind,acpServer:n.acp_server},n.id):(0,X.jsx)(xe,{to:`/conversations/${n.id}`,onClick:e,className:`block`,children:(0,X.jsx)(In,{onDelete:()=>Ue(n.id,n.title??``),onStop:()=>We(n.id),onChangeTitle:e=>Ge(n.id,e),title:n.title??``,selectedRepository:{selected_repository:n.selected_repository,selected_branch:n.selected_branch,git_provider:n.git_provider},lastUpdatedAt:n.updated_at,createdAt:n.created_at,executionStatus:n.execution_status,sandboxStatus:n.sandbox_status,conversationId:n.id,contextMenuOpen:me===n.id,onContextMenuToggle:e=>he(e?n.id:null),isActive:n.id===r,workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,showRepositoryMetadata:_,llmModel:n.llm_model,showLlmProfiles:y,agentKind:n.agent_kind,acpServer:n.acp_server})},n.id),[t,r,Ge,Ue,We,e,me,_,y]),Xe=ve||!be,Ze=be&&!ve&&!t&&G&&!Te?.length;return(0,X.jsxs)(`div`,{ref:o,"data-testid":`conversation-panel`,className:`flex h-full min-h-0 w-full flex-col`,children:[!t&&(0,X.jsx)(`div`,{className:B(`-ml-2.5 w-[calc(100%+0.625rem)] max-w-none box-border border-b`,ee?`border-[var(--oh-border)]`:`border-transparent`),children:(0,X.jsxs)(`div`,{"data-testid":`older-conversations-summary`,className:`flex min-w-0 flex-nowrap items-center gap-x-2 py-2 pl-4 pr-2.5 text-[var(--oh-muted)]`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-[var(--oh-muted)]`,children:n(b.SIDEBAR$CONVERSATIONS)}),(0,X.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-0.5`,children:[(0,X.jsx)(rr,{backendKind:a.kind}),(0,X.jsx)(Xn,{filterMenuOpen:M,setFilterMenuOpen:N,menuRef:I,backendKind:a.kind,organizeMode:w,setOrganizeMode:E,conversationSort:D,setConversationSort:O,threadScope:k,setThreadScope:A,showOlderConversations:h,toggleShowOlderConversations:g,showRepoBranchMetadata:_,toggleShowRepoBranchMetadata:v,showLlmProfiles:y,toggleShowLlmProfiles:C,totalConversationsCount:V.length,onRequestDeleteAll:()=>m(!0)})]})]})}),(0,X.jsxs)(`div`,{ref:le,"data-testid":`conversation-panel-list-scroll`,onScroll:e=>{F(e.currentTarget.scrollTop>0)},className:B(`flex min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden overscroll-contain custom-scrollbar-always`,!t&&`conversation-panel-list-scroll`),children:[Xe&&(0,X.jsx)(Hn,{compact:t}),!t&&Ze&&(0,X.jsx)(`div`,{"data-testid":`conversation-panel-empty-state`,className:`flex min-h-0 flex-1 flex-col items-center justify-center px-4 py-8`,children:(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)]`,children:n(b.CONVERSATION$NO_CONVERSATIONS)})}),!t&&Te?.map(t=>(0,X.jsx)(xe,{to:`/conversations/task-${t.id}`,onClick:e,className:`block`,children:(0,X.jsx)(Vn,{task:t})},t.id)),!Xe&&t?ke.map(Ye):null,!Xe&&!t&&w===`grouped`&&W&&W.length>0?(0,X.jsx)(`nav`,{"aria-label":n(b.SIDEBAR$CONVERSATIONS),className:`space-y-1 md:space-y-0.5 pb-1`,children:W.map(e=>{let t=`thread-folder-${e.id.replace(/[^a-zA-Z0-9_-]/g,`-`)}`,i=e.id.replace(/[^a-zA-Z0-9_-]/g,`-`),a=!L.has(e.id),o=ie.has(e.id),{visibleConversations:s,isPreviewTruncated:c,isShowingAll:l}=ir(e.conversations,{expanded:o,activeConversationId:r});return(0,X.jsxs)(`section`,{"aria-labelledby":t,children:[(0,X.jsxs)(`div`,{className:B(`flex h-8 w-full min-w-0 items-center gap-0.5 rounded-md pl-2 pr-1 text-sm font-normal`,`text-[var(--oh-muted)] transition-colors`,`hover:bg-[var(--oh-surface-raised)] hover:text-white`),children:[(0,X.jsxs)(`button`,{type:`button`,id:t,"aria-expanded":a,onClick:()=>se(e.id),className:`flex min-h-8 min-w-0 flex-1 items-center gap-2 rounded-md py-1 text-left text-inherit outline-none transition-colors focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,children:[(0,X.jsx)(T,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`truncate`,children:e.label})]}),(0,X.jsx)(`button`,{type:`button`,className:B(`inline-flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-inherit transition-colors`,`hover:bg-white/10 hover:text-white`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,`disabled:cursor-not-allowed disabled:opacity-50`),disabled:Ve,"aria-label":n(b.CONVERSATION_PANEL$ADD_CONVERSATION_TO_GROUP,{label:e.label}),"data-testid":`add-conversation-to-group-${e.id.replace(/[^a-zA-Z0-9_-]/g,`-`)}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),He(e.launch)},children:(0,X.jsx)(ne,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0,strokeWidth:2})})]}),a?(0,X.jsxs)(`div`,{className:`mt-0.5 space-y-0.5`,children:[s.map(Ye),c?(0,X.jsx)(`div`,{className:`pl-2`,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`thread-folder-view-more-${i}`,onClick:()=>ce(e.id),className:`ml-[26px] cursor-pointer text-xs text-[var(--oh-text-dim)] hover:text-white`,children:n(l?b.CONVERSATION_PANEL$LESS:b.CONVERSATION_PANEL$MORE)})}):null]}):null]},e.id)})}):null,!Xe&&!t&&w===`chronological`?(0,X.jsx)(`div`,{className:`space-y-0.5`,children:De.map(Ye)}):null,Le&&(0,X.jsx)(`div`,{className:`flex justify-center py-4`,children:Ce?(0,X.jsx)(ge,{size:`small`}):(0,X.jsx)(`button`,{type:`button`,"data-testid":`load-more-conversations`,onClick:()=>we(),className:`text-xs text-[var(--oh-muted)] hover:text-white`,children:n(b.CONVERSATION$LOAD_MORE)})})]}),s&&(0,X.jsx)(j,{onConfirm:()=>{Ke(),c(!1),pe(null)},onCancel:()=>{c(!1),pe(null)},conversationTitle:fe??void 0}),p&&(0,X.jsx)(j,{title:n(b.CONVERSATION$CONFIRM_DELETE_ALL_TITLE),description:n(b.CONVERSATION$CONFIRM_DELETE_ALL_DESC,{count:V.length}),onConfirm:async()=>{await Je(),m(!1)},onCancel:()=>m(!1)}),l&&(0,X.jsx)(R,{onConfirm:()=>{qe(),u(!1)},onCancel:()=>u(!1)}),d&&(0,X.jsx)(yn,{onConfirm:()=>{e?.()},onClose:()=>f(!1),onCancel:()=>f(!1)})]})}function hr({collapsed:e}){return e?null:(0,X.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0`,children:(0,X.jsx)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col`,children:(0,X.jsx)(mr,{})})})}var gr=e=>(0,X.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 20 20`,fill:`none`,...e,children:[(0,X.jsx)(`mask`,{id:`mask0_18339_1445`,style:{maskType:`luminance`},maskUnits:`userSpaceOnUse`,x:1,y:1,width:18,height:18,children:(0,X.jsx)(`path`,{d:`M19 1H1V19H19V1Z`,fill:`white`})}),(0,X.jsxs)(`g`,{mask:`url(#mask0_18339_1445)`,children:[(0,X.jsx)(`path`,{d:`M10 18.1818V16.5454`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M10 1.81836V3.45472`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M1.81824 10H3.4546`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M18.1818 10H16.5454`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M5.93359 17.1019L6.74359 15.6782`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M14.0663 2.89844L13.2563 4.32208`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M2.89819 5.93359L4.32183 6.74359`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M17.1019 14.0663L15.6782 13.2563`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M5.92542 2.90625L6.7436 4.3217`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M14.0909 17.0854L13.2727 15.6699`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M17.0855 5.90918L15.67 6.72736`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M2.91455 14.0911L4.33001 13.2729`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M10 16.5455C13.615 16.5455 16.5455 13.615 16.5455 10C16.5455 6.38509 13.615 3.45459 10 3.45459C6.38509 3.45459 3.45459 6.38509 3.45459 10C3.45459 13.615 6.38509 16.5455 10 16.5455Z`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M12.5854 9.77916L8.80545 7.59461C8.63363 7.49643 8.41272 7.61916 8.41272 7.81552V12.1846C8.41272 12.381 8.62545 12.5119 8.80545 12.4055L12.5854 10.221C12.7573 10.1228 12.7573 9.86916 12.5854 9.77098V9.77916Z`,fill:`currentColor`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`})]})]}),$=18,_r=34,vr=Math.round(_r*30/46);function yr({collapsed:e,showCollapseToggle:t,showMobileCloseButton:n=!1,onCloseMobile:r,linkDisabled:i,collapseToggleLabel:a,onCollapse:o,onExpand:s,showCollapsedExpandButton:c,isExtensionsActive:l,currentPath:u,navigate:d,activeBackendHealth:f,collapsedBackendPopoverOpen:p,setCollapsedBackendPopoverOpen:m,collapsedBackendPopoverRef:h,collapsedBackendCloseTimer:g,onOpenAddBackend:_,onOpenManageBackends:y}){let{t:x}=S(`openhands`),C=g;return(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,X.jsxs)(`div`,{className:Ce(e),children:[(0,X.jsxs)(`div`,{className:B(e&&t?Te:`flex min-w-0 shrink-0 items-center`),children:[(0,X.jsx)(`div`,{className:B(e&&t&&`flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150`,e&&c&&`opacity-0`),children:(0,X.jsx)(nn,{logoWidth:_r,logoHeight:vr,logoClassName:`max-w-none`,className:B(De,`overflow-visible`)})}),e&&t?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":a,onClick:s,className:B(Se,c?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`),children:(0,X.jsx)(v,{width:14,height:14})}):null]}),!e&&t?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":a,onClick:o,className:B(`hidden md:inline-flex ml-auto`,H,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(M,{width:14,height:14})}):null,!e&&n?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-drawer-close`,onClick:r,"aria-label":x(b.SIDEBAR$CLOSE_MENU),className:B(`inline-flex ml-auto`,H,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(M,{width:14,height:14})}):null]}),(0,X.jsxs)(`nav`,{className:U(e),children:[(0,X.jsx)(ke,{to:`/conversations`,end:!0,label:`New Chat`,testId:`sidebar-conversations-link`,disabled:i,collapsed:e,icon:(0,X.jsx)(ne,{width:$,height:$})}),(0,X.jsx)(ke,{to:`/customize`,label:`Customize`,testId:`sidebar-skills-link`,disabled:i,collapsed:e,forceActive:l,icon:(0,X.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:$,height:$,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,X.jsx)(`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`}),(0,X.jsx)(`path`,{d:`m7 16.5-4.74-2.85`}),(0,X.jsx)(`path`,{d:`m7 16.5 5-3`}),(0,X.jsx)(`path`,{d:`M7 16.5v5.17`}),(0,X.jsx)(`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`}),(0,X.jsx)(`path`,{d:`m17 16.5-5-3`}),(0,X.jsx)(`path`,{d:`m17 16.5 4.74-2.85`}),(0,X.jsx)(`path`,{d:`m17 16.5v5.17`}),(0,X.jsx)(`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`}),(0,X.jsx)(`path`,{d:`M12 8 7.26 5.15`}),(0,X.jsx)(`path`,{d:`m12 8 4.74-2.85`}),(0,X.jsx)(`path`,{d:`M12 13.5V8`})]})}),(0,X.jsx)(ke,{to:`/automations`,label:x(b.SIDEBAR$AUTOMATIONS),testId:`sidebar-automations-link`,disabled:i,collapsed:e,icon:(0,X.jsx)(gr,{width:$,height:$})})]}),(0,X.jsx)(hr,{collapsed:e}),e&&t?(0,X.jsxs)(`nav`,{className:B(U(e),`mt-auto pb-2 cursor-pointer`),children:[(0,X.jsx)(G,{content:x(b.SIDEBAR$SETTINGS),placement:`right`,children:(0,X.jsxs)(`button`,{type:`button`,"data-testid":`collapsed-settings-link`,"aria-label":x(b.SIDEBAR$SETTINGS),onClick:()=>d(`/settings`),className:V({collapsed:!0}),children:[(0,X.jsx)(W,{active:u.startsWith(`/settings`),children:(0,X.jsx)(Qt,{width:$,height:$})}),(0,X.jsx)(`span`,{className:we(!0),children:x(b.SIDEBAR$SETTINGS)})]})}),(0,X.jsxs)(`div`,{className:`relative`,ref:h,onMouseEnter:()=>{C.current&&=(clearTimeout(C.current),null),m(!0)},onMouseLeave:()=>{C.current=setTimeout(()=>m(!1),150)},children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`collapsed-backend-selector-link`,"aria-label":x(b.BACKEND$MANAGE),"aria-expanded":p,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onMouseUp:e=>e.stopPropagation(),className:B(V({collapsed:!0}),`relative`),children:[(0,X.jsx)(W,{active:p,children:(0,X.jsxs)(`span`,{className:`relative inline-flex size-[18px] shrink-0 items-center justify-center`,children:[(0,X.jsx)(Ze,{isConnected:f?.isConnected??null,className:`absolute -left-0.5 -top-0.5 z-[1] pointer-events-none`}),(0,X.jsx)(Zt,{width:$,height:$})]})}),(0,X.jsx)(`span`,{className:we(!0),children:x(b.BACKEND$MANAGE)})]}),p?(0,X.jsx)(`div`,{className:`absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]`,onClick:e=>e.stopPropagation(),children:(0,X.jsx)(gn,{sidebarCollapsed:e,hideTrigger:!0,defaultOpen:!0,openUpward:!0,onSelectOption:()=>m(!1),onOpenAddBackend:_,onOpenManageBackends:y})}):null]})]}):null,e?null:(0,X.jsx)(`div`,{className:B(`flex flex-col items-stretch max-w-none box-border shrink-0`,`-ml-2.5 w-[calc(100%+0.625rem)] border-t border-[var(--oh-border)] pt-2 px-2.5`),children:(0,X.jsx)(gn,{sidebarCollapsed:e,openUpward:!0})})]})}var br=Y.lazy(()=>n(()=>import(`./settings-modal-Cv2YWSUY.js`).then(e=>({default:e.SettingsModal})),__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]))),xr=Y.lazy(()=>n(()=>import(`./add-backend-modal-CqjNjGqY.js`).then(e=>e.n).then(e=>({default:e.AddBackendModal})),__vite__mapDeps([47,1,9,48,13,49,50,16,15,17,10,40,39,18,19,45,20,21,7,29,32,12,31,51,44]))),Sr=Y.lazy(()=>n(()=>import(`./manage-backends-modal-DqpzcxdI.js`).then(e=>e.n).then(e=>({default:e.ManageBackendsModal})),__vite__mapDeps([52,1,13,49,15,16,17,9,10,53,54,55,56,18,19,48,50,40,39,45,20,21,7,29,32,12,31,51,44,57]))),Cr=250;function wr(){let{t:e}=S(`openhands`),{currentPath:t,navigate:n}=ye(),{data:r}=_e(),{data:i,error:a,isError:o,isFetching:s}=ft(),{backends:c,active:l}=oe(),u=Xe(c)[l.backend.id],d=Rt(e=>e.collapsed),f=Rt(e=>e.setCollapsed),[p,m]=Y.useState(!1),[h,g]=Y.useState(!1),_=Y.useRef(null),[v,y]=Y.useState(!1),[x,C]=Y.useState(!1),[w,T]=Y.useState(!1),E=Y.useRef(!1),[,D]=Y.useReducer(e=>e+1,0),{isOpen:O,close:k}=ee(),[A,j]=Y.useState(!1),[M,N]=Y.useState(!1),P=lt(()=>g(!1)),F=pt(a);Y.useEffect(()=>{k()},[t,k]),Y.useEffect(()=>{if(O){j(!0);let e=requestAnimationFrame(()=>{N(!0)});return()=>cancelAnimationFrame(e)}N(!1);let e=window.setTimeout(()=>{j(!1)},Cr);return()=>window.clearTimeout(e)},[O]),Y.useEffect(()=>{if(!O)return;let e=e=>{e.key===`Escape`&&k()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[O,k]),Y.useEffect(()=>{t===`/settings`?m(!1):!s&&o&&F!==404?z(`Something went wrong while fetching settings. Please reload the page.`):F===404&&!r?.feature_flags?.hide_llm_settings&&m(!0)},[t,s,o,F,r?.feature_flags?.hide_llm_settings]);let I=i?.email_verified===!1,L=e(d?b.SIDEBAR$EXPAND:b.SIDEBAR$COLLAPSE),R=Y.useCallback(e=>{if(!d)return;let t=e.target;t instanceof HTMLElement&&(t.closest(`a,button,input,textarea,select,[role='button'],[role='link']`)||f(!1))},[d,f]),te={linkDisabled:I,collapseToggleLabel:L,onCollapse:Y.useCallback(()=>{T(!1),E.current=!0,D(),f(!0),window.setTimeout(()=>{E.current=!1,D()},250)},[f]),onExpand:()=>f(!1),showCollapsedExpandButton:d&&w&&!E.current,isExtensionsActive:t===`/customize`||t.startsWith(`/skills`)||t===`/plugins`||t===`/mcp`,currentPath:t,navigate:n,activeBackendHealth:u,collapsedBackendPopoverOpen:h,setCollapsedBackendPopoverOpen:g,collapsedBackendPopoverRef:P,collapsedBackendCloseTimer:_,onOpenAddBackend:()=>y(!0),onOpenManageBackends:()=>C(!0)};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`aside`,{"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),"data-collapsed":d?`true`:`false`,onClick:R,onMouseEnter:()=>{d&&T(!0)},onMouseLeave:()=>{T(!1)},className:B(`max-md:hidden flex bg-base flex-col min-h-0 transition-[width,min-width] duration-200`,`md:border-r md:border-[var(--oh-border)] md:h-full`,d?`md:w-[60px] md:min-w-[60px] md:px-2.5`:`md:w-[300px] md:min-w-[300px] pb-2 md:pl-2.5 md:pr-0`,t===`/`&&`md:pb-3`),children:(0,X.jsx)(yr,{collapsed:d,showCollapseToggle:!0,...te})}),A?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:B(`fixed inset-0 z-40 bg-black/50 md:hidden`,`transition-opacity ease-in-out motion-reduce:transition-none`,M?`opacity-100`:`pointer-events-none opacity-0`),style:{transitionDuration:`${Cr}ms`},onClick:k,"aria-hidden":!M}),(0,X.jsx)(`aside`,{"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),"data-testid":`sidebar-mobile-drawer`,"aria-hidden":!M,className:B(`fixed inset-y-0 left-0 z-50 flex min-h-0 w-[min(300px,85vw)] flex-col bg-base`,`border-r border-[var(--oh-border)] pb-2 pl-2.5 pr-0 md:hidden`,`transition-transform ease-in-out motion-reduce:transition-none`,M?`translate-x-0`:`-translate-x-full`),style:{transitionDuration:`${Cr}ms`},children:(0,X.jsx)(yr,{collapsed:!1,showCollapseToggle:!1,showMobileCloseButton:!0,onCloseMobile:k,...te})})]}):null,p&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(br,{settings:i,onClose:()=>m(!1)})}),v&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(xr,{onClose:()=>y(!1)})}),x&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Sr,{onClose:()=>C(!1)})})]})}var Tr=`/settings`,Er=`/customize`,Dr=[`/skills`,`/mcp`,`/plugins`];function Or(e){return e===Tr?{mode:`menu`}:e.startsWith(`${Tr}/`)&&e.length>9?{mode:`back`,backTo:Tr,backLabelKey:b.SETTINGS$TITLE}:e===Er?{mode:`menu`}:Dr.some(t=>e===t||e.startsWith(`${t}/`))?{mode:`back`,backTo:Er,backLabelKey:b.NAV$EXTENSIONS}:{mode:`menu`}}function kr(){let{t:e}=S(`openhands`),{currentPath:t,navigate:n}=ye(),r=Or(t);return(0,X.jsxs)(`header`,{className:`flex md:hidden h-12 shrink-0 items-center gap-2 px-2.5`,"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),children:[(0,X.jsx)(L,{}),r.mode===`back`&&r.backTo?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-back-button`,onClick:()=>n(r.backTo),"aria-label":e(r.backLabelKey??b.COMMON$BACK),className:F,children:(0,X.jsx)(M,{size:20,className:N,"aria-hidden":!0,strokeWidth:2})}):null]})}var Ar=()=>{let e=se(),{mutate:t}=Bt();return{migrateUserConsent:Y.useCallback(async n=>{let r=localStorage.getItem(`analytics-consent`);r&&(n?.handleAnalyticsWasPresentInLocalStorage(),t({user_consents_to_analytics:r===`true`},{onSuccess:()=>{zt(e,r===`true`)}}),localStorage.removeItem(`analytics-consent`))},[e,t])}},jr=()=>{let e=se(),{data:t}=ft(),n=Y.useRef(!1);Y.useEffect(()=>{if(!e||t===void 0||n.current)return;let r=t.user_consents_to_analytics;if(r!==null){let t=e.has_opted_in_capturing(),i=e.has_opted_out_capturing();(r===!0&&!t||r===!1&&!i)&&zt(e,r),n.current=!0}},[e,t])};function Mr(e){switch(e){case K.RUNNING:return`🟢`;case K.FINISHED:case K.IDLE:case K.WAITING_FOR_CONFIRMATION:return`✅`;case K.PAUSED:return`⚪`;case K.ERROR:case K.STUCK:return`🔴`;default:return null}}var Nr=`OpenHands`,Pr=()=>{let{conversationId:e}=l(),{data:t}=Vt(e??null),n=Ht(e=>e.execution_status),r=t?.title,i=e&&r?`${r} | ${Nr}`:Nr;if(!e)return i;let a=Mr(n??t?.execution_status??null);return a?`${a} ${i}`:i};function Fr({children:e}){let{pathname:t}=p(),n=s(),r=c(),i=f(),a=Y.useMemo(()=>{for(let e=i.length-1;e>=0;--e){let t=i[e]?.params?.conversationId;if(t)return t}return null},[i]);return(0,X.jsx)(be,{value:Y.useMemo(()=>({currentPath:t,conversationId:a,isNavigating:!!r.location,navigate:(e,t)=>n(e,t)}),[t,a,r.location,n]),children:e})}var Ir=Y.lazy(()=>n(()=>import(`./environment-switch-overlay-DQ1n6Iu6.js`),__vite__mapDeps([58,1,12,10,9,18,19,59]))),Lr=Y.lazy(()=>n(()=>import(`./analytics-consent-form-modal-BKgT9i2w.js`).then(e=>({default:e.AnalyticsConsentFormModal})),__vite__mapDeps([60,27,1,28,10,9,18,19,20,21,7,30,31,32,12,34,35,16,36,17,37,13,38,39,40,41,42,43,15,44,45,61]))),Rr=Y.lazy(()=>n(()=>import(`./alert-banner-CvTYN73l.js`).then(e=>({default:e.AlertBanner})),__vite__mapDeps([62,1,63,10,9,18,19,64,65,21,7,33,66,67,24]))),zr=u(function(){let e=a(),{t}=S(`openhands`);return i(e)?(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:e.status}),(0,X.jsx)(`p`,{children:e.statusText}),(0,X.jsx)(`pre`,{children:e.data instanceof Object?JSON.stringify(e.data):e.data})]}):e instanceof Error?(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:t(b.ERROR$GENERIC)}),(0,X.jsx)(`pre`,{children:e.message})]}):(0,X.jsx)(`div`,{children:(0,X.jsx)(`h1`,{children:t(b.ERROR$UNKNOWN)})})}),Br=o(function(){let e=p(),t=Pr(),{data:n}=ft(),{migrateUserConsent:r}=Ar(),i=_e(),[a,o]=Y.useState(!1);if(jr(),Y.useEffect(()=>{n?.language&&C.changeLanguage(n.language)},[n?.language]),Y.useEffect(()=>{o(n?.user_consents_to_analytics===null)},[n?.user_consents_to_analytics]),Y.useEffect(()=>{r({handleAnalyticsWasPresentInLocalStorage:()=>{o(!1)}})},[r]),i.isLoading)return(0,X.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-base`,children:(0,X.jsx)(ge,{size:`large`})});let s=/^\/conversations\/[^/]+/.test(e.pathname);return(0,X.jsx)(Fr,{children:(0,X.jsxs)(k,{children:[(0,X.jsxs)(`div`,{"data-testid":`root-layout`,className:`h-screen lg:min-w-5xl flex flex-col md:flex-row bg-base overflow-hidden p-0`,children:[(0,X.jsx)(`title`,{children:t}),(0,X.jsx)(wr,{}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col w-full min-w-0 h-full gap-3`,children:[s?null:(0,X.jsx)(kr,{}),i.data&&(i.data.maintenance_start_time||i.data.faulty_models&&i.data.faulty_models.length>0||i.data.error_message)&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Rr,{maintenanceStartTime:i.data.maintenance_start_time,faultyModels:i.data.faulty_models,errorMessage:i.data.error_message,updatedAt:i.data.updated_at})}),(0,X.jsx)(`div`,{id:`root-outlet`,className:`relative flex-1 overflow-auto px-0 custom-scrollbar`,children:(0,X.jsx)(d,{})})]}),a&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Lr,{onClose:()=>{o(!1)}})})]}),(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Ir,{})})]})})});export{zr as ErrorBoundary,Br as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,t}from"./agent-server-client-options-8OJSXbm8.js";import{t as n}from"./settings-client-CkXDJwIY.js";import{t as r}from"./proxy-BMZyC45G.js";import{t as i}from"./settings-D5am1n6X.js";var a=`openhands-agent-server-app-preferences`,o=[`language`,`user_consents_to_analytics`,`enable_sound_notifications`,`git_user_name`,`git_user_email`],s=new Set(o),c=e=>s.has(e),l=(e,t)=>{switch(e){case`language`:case`git_user_name`:case`git_user_email`:return typeof t==`string`?t:void 0;case`enable_sound_notifications`:return typeof t==`boolean`?t:void 0;case`user_consents_to_analytics`:return t===null?null:typeof t==`boolean`?t:void 0;default:return}},u=e=>{let t={};for(let n of o)if(n in e){let r=l(n,e[n]);r!==void 0&&(t[n]=r)}return t},d=()=>{if(typeof window>`u`)return{};try{let e=window.localStorage.getItem(a);if(!e)return{};let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?{}:u(t)}catch{return{}}},f=e=>{if(typeof window>`u`)return;let t=u(e),n={...d(),...t};if(Object.keys(n).length===0){window.localStorage.removeItem(a);return}window.localStorage.setItem(a,JSON.stringify(n))},p=e=>{let t={},n={};for(let[r,i]of Object.entries(e))if(c(r)){let e=l(r,i);e!==void 0&&(t[r]=e)}else n[r]=i;return{extracted:t,rest:n}};function m(){let t=e().backend;if(t.kind!==`cloud`)throw Error(`Cloud settings call requires a cloud backend.`);return t}function h(e){if(e.agent_settings&&Object.keys(e.agent_settings).length>0)return e.agent_settings;let t={},n={};typeof e.llm_model==`string`&&(n.model=e.llm_model),typeof e.llm_base_url==`string`&&(n.base_url=e.llm_base_url),typeof e.llm_api_key==`string`&&(n.api_key=e.llm_api_key),Object.keys(n).length>0&&(t.llm=n);let r={};return typeof e.enable_default_condenser==`boolean`&&(r.enabled=e.enable_default_condenser),typeof e.condenser_max_size==`number`&&(r.max_size=e.condenser_max_size),Object.keys(r).length>0&&(t.condenser=r),typeof e.agent==`string`&&(t.agent=e.agent),t}function g(e){if(e.conversation_settings&&Object.keys(e.conversation_settings).length>0)return e.conversation_settings;let t={};return typeof e.confirmation_mode==`boolean`&&(t.confirmation_mode=e.confirmation_mode),(typeof e.security_analyzer==`string`||e.security_analyzer===null)&&(t.security_analyzer=e.security_analyzer),typeof e.max_iterations==`number`&&(t.max_iterations=e.max_iterations),t}async function _(){let e=await r({backend:m(),method:`GET`,path:`/api/v1/settings`});return{...e,agent_settings:h(e),conversation_settings:g(e),llm_api_key_set:!!e.llm_api_key_set,search_api_key_set:!!e.search_api_key_set,provider_tokens_set:e.provider_tokens_set}}async function v(e){let t=m(),n={};if(e.agent_settings_diff&&Object.keys(e.agent_settings_diff).length>0&&(n.agent_settings_diff=e.agent_settings_diff),e.conversation_settings_diff&&Object.keys(e.conversation_settings_diff).length>0&&(n.conversation_settings_diff=e.conversation_settings_diff),e.disabled_skills!==void 0&&(n.disabled_skills=e.disabled_skills),e.app_preferences)for(let[t,r]of Object.entries(e.app_preferences))n[t]=r;await r({backend:t,method:`POST`,path:`/api/v1/settings`,body:n})}async function y(){return r({backend:m(),method:`GET`,path:`/api/v1/settings/agent-schema`})}async function b(){return r({backend:m(),method:`GET`,path:`/api/v1/settings/conversation-schema`})}var x=e=>JSON.parse(JSON.stringify(e)),S=(e,t)=>({...e??{},...t??{}});async function C(e,t=3,n=500){for(let r=0;r<t;r+=1)try{return await e()}catch(e){if(r>=t-1)throw e;let i=n*2**r;await new Promise(e=>{setTimeout(e,i)})}throw Error(`Retry attempts exhausted`)}var w={redacted:null,encrypted:null,timestamp:0},T=300*1e3,E=()=>Date.now()-w.timestamp<T,D=()=>{w={redacted:null,encrypted:null,timestamp:0}},O=e=>({agent_settings:e.agent_settings??{},conversation_settings:e.conversation_settings??{},llm_api_key_set:e.llm_api_key_is_set}),k=e=>{let t=S(i.agent_settings??{},e.agent_settings??{}),n=S(i.conversation_settings??{},e.conversation_settings??{}),r=d(),a={...x(i),...r,...e,provider_tokens_set:{...i.provider_tokens_set??{},...e.provider_tokens_set??{}},agent_settings:t,conversation_settings:n},o=t.llm,s=t.condenser;return typeof t.agent==`string`&&(a.agent=t.agent),typeof o?.model==`string`&&o.model.length>0&&(a.llm_model=o.model),typeof o?.base_url==`string`&&(a.llm_base_url=o.base_url),typeof s?.enabled==`boolean`&&(a.enable_default_condenser=s.enabled),typeof s?.max_size==`number`&&(a.condenser_max_size=s.max_size),t.mcp_config&&(a.mcp_config=t.mcp_config),typeof n.confirmation_mode==`boolean`&&(a.confirmation_mode=n.confirmation_mode),(typeof n.security_analyzer==`string`||n.security_analyzer===null)&&(a.security_analyzer=n.security_analyzer),typeof n.max_iterations==`number`&&(a.max_iterations=n.max_iterations),a.search_api_key_set=!!a.search_api_key,a},A=class r{static async fetchSettingsFromApi(e){return C(()=>new n(t()).getSettings({exposeSecrets:e}))}static async getSettings(){if(e().backend.kind===`cloud`)try{return k(await C(()=>_()))}catch(e){return console.warn(`Failed to fetch cloud settings, using defaults:`,e),k({})}if(E()&&w.redacted)return k(O(w.redacted));try{let e=await this.fetchSettingsFromApi();return w.redacted=e,w.timestamp=Date.now(),k(O(e))}catch(e){return console.warn(`Failed to fetch settings from API, using defaults:`,e),k({})}}static async getSettingsForConversation(){if(E()&&w.encrypted)return{agentSettings:w.encrypted.agent_settings,conversationSettings:w.encrypted.conversation_settings,secretsEncrypted:!0};let e=await this.fetchSettingsFromApi(`encrypted`);return w.encrypted=e,w.timestamp||=Date.now(),{agentSettings:e.agent_settings,conversationSettings:e.conversation_settings,secretsEncrypted:!0}}static async getSettingsSchema(){return e().backend.kind===`cloud`?await y():await new n(t()).getAgentSchema()}static async getConversationSettingsSchema(){return e().backend.kind===`cloud`?await b():await new n(t()).getConversationSchema()}static async saveSettings(i){let{extracted:a,rest:o}=p(i),s=Object.keys(a).length>0;s&&f(a);let c={},l=o.agent_settings_diff;l&&Object.keys(l).length>0&&(c.agent_settings_diff=l);let u=o.conversation_settings_diff;u&&Object.keys(u).length>0&&(c.conversation_settings_diff=u);let d=o.disabled_skills;Array.isArray(d)&&(c.disabled_skills=d);let m=e().backend.kind===`cloud`,h=c.agent_settings_diff,g=!!h&&`mcp_config`in h&&h.mcp_config!==null,y;if(g)try{y=m?(await _())?.agent_settings?.mcp_config:(await r.fetchSettingsFromApi())?.agent_settings?.mcp_config}catch{}if(m){if(!(c.agent_settings_diff||c.conversation_settings_diff||c.disabled_skills!==void 0||s))return!0;g&&await C(()=>v({agent_settings_diff:{mcp_config:null}}));try{await C(()=>v({...c,...s?{app_preferences:a}:{}}))}catch(e){if(g&&y)try{await v({agent_settings_diff:{mcp_config:y}})}catch{}throw e}}else{let e={...c};if(delete e.disabled_skills,!(e.agent_settings_diff||e.conversation_settings_diff))return s&&D(),!0;g&&await C(()=>new n(t()).updateSettings({agent_settings_diff:{mcp_config:null}}));try{await C(()=>new n(t()).updateSettings(e))}catch(e){if(g&&y)try{await new n(t()).updateSettings({agent_settings_diff:{mcp_config:y}})}catch{}throw e}}return D(),!0}static invalidateCache(){D()}};export{A as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-DlKA6SoO.js";var t=()=>e({queryKey:[`user`,`authenticated`],queryFn:async()=>!0,staleTime:1e3*60*5,gcTime:1e3*60*15,retry:!1,meta:{disableToast:!0}});export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as e,y as t}from"./utils-Czcl6buL.js";import{n}from"./status-DDL-ipIP.js";import{t as r}from"./use-active-conversation-Bu5J9iLy.js";import{t as i}from"./use-agent-state-DN9Nc5pP.js";var a=({allowAgentError:a=!1}={})=>{let{data:o}=r(),{curAgentState:s}=i(),c=a?t:e;return n(o?.execution_status)&&!c.includes(s)};export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-DlKA6SoO.js";import{n as t}from"./active-backend-context-CkP3ZEJs.js";import{t as n}from"./agent-server-conversation-service.api-BdEre_71.js";var r=1e3*60*5,i=1e3*60*15,a=(a,o)=>{let s=t();return e({queryKey:[`user`,`conversation`,a,s.backend.id,s.orgId],queryFn:async()=>a?(await n.batchGetAppConversations([a]))[0]??null:null,enabled:!!a&&!a.startsWith(`task-`),retry:!1,refetchInterval:o,staleTime:r,gcTime:i})};export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./createLucideIcon-Ddu8jDOQ.js";import{n as r,r as i,t as a}from"./git-branch-DQS2nMK4.js";import{l as o}from"./circle-plus-check-toggle-DRvuu-RD.js";import{_ as s,a as c,b as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,x as E,y as D}from"./vendor~home~mcp~automations-list-BUBGGGYz.js";var O=n(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),k=n(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),A=n(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),j=n(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),M=n(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),N=n(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),P=n(`list-tree`,[[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`M3 10a2 2 0 0 0 2 2h3`,key:`1npucw`}],[`path`,{d:`M3 5v12a2 2 0 0 0 2 2h3`,key:`x1gjn2`}]]),F=n(`mouse-pointer-click`,[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]),I=n(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),L=n(`telescope`,[[`path`,{d:`m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44`,key:`k4qptu`}],[`path`,{d:`m13.56 11.747 4.332-.924`,key:`19l80z`}],[`path`,{d:`m16 21-3.105-6.21`,key:`7oh9d`}],[`path`,{d:`M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z`,key:`m7xp4m`}],[`path`,{d:`m6.158 8.633 1.114 4.456`,key:`74o979`}],[`path`,{d:`m8 21 3.105-6.21`,key:`1fvxut`}],[`circle`,{cx:`12`,cy:`13`,r:`2`,key:`1c1ljs`}]]),R=n(`test-tube`,[[`path`,{d:`M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2`,key:`125lnx`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}],[`path`,{d:`M14.5 16h-5`,key:`1ox875`}]]),z=[{id:`github`,name:`GitHub`,description:`Search code, manage issues and pull requests, and inspect repos via the GitHub API.`,docsUrl:`https://github.com/github/github-mcp-server`,iconBg:`var(--oh-surface)`,keywords:[`git`,`pr`,`repo`,`issues`,`code`],popularityRank:100,installHint:`Requires Docker because the legacy npm package was deprecated upstream.`,template:{kind:`stdio`,serverName:`github`,command:`docker`,args:[`run`,`-i`,`--rm`,`-e`,`GITHUB_PERSONAL_ACCESS_TOKEN`,`ghcr.io/github/github-mcp-server`],envFields:[{key:`GITHUB_PERSONAL_ACCESS_TOKEN`,label:`Personal access token`,type:`password`,placeholder:`github_pat_...`,required:!0}]}},{id:`slack`,name:`Slack`,description:`Read channels, post messages, and search workspace history from your agent.`,docsUrl:`https://github.com/zencoderai/slack-mcp-server`,iconBg:`#4A154B`,keywords:[`chat`,`messaging`,`team`],popularityRank:95,installHint:`Create a Slack app with the required scopes, then paste its bot token below.`,template:{kind:`stdio`,serverName:`slack`,command:`npx`,args:[`-y`,`@zencoderai/slack-mcp-server`],envFields:[{key:`SLACK_BOT_TOKEN`,label:`Bot token`,type:`password`,placeholder:`xoxb-...`,required:!0},{key:`SLACK_TEAM_ID`,label:`Team / Workspace ID`,type:`text`,placeholder:`T01234567`,helperText:`Find this in Slack under Workspace settings → About this workspace.`,required:!0}]}},{id:`tavily`,name:`Tavily`,description:`Production-grade web search optimized for LLM agents. Free tier available.`,docsUrl:`https://github.com/tavily-ai/tavily-mcp`,iconBg:`#2563EB`,keywords:[`search`,`web`,`browsing`,`research`],popularityRank:90,installHint:`Paste your Tavily API key — the official tavily-mcp package runs via npx.`,template:{kind:`stdio`,serverName:`tavily`,command:`npx`,args:[`-y`,`tavily-mcp`],envFields:[{key:`TAVILY_API_KEY`,label:`Tavily API key`,type:`password`,placeholder:`tvly-...`,required:!0}]}},{id:`linear`,name:`Linear`,description:`Browse and update Linear issues, cycles, and projects from the agent.`,docsUrl:`https://linear.app/changelog/2025-05-01-mcp`,iconBg:`#5E6AD2`,keywords:[`issues`,`project management`,`tasks`,`tickets`],popularityRank:86,installHint:`Linear's hosted MCP server uses your Linear OAuth login — no key required.`,template:{kind:`sse`,url:`https://mcp.linear.app/sse`,apiKeyOptional:!0}},{id:`notion`,name:`Notion`,description:`Read and edit Notion pages, databases, and blocks via Notion's MCP server.`,docsUrl:`https://developers.notion.com/docs/mcp`,iconBg:`#FFFFFF`,iconColor:`#000000`,keywords:[`docs`,`notes`,`wiki`,`knowledge base`],popularityRank:82,template:{kind:`stdio`,serverName:`notion`,command:`npx`,args:[`-y`,`@notionhq/notion-mcp-server`],envFields:[{key:`NOTION_API_KEY`,label:`Internal integration token`,type:`password`,placeholder:`ntn_...`,required:!0}]}},{id:`atlassian`,name:`Atlassian (Jira & Confluence)`,description:`Search Jira issues and Confluence pages via Atlassian's hosted MCP server.`,docsUrl:`https://www.atlassian.com/platform/remote-mcp-server`,iconBg:`#0052CC`,keywords:[`jira`,`confluence`,`tickets`,`wiki`,`issues`],template:{kind:`sse`,url:`https://mcp.atlassian.com/v1/sse`,apiKeyOptional:!0}},{id:`sentry`,name:`Sentry`,description:`Triage issues, inspect events, and run Seer fixes against your Sentry org.`,docsUrl:`https://docs.sentry.io/product/sentry-mcp/`,iconBg:`#362D59`,keywords:[`errors`,`observability`,`monitoring`,`crash`],template:{kind:`shttp`,url:`https://mcp.sentry.dev/mcp`,apiKeyOptional:!0}},{id:`stripe`,name:`Stripe`,description:`Query customers, payments, subscriptions, and invoices via Stripe's hosted MCP server.`,docsUrl:`https://stripe.com/docs/mcp`,iconBg:`#635BFF`,keywords:[`payments`,`billing`,`subscriptions`,`finance`],template:{kind:`shttp`,url:`https://mcp.stripe.com/`,apiKeyOptional:!0}},{id:`paypal`,name:`PayPal`,description:`Manage transactions and merchant data via PayPal's MCP server.`,docsUrl:`https://developer.paypal.com/tools/mcp-server/`,iconBg:`#003087`,keywords:[`payments`,`billing`,`finance`],template:{kind:`sse`,url:`https://mcp.paypal.com/sse`,apiKeyOptional:!0}},{id:`cloudflare-docs`,name:`Cloudflare Docs`,description:`Search and reference Cloudflare's developer documentation directly from the agent.`,docsUrl:`https://developers.cloudflare.com/agents/model-context-protocol/`,iconBg:`#F38020`,keywords:[`cloudflare`,`docs`,`reference`,`workers`],template:{kind:`sse`,url:`https://docs.mcp.cloudflare.com/sse`,apiKeyOptional:!0}},{id:`cloudflare-bindings`,name:`Cloudflare Workers Bindings`,description:`Inspect and manage KV, D1, R2, and Durable Object bindings on your Cloudflare account.`,docsUrl:`https://developers.cloudflare.com/agents/model-context-protocol/`,iconBg:`#F38020`,keywords:[`cloudflare`,`workers`,`kv`,`d1`,`r2`,`durable objects`],template:{kind:`sse`,url:`https://bindings.mcp.cloudflare.com/sse`,apiKeyOptional:!0}},{id:`cloudflare-observability`,name:`Cloudflare Observability`,description:`Tail Workers logs and query observability data from your Cloudflare account.`,docsUrl:`https://developers.cloudflare.com/agents/model-context-protocol/`,iconBg:`#F38020`,keywords:[`cloudflare`,`logs`,`tail`,`observability`,`workers`],template:{kind:`sse`,url:`https://observability.mcp.cloudflare.com/sse`,apiKeyOptional:!0}},{id:`huggingface`,name:`Hugging Face`,description:`Search models, datasets, and Spaces on the Hugging Face Hub from your agent.`,docsUrl:`https://huggingface.co/docs/huggingface_hub/en/guides/mcp`,iconBg:`#FFD21E`,iconColor:`#000000`,keywords:[`ml`,`models`,`datasets`,`ai`,`hub`],template:{kind:`shttp`,url:`https://huggingface.co/mcp`,apiKeyOptional:!0}},{id:`deepwiki`,name:`DeepWiki`,description:`Ask grounded questions about any public GitHub repository via Devin's DeepWiki MCP.`,docsUrl:`https://docs.devin.ai/work-with-devin/deepwiki-mcp`,iconBg:`var(--oh-color-base)`,keywords:[`devin`,`code`,`wiki`,`github`,`docs`,`qa`],template:{kind:`sse`,url:`https://mcp.deepwiki.com/sse`,apiKeyOptional:!0}},{id:`git`,name:`Git`,description:`Local git repository operations: log, diff, blame, status, and more.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/git`,iconBg:`#F1502F`,availability:`local`,keywords:[`version control`,`log`,`diff`,`blame`],installHint:`Runs the official Python server via uvx — no setup beyond the path.`,template:{kind:`stdio`,serverName:`git`,command:`uvx`,args:[`mcp-server-git`,`--repository`],argFields:[{key:`repo_path`,label:`Repository path`,type:`text`,placeholder:`/Users/me/code/my-repo`,required:!0,helperText:`Appended as --repository <path>.`}]}},{id:`brave-search`,name:`Brave Search`,description:`Privacy-first web and local search using the Brave Search API.`,docsUrl:`https://github.com/brave/brave-search-mcp-server`,iconBg:`#FB542B`,keywords:[`search`,`web`],template:{kind:`stdio`,serverName:`brave_search`,command:`npx`,args:[`-y`,`@brave/brave-search-mcp-server`,`--transport`,`stdio`],envFields:[{key:`BRAVE_API_KEY`,label:`Brave API key`,type:`password`,required:!0}]}},{id:`exa`,name:`Exa`,description:`Neural web search with semantic ranking, content extraction, and similar-page lookup.`,docsUrl:`https://docs.exa.ai/reference/exa-mcp`,iconBg:`var(--oh-surface)`,keywords:[`search`,`web`,`research`,`neural`],template:{kind:`stdio`,serverName:`exa`,command:`npx`,args:[`-y`,`exa-mcp-server`],envFields:[{key:`EXA_API_KEY`,label:`Exa API key`,type:`password`,required:!0}]}},{id:`firecrawl`,name:`Firecrawl`,description:`Crawl any site and return clean markdown, structured data, or screenshots.`,docsUrl:`https://docs.firecrawl.dev/mcp`,iconBg:`#F97316`,keywords:[`scraping`,`crawl`,`web`,`markdown`],template:{kind:`stdio`,serverName:`firecrawl`,command:`npx`,args:[`-y`,`firecrawl-mcp`],envFields:[{key:`FIRECRAWL_API_KEY`,label:`Firecrawl API key`,type:`password`,required:!0}]}},{id:`apify`,name:`Apify Actors`,description:`Run any of Apify's 5,000+ Actors (scrapers, automations) from the agent.`,docsUrl:`https://docs.apify.com/platform/integrations/mcp`,iconBg:`#10b981`,keywords:[`scraping`,`automation`,`crawl`,`actors`],template:{kind:`stdio`,serverName:`apify`,command:`npx`,args:[`-y`,`@apify/actors-mcp-server`],envFields:[{key:`APIFY_TOKEN`,label:`Apify token`,type:`password`,required:!0}]}},{id:`fetch`,name:`Fetch`,description:`Plain HTTP fetcher: download a URL and convert HTML to readable markdown.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/fetch`,iconBg:`var(--oh-interactive-hover)`,keywords:[`http`,`web`,`url`,`scrape`],template:{kind:`stdio`,serverName:`fetch`,command:`uvx`,args:[`mcp-server-fetch`]}},{id:`browser-mcp`,name:`Browser MCP`,description:`Control your local browser tab — navigate, click, type, and read DOM contents.`,docsUrl:`https://browsermcp.io/`,iconBg:`#0EA5E9`,availability:`local`,keywords:[`browser`,`automation`,`chrome`,`playwright`],template:{kind:`stdio`,serverName:`browser_mcp`,command:`npx`,args:[`-y`,`@browsermcp/mcp`]}},{id:`playwright`,name:`Playwright`,description:`Headless-browser automation backed by Microsoft Playwright.`,docsUrl:`https://github.com/microsoft/playwright-mcp`,iconBg:`#2EAD33`,keywords:[`browser`,`automation`,`e2e`,`testing`,`scrape`],template:{kind:`stdio`,serverName:`playwright`,command:`npx`,args:[`-y`,`@playwright/mcp`]}},{id:`supabase`,name:`Supabase`,description:`Query and manage your Supabase project, including database, auth, and storage.`,docsUrl:`https://supabase.com/docs/guides/getting-started/mcp`,iconBg:`#3ECF8E`,keywords:[`database`,`auth`,`storage`,`postgres`],template:{kind:`stdio`,serverName:`supabase`,command:`npx`,args:[`-y`,`@supabase/mcp-server-supabase@latest`],envFields:[{key:`SUPABASE_ACCESS_TOKEN`,label:`Supabase access token`,type:`password`,required:!0,helperText:`Personal access token from your Supabase dashboard.`}]}},{id:`neon`,name:`Neon`,description:`Serverless Postgres: list projects, run queries, manage branches.`,docsUrl:`https://neon.com/docs/ai/neon-mcp-server`,iconBg:`#00E599`,iconColor:`var(--oh-surface-deep)`,keywords:[`database`,`postgres`,`serverless`],template:{kind:`stdio`,serverName:`neon`,command:`npx`,args:[`-y`,`@neondatabase/mcp-server-neon`,`start`],envFields:[{key:`NEON_API_KEY`,label:`Neon API key`,type:`password`,required:!0}]}},{id:`mongodb`,name:`MongoDB`,description:`Query MongoDB collections, inspect schemas, and run aggregation pipelines.`,docsUrl:`https://www.mongodb.com/docs/mcp-server/`,iconBg:`#00684A`,keywords:[`database`,`nosql`,`atlas`],template:{kind:`stdio`,serverName:`mongodb`,command:`npx`,args:[`-y`,`mongodb-mcp-server`],envFields:[{key:`MDB_MCP_CONNECTION_STRING`,label:`MongoDB connection string`,type:`password`,placeholder:`mongodb+srv://user:pass@cluster.mongodb.net`,required:!0}]}},{id:`redis`,name:`Redis`,description:`Get, set, scan, and inspect data on a Redis or Redis-compatible instance.`,docsUrl:`https://github.com/redis/mcp-redis`,iconBg:`#DC382D`,availability:`local`,keywords:[`cache`,`kv`,`database`],template:{kind:`stdio`,serverName:`redis`,command:`uvx`,args:[`--from`,`redis-mcp-server@latest`,`redis-mcp-server`,`--url`],argFields:[{key:`redis_url`,label:`Redis URL`,type:`password`,placeholder:`redis://localhost:6379`,required:!0,helperText:`Appended as --url <redis_url>.`}]}},{id:`filesystem`,name:`Filesystem`,description:`Give the agent secure, scoped filesystem access outside the workspace.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem`,iconBg:`var(--oh-interactive-hover)`,availability:`local`,keywords:[`files`,`local`,`disk`],installHint:`Each path is exposed read/write. Add as many as you need, separated by spaces.`,template:{kind:`stdio`,serverName:`filesystem`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-filesystem`],argFields:[{key:`paths`,label:`Paths (space separated)`,type:`text`,placeholder:`/Users/me/Documents /Users/me/Projects`,required:!0,helperText:`Each whitespace-separated token is appended as its own argument.`}]}},{id:`memory`,name:`Memory`,description:`Persistent key-value memory for the agent across conversations.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/memory`,iconBg:`#7C3AED`,keywords:[`memory`,`kv`,`state`,`persistence`],template:{kind:`stdio`,serverName:`memory`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-memory`]}},{id:`sequential-thinking`,name:`Sequential Thinking`,description:`Lets the agent emit and revise a chain of structured thoughts.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking`,iconBg:`var(--oh-color-base)`,keywords:[`reasoning`,`planning`,`thoughts`],template:{kind:`stdio`,serverName:`sequential_thinking`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-sequential-thinking`]}},{id:`time`,name:`Time`,description:`Timezone-aware current time, conversions, and timestamp formatting.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/time`,iconBg:`var(--oh-surface)`,keywords:[`clock`,`timezone`,`date`],template:{kind:`stdio`,serverName:`time`,command:`uvx`,args:[`mcp-server-time`]}},{id:`everything`,name:`Everything (demo)`,description:`Reference server exercising every MCP capability — useful for testing.`,docsUrl:`https://github.com/modelcontextprotocol/servers/tree/main/src/everything`,iconBg:`#6366F1`,keywords:[`demo`,`test`,`reference`],template:{kind:`stdio`,serverName:`everything`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-everything`]}},{id:`figma`,name:`Figma`,description:`Read Figma frames, components, and styles to ground UI work in your designs.`,docsUrl:`https://github.com/GLips/Figma-Context-MCP`,iconBg:`var(--oh-surface)`,keywords:[`design`,`ui`,`frames`,`components`],template:{kind:`stdio`,serverName:`figma`,command:`npx`,args:[`-y`,`figma-developer-mcp`,`--stdio`],envFields:[{key:`FIGMA_API_KEY`,label:`Figma personal access token`,type:`password`,required:!0}]}},{id:`airtable`,name:`Airtable`,description:`List bases, query records, and update fields across your Airtable workspace.`,docsUrl:`https://github.com/domdomegg/airtable-mcp-server`,iconBg:`#FCB400`,iconColor:`var(--oh-surface-deep)`,keywords:[`spreadsheet`,`database`,`records`,`bases`],template:{kind:`stdio`,serverName:`airtable`,command:`npx`,args:[`-y`,`airtable-mcp-server`],envFields:[{key:`AIRTABLE_API_KEY`,label:`Airtable personal access token`,type:`password`,required:!0}]}},{id:`obsidian`,name:`Obsidian`,description:`Read and edit Markdown notes inside an Obsidian vault on the local disk.`,docsUrl:`https://github.com/MarkusPfundstein/mcp-obsidian`,iconBg:`#7C3AED`,availability:`local`,keywords:[`notes`,`knowledge`,`markdown`,`vault`],template:{kind:`stdio`,serverName:`obsidian`,command:`uvx`,args:[`mcp-obsidian`],envFields:[{key:`OBSIDIAN_API_KEY`,label:`Local REST API key`,type:`password`,required:!0,helperText:`From the Obsidian 'Local REST API' community plugin.`}]}},{id:`elevenlabs`,name:`ElevenLabs`,description:`Generate speech, clone voices, and transcribe audio via ElevenLabs.`,docsUrl:`https://elevenlabs.io/docs/api-reference/mcp`,iconBg:`var(--oh-color-base)`,keywords:[`tts`,`speech`,`voice`,`audio`],template:{kind:`stdio`,serverName:`elevenlabs`,command:`uvx`,args:[`elevenlabs-mcp`],envFields:[{key:`ELEVENLABS_API_KEY`,label:`ElevenLabs API key`,type:`password`,required:!0}]}},{id:`resend`,name:`Resend`,description:`Send transactional and marketing emails via the Resend API.`,docsUrl:`https://resend.com/docs/mcp`,iconBg:`var(--oh-surface-deep)`,keywords:[`email`,`transactional`,`smtp`],template:{kind:`stdio`,serverName:`resend`,command:`npx`,args:[`-y`,`mcp-send-email`],envFields:[{key:`RESEND_API_KEY`,label:`Resend API key`,type:`password`,required:!0},{key:`SENDER_EMAIL_ADDRESS`,label:`From address`,type:`text`,placeholder:`you@example.com`,required:!0}]}},{id:`cloudflare-builds`,name:`Cloudflare Builds`,description:`Inspect Workers Builds — logs, statuses, and rerun failed deploys.`,docsUrl:`https://developers.cloudflare.com/agents/model-context-protocol/`,iconBg:`#F38020`,keywords:[`cloudflare`,`workers`,`ci`,`builds`,`deploys`],template:{kind:`sse`,url:`https://builds.mcp.cloudflare.com/sse`,apiKeyOptional:!0}},{id:`cloudflare-browser-rendering`,name:`Cloudflare Browser Rendering`,description:`Fetch and screenshot pages using Cloudflare's hosted browser rendering.`,docsUrl:`https://developers.cloudflare.com/agents/model-context-protocol/`,iconBg:`#F38020`,keywords:[`cloudflare`,`browser`,`rendering`,`screenshots`],template:{kind:`sse`,url:`https://browser.mcp.cloudflare.com/sse`,apiKeyOptional:!0}},{id:`kagi`,name:`Kagi Search`,description:`Paid, privacy-first search with high signal-to-noise — great for research.`,docsUrl:`https://github.com/kagisearch/kagimcp`,iconBg:`#FFB319`,iconColor:`var(--oh-surface-deep)`,keywords:[`search`,`web`,`privacy`],template:{kind:`stdio`,serverName:`kagi`,command:`uvx`,args:[`kagimcp`],envFields:[{key:`KAGI_API_KEY`,label:`Kagi API key`,type:`password`,required:!0}]}},{id:`clickhouse`,name:`ClickHouse`,description:`Run analytical SQL queries against a ClickHouse cluster.`,docsUrl:`https://github.com/ClickHouse/mcp-clickhouse`,iconBg:`#FFFF00`,iconColor:`var(--oh-surface-deep)`,keywords:[`analytics`,`olap`,`database`,`sql`],template:{kind:`stdio`,serverName:`clickhouse`,command:`uvx`,args:[`mcp-clickhouse`],envFields:[{key:`CLICKHOUSE_HOST`,label:`Host`,type:`text`,placeholder:`clickhouse.example.com`,required:!0},{key:`CLICKHOUSE_USER`,label:`Username`,type:`text`,required:!0},{key:`CLICKHOUSE_PASSWORD`,label:`Password`,type:`password`,required:!0}]}}],B=e(t(),1),V=`h-5 w-5`,H=e=>(0,B.createElement)(e,{className:V}),U=e=>(0,B.createElement)(e,{className:V,strokeWidth:2.25}),W=U(i),G={github:H(u),slack:H(D),tavily:(0,B.createElement)(o,{className:V,strokeWidth:2.5}),linear:H(d),notion:H(b),atlassian:H(v),sentry:H(T),stripe:H(l),paypal:H(m),"cloudflare-docs":H(c),"cloudflare-bindings":H(c),"cloudflare-observability":H(c),huggingface:H(g),deepwiki:H(O),git:U(a),"brave-search":H(x),exa:U(L),firecrawl:U(M),apify:U(i),fetch:U(N),"browser-mcp":U(F),playwright:U(R),supabase:H(E),neon:U(j),mongodb:H(f),redis:H(p),filesystem:U(r),memory:U(k),"sequential-thinking":U(P),time:U(A),everything:U(I),figma:H(S),airtable:H(C),obsidian:H(_),elevenlabs:H(y),resend:H(s),"cloudflare-builds":H(c),"cloudflare-browser-rendering":H(c),kagi:H(w),clickhouse:H(h)};new Set(Object.keys(G));export{G as n,z as r,W as t};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-BFRubm34.js";import{o as t,s as n}from"./agent-server-client-options-8OJSXbm8.js";var r=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchEvents(e={}){return(await this.client.get(`/api/bash/bash_events/search`,{params:e})).data}async getEvent(e){return(await this.client.get(`/api/bash/bash_events/${e}`)).data}async getEvents(e){return Promise.all(e.map(async e=>{try{return await this.getEvent(e)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async startCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/start_bash_command`,r)).data}async executeCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:((r.timeout||30)+10)*1e3})).data}async clearEvents(){return(await this.client.delete(`/api/bash/bash_events`)).data}close(){this.client.close()}normalizeRequest(e,t,n){return typeof e==`string`?{command:e,...t?{cwd:t}:{},...n===void 0?{}:{timeout:Math.floor(n)}}:{...e,...e.timeout===void 0?{}:{timeout:Math.floor(e.timeout)}}}},i=`AGENT_SERVER_VERSION_TOO_OLD`,a={workspaces:{feature:`workspaces`,displayName:`Workspaces`,minVersion:`1.23.0`},hooks:{feature:`hooks`,displayName:`Hooks API`,minVersion:`1.23.0`},mcpTest:{feature:`mcp-test`,displayName:`MCP test API`,minVersion:`1.23.0`},cloudProxy:{feature:`cloud-proxy`,displayName:`Cloud proxy`,minVersion:`1.23.0`}},o=class e extends Error{constructor({requirement:t,actualVersion:n}){super(`${t.displayName} requires agent-server ${t.minVersion} or newer; this backend is running ${n}. Please upgrade your agent-server backend.`),this.code=i,this.name=`AgentServerVersionError`,this.feature=t.feature,this.displayName=t.displayName,this.requiredVersion=t.minVersion,this.actualVersion=n,Object.setPrototypeOf(this,e.prototype)}},s=new WeakMap;function c(e){return e instanceof o||typeof e==`object`&&!!e&&`code`in e&&e.code===`AGENT_SERVER_VERSION_TOO_OLD`}async function l(e){let t=s.get(e);if(t)return t;let n=e.get(`/server_info`).then(e=>e.data);return s.set(e,n),n}async function u(e,t){let n=await l(e),r=typeof n.version==`string`&&n.version.trim()?n.version.trim():`unknown`,i=d(r,t.minVersion);if(i===null||i<0)throw new o({requirement:t,actualVersion:r});return n}function d(e,t){let n=f(e),r=f(t);if(!n||!r)return null;for(let e of[`major`,`minor`,`patch`]){if(n[e]>r[e])return 1;if(n[e]<r[e])return-1}return n.prerelease&&!r.prerelease?-1:!n.prerelease&&r.prerelease?1:n.prerelease&&r.prerelease?n.prerelease.localeCompare(r.prerelease):0}function f(e){let[t]=e.trim().replace(/^v/,``).split(`+`),[n,r]=t.split(`-`,2),i=n.split(`.`);if(i.length!==3)return null;let[a,o,s]=i.map(e=>Number(e));return[a,o,s].every(e=>Number.isInteger(e)&&e>=0)?{major:a,minor:o,patch:s,prerelease:r}:null}var p=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchSubdirectories(e,t={}){return(await this.client.get(`/api/file/search_subdirs`,{params:{path:e,page_id:t.pageId,limit:t.limit}})).data}async getHome(){return(await this.client.get(`/api/file/home`)).data}async downloadFile(e){return(await this.client.get(`/api/file/download`,{params:{path:e},responseType:`arrayBuffer`})).data}async downloadTextFile(e){return new TextDecoder().decode(await this.downloadFile(e))}async uploadFile(e,t,n){let r=new FormData,i=typeof File>`u`?void 0:File;return i&&e instanceof i?r.append(`file`,e,n||e.name):e instanceof Blob?r.append(`file`,e,n||`blob-file`):r.append(`file`,new Blob([e],{type:`text/plain`}),n||`text-file.txt`),(await this.client.post(`/api/file/upload`,r,{params:{path:t}})).data}async uploadTextFile(e,t,n){return this.uploadFile(e,t,n)}async downloadTrajectory(e){return(await this.client.get(`/api/file/download-trajectory/${encodeURIComponent(e)}`,{responseType:`blob`})).data}close(){this.client.close()}},m=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSkills(e={}){return(await this.client.post(`/api/skills`,e)).data}async syncSkills(){return(await this.client.post(`/api/skills/sync`,{})).data}async installSkill(e){return(await this.client.post(`/api/skills/install`,e)).data}async listInstalledSkills(){return(await this.client.get(`/api/skills/installed`)).data}async getInstalledSkill(e){return(await this.client.get(`/api/skills/installed/${encodeURIComponent(e)}`)).data}async toggleSkill(e,t){return(await this.client.patch(`/api/skills/installed/${encodeURIComponent(e)}`,{enabled:t})).data}async uninstallSkill(e){return(await this.client.delete(`/api/skills/installed/${encodeURIComponent(e)}`)).data}async refreshSkill(e){return(await this.client.post(`/api/skills/installed/${encodeURIComponent(e)}/update`)).data}async getMarketplace(){return(await this.client.get(`/api/skills/marketplace`)).data}close(){this.client.close()}},h=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getUrl(e={}){return(await this.client.get(`/api/vscode/url`,{params:{...e.baseUrl?{base_url:e.baseUrl}:{},...e.workspaceDir?{workspace_dir:e.workspaceDir}:{}}})).data.url}async getStatus(){return(await this.client.get(`/api/vscode/status`)).data}close(){this.client.close()}},g=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSharedConversations(e){return(await this.client.get(`/api/shared-conversations`,{params:{ids:e}})).data}async getSharedConversation(e){return(await this.getSharedConversations([e]))[0]??null}async searchSharedEvents(e){return(await this.client.get(`/api/shared-events/search`,{params:{conversation_id:e.conversationId,limit:e.limit,page_id:e.pageId}})).data}close(){this.client.close()}},_=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listWorkspaces(){return await this.ensureWorkspacesSupported(),(await this.client.get(`/api/workspaces`)).data}async addWorkspaces(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces`,{workspaces:e})).data}async deleteWorkspace(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces`,{params:{path:e}})).data}async addWorkspaceParents(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces/parents`,{parents:e})).data}async deleteWorkspaceParent(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces/parents`,{params:{path:e}})).data}close(){this.client.close()}async ensureWorkspacesSupported(){await u(this.client,a.workspaces)}},v=e(((e,t)=>{t.exports=function(){throw Error(`ws does not work in the browser. Browser clients must use the native WebSocket object`)}}));if(typeof window<`u`&&window.WebSocket)window.WebSocket;else try{v()}catch{}var y=class{constructor(e,n){this.cachedEvents=[],this.cachedEventIds=new Set,this.client=e instanceof t?e:new t(e),this.conversationId=n}async search(e={}){let t={limit:e.limit??100};return e.page_id&&(t.page_id=e.page_id),e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.sort_order&&(t.sort_order=e.sort_order),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:t})).data}async count(e={}){let t={};return e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/count`,{params:t})).data}async getEventById(e){return(await this.client.get(`/api/conversations/${this.conversationId}/events/${e}`)).data}async getEventsById(e){return Promise.all(e.map(async e=>{try{return await this.getEventById(e)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async addEvent(e){this.cachedEventIds.has(e.id)||(this.cachedEvents.push(e),this.cachedEventIds.add(e.id))}async append(e){await this.addEvent(e)}createDefaultCallback(e){return t=>{this.addEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error adding event to cache: ${t}`))})}}async length(){return this.cachedEvents.length}async getEvent(e){return this.cachedEvents[e]}async getEvents(e,t){let n=[],r;for(;;){let e={limit:100};r&&(e.page_id=r);let t=(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:e})).data;if(n.push(...t.items),!t.next_page_id)break;r=t.next_page_id}let i=new Set(n.map(e=>e.id)),a=[...n,...this.cachedEvents.filter(e=>!i.has(e.id))];return e===void 0&&t===void 0?a:a.slice(e,t)}async*[Symbol.asyncIterator](){let e=await this.getEvents();for(let t of e)yield t}},b=`__full_state__`,x=class e{constructor(e,t){this.cachedState=null,this.cachedAt=0,this.lock=new S,this.client=e,this.conversationId=t,this._events=new y(e,t)}async getConversationInfo(){return await this.lock.acquire(async()=>{if(this.cachedState!==null&&Date.now()-this.cachedAt<e.CACHE_TTL_MS)return this.cachedState;let t=await this.client.get(`/api/conversations/${this.conversationId}`),n;return n=t.data.full_state?t.data.full_state:t.data,this.cachedState=n,this.cachedAt=Date.now(),n})}async refresh(){return this.cachedState=null,this.getConversationInfo()}async updateStateFromEvent(e){await this.lock.acquire(async()=>{if(e.key===b){this.cachedState===null&&(this.cachedState={});let t=e.value?.full_state??e.value;Object.assign(this.cachedState,t)}else this.cachedState===null&&(this.cachedState={}),this.cachedState[e.key]=e.value;this.cachedAt=Date.now()})}createStateUpdateCallback(e){return t=>{t.kind===`ConversationStateUpdateEvent`&&this.updateStateFromEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error updating state from event: ${t}`))})}}get events(){return this._events}get id(){return this.conversationId}unwrapState(e){return e.full_state??e}async getExecutionStatus(){let e=await this.getConversationInfo(),t=this.unwrapState(e),n=t.execution_status??t.agent_status;if(n==null)throw Error(`execution_status missing in conversation info: ${JSON.stringify(e)}`);return n}async getAgentStatus(){return this.getExecutionStatus()}async setAgentStatus(e){throw Error(`Setting execution_status on RemoteState has no effect. Remote execution status is managed server-side. Attempted to set: ${e}`)}async getConfirmationPolicy(){let e=await this.getConversationInfo(),t=this.unwrapState(e).confirmation_policy;if(t==null)throw Error(`confirmation_policy missing in conversation info: ${JSON.stringify(e)}`);return t}async getActivatedKnowledgeSkills(){let e=await this.getConversationInfo();return this.unwrapState(e).activated_knowledge_skills||[]}async getAgent(){let e=await this.getConversationInfo(),t=this.unwrapState(e).agent;if(t==null)throw Error(`agent missing in conversation info: ${JSON.stringify(e)}`);return t}async getWorkspace(){let e=await this.getConversationInfo(),t=this.unwrapState(e).workspace;if(t==null)throw Error(`workspace missing in conversation info: ${JSON.stringify(e)}`);return t}async getPersistenceDir(){let e=await this.getConversationInfo(),t=this.unwrapState(e).persistence_dir;if(t==null)throw Error(`persistence_dir missing in conversation info: ${JSON.stringify(e)}`);return t}async modelDump(){let e=await this.getConversationInfo();return this.unwrapState(e)}async modelDumpJson(){let e=await this.modelDump();return JSON.stringify(e)}};x.CACHE_TTL_MS=2e3;var S=class{constructor(){this.locked=!1,this.queue=[]}async acquire(e){return new Promise((t,n)=>{let r=async()=>{try{t(await e())}catch(e){n(e)}finally{this.locked=!1;let e=this.queue.shift();e&&e()}};this.locked?this.queue.push(r):(this.locked=!0,r())})}},C=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.workingDir=e.workingDir,this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:6e4}),this.bash=new r({host:this.host,...this.apiKey?{apiKey:this.apiKey}:{}})}async startWorkspaceSession(e){return await this.client.post(`/api/auth/workspace-session`,void 0,{credentials:`include`}),`${this.host}/api/conversations/${e}/workspace/`}async deleteWorkspaceSession(){await this.client.delete(`/api/auth/workspace-session`,{credentials:`include`,acceptableStatusCodes:new Set([204])})}async executeCommand(e,t,n=30){let r={command:e,timeout:Math.floor(n)};t&&(r.cwd=t);let i=(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:(n+10)*1e3})).data;return{command:e,exit_code:i.exit_code??0,stdout:i.stdout||``,stderr:i.stderr||``,timeout_occurred:!1}}async fileUpload(e,t,n){let r=new FormData,i,a;e instanceof File?(i=e,a=n||e.name):e instanceof Blob?(i=e,a=n||`blob-file`):(i=new Blob([e],{type:`text/plain`}),a=n||`text-file.txt`),r.append(`file`,i,a);let o=(await this.client.request({method:`POST`,url:`/api/file/upload`,params:{path:t},data:r,timeout:6e4})).data;return{success:o.success??!0,source_path:a,destination_path:t,file_size:o.file_size,error:o.error}}async fileDownload(e){let t=await this.client.get(`/api/file/download`,{params:{path:e},timeout:6e4}),n,r;if(typeof t.data==`string`)n=t.data,r=new Blob([t.data]).size;else if(t.data instanceof ArrayBuffer)n=new Blob([t.data]),r=t.data.byteLength;else if(t.data instanceof Blob)n=t.data,r=t.data.size;else{let e=JSON.stringify(t.data);n=e,r=new Blob([e]).size}return{success:!0,source_path:e,content:n,file_size:r}}async gitChanges(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/changes`,{params:n})).data}catch(e){throw Error(`Failed to get git changes: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async gitDiff(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/diff`,{params:n})).data}catch(e){throw Error(`Failed to get git diff: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async uploadText(e,t,n){return this.fileUpload(e,t,n)}async uploadFileObject(e,t){return this.fileUpload(e,t)}async downloadAsText(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return typeof t.content==`string`?t.content:t.content instanceof Blob?await t.content.text():``}async downloadAsBlob(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return t.content instanceof Blob?t.content:typeof t.content==`string`?new Blob([t.content],{type:`text/plain`}):new Blob}async downloadAndSave(e,t){let n=await this.downloadAsBlob(e),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t||e.split(`/`).pop()||`download`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}close(){this.bash.close(),this.client.close()}},w={execute_command:`Execute a bash command in the terminal within a persistent shell session.
|
|
2
|
-
|
|
3
|
-
### Command Execution
|
|
4
|
-
* One command at a time: You can only execute one bash command at a time. If you need to run multiple commands sequentially, use \`&&\` or \`;\` to chain them together.
|
|
5
|
-
* Persistent session: Commands execute in a persistent shell session where environment variables, virtual environments, and working directory persist between commands.
|
|
6
|
-
|
|
7
|
-
### Best Practices
|
|
8
|
-
* Directory verification: Before creating new directories or files, first verify the parent directory exists and is the correct location.
|
|
9
|
-
* Directory management: Try to maintain working directory by using absolute paths and avoiding excessive use of \`cd\`.
|
|
10
|
-
|
|
11
|
-
### Output Handling
|
|
12
|
-
* Output truncation: If the output exceeds a maximum length, it will be truncated before being returned.`,read_file:`Read the contents of a file from the workspace.
|
|
13
|
-
|
|
14
|
-
Custom editing tool for viewing, creating and editing files in plain-text format.
|
|
15
|
-
* If \`path\` is a text file, returns the file contents with line numbers
|
|
16
|
-
* If \`path\` is a directory, lists non-hidden files and directories up to 2 levels deep
|
|
17
|
-
|
|
18
|
-
Best practices:
|
|
19
|
-
* Use this tool to understand the file's contents and context before making edits
|
|
20
|
-
* Verify the directory path is correct when working with files`,write_file:`Write content to a file in the workspace. Creates the file if it does not exist.
|
|
21
|
-
|
|
22
|
-
When making edits:
|
|
23
|
-
* Ensure the edit results in idiomatic, correct code
|
|
24
|
-
* Do not leave the code in a broken state
|
|
25
|
-
* Always use absolute file paths (starting with /)
|
|
26
|
-
|
|
27
|
-
CRITICAL REQUIREMENTS:
|
|
28
|
-
* The content should be the complete file content, not a diff or patch
|
|
29
|
-
* Ensure proper formatting and indentation`,think:`Use the tool to think about something. It will not obtain new information or make any changes to the repository, but just log the thought. Use it when complex reasoning or brainstorming is needed.
|
|
30
|
-
|
|
31
|
-
Common use cases:
|
|
32
|
-
1. When exploring a repository and discovering the source of a bug, call this tool to brainstorm several unique ways of fixing the bug, and assess which change(s) are likely to be simplest and most effective.
|
|
33
|
-
2. After receiving test results, use this tool to brainstorm ways to fix failing tests.
|
|
34
|
-
3. When planning a complex refactoring, use this tool to outline different approaches and their tradeoffs.
|
|
35
|
-
4. When designing a new feature, use this tool to think through architecture decisions and implementation details.
|
|
36
|
-
5. When debugging a complex issue, use this tool to organize your thoughts and hypotheses.
|
|
37
|
-
|
|
38
|
-
The tool simply logs your thought process for better transparency and does not execute any code or make changes.`,finish:`Signals the completion of the current task or conversation.
|
|
39
|
-
|
|
40
|
-
Use this tool when:
|
|
41
|
-
- You have successfully completed the user's requested task
|
|
42
|
-
- You cannot proceed further due to technical limitations or missing information
|
|
43
|
-
|
|
44
|
-
The message should include:
|
|
45
|
-
- A clear summary of actions taken and their results
|
|
46
|
-
- Any next steps for the user
|
|
47
|
-
- Explanation if you're unable to complete the task
|
|
48
|
-
- Any follow-up questions if more information is needed`};w.execute_command,w.read_file,w.write_file,w.think,w.finish;var T;(function(e){e.PRE_TOOL_USE=`PreToolUse`,e.POST_TOOL_USE=`PostToolUse`,e.USER_PROMPT_SUBMIT=`UserPromptSubmit`,e.SESSION_START=`SessionStart`,e.SESSION_END=`SessionEnd`,e.STOP=`Stop`})(T||={});var E;(function(e){e.COMMAND=`command`,e.PROMPT=`prompt`})(E||={});var D;if((function(e){e.ALLOW=`allow`,e.DENY=`deny`})(D||={}),new Set(`|.*+?[]()^$\\`.split(``)),typeof window<`u`&&window.WebSocket)window.WebSocket;else try{v()}catch{}var O;(function(e){e.TIMESTAMP=`TIMESTAMP`,e.TIMESTAMP_DESC=`TIMESTAMP_DESC`})(O||={}),(function(e){e.REVERSE_TIMESTAMP=`TIMESTAMP_DESC`})(O||={});var k;(function(e){e.IDLE=`idle`,e.RUNNING=`running`,e.PAUSED=`paused`,e.WAITING_FOR_CONFIRMATION=`waiting_for_confirmation`,e.FINISHED=`finished`,e.ERROR=`error`,e.STUCK=`stuck`,e.DELETING=`deleting`})(k||={});var A;(function(e){e.CREATED_AT=`CREATED_AT`,e.UPDATED_AT=`UPDATED_AT`,e.CREATED_AT_DESC=`CREATED_AT_DESC`,e.UPDATED_AT_DESC=`UPDATED_AT_DESC`})(A||={});var j={"claude-code":{key:`claude-code`,display_name:`Claude Code`,default_command:[`npx`,`-y`,`@agentclientprotocol/claude-agent-acp`],api_key_env_var:`ANTHROPIC_API_KEY`,base_url_env_var:`ANTHROPIC_BASE_URL`,default_session_mode:`bypassPermissions`,agent_name_patterns:[`claude-agent`],supports_set_session_model:!1,session_meta_key:`claudeCode`,available_models:[{id:`claude-opus-4-7`,label:`Claude Opus 4.7`},{id:`claude-opus-4-6`,label:`Claude Opus 4.6`},{id:`opus[1m]`,label:`Claude Opus (1M)`},{id:`claude-opus-4-5`,label:`Claude Opus 4.5`},{id:`claude-opus-4-1-20250805`,label:`Claude Opus 4.1`},{id:`claude-sonnet-4-6`,label:`Claude Sonnet 4.6`},{id:`sonnet[1m]`,label:`Claude Sonnet (1M)`},{id:`claude-sonnet-4-5`,label:`Claude Sonnet 4.5`},{id:`claude-haiku-4-5`,label:`Claude Haiku 4.5`},{id:`opusplan`,label:`Opus (plan) + Sonnet (execute)`}],default_model:`claude-opus-4-7`},codex:{key:`codex`,display_name:`Codex`,default_command:[`npx`,`-y`,`@zed-industries/codex-acp`],api_key_env_var:`OPENAI_API_KEY`,base_url_env_var:`OPENAI_BASE_URL`,default_session_mode:`full-access`,agent_name_patterns:[`codex-acp`],supports_set_session_model:!0,session_meta_key:null,available_models:[{id:`gpt-5.5/low`,label:`GPT-5.5 (low)`},{id:`gpt-5.5/medium`,label:`GPT-5.5 (medium)`},{id:`gpt-5.5/high`,label:`GPT-5.5 (high)`},{id:`gpt-5.5/xhigh`,label:`GPT-5.5 (xhigh)`},{id:`gpt-5.4/low`,label:`GPT-5.4 (low)`},{id:`gpt-5.4/medium`,label:`GPT-5.4 (medium)`},{id:`gpt-5.4/high`,label:`GPT-5.4 (high)`},{id:`gpt-5.4/xhigh`,label:`GPT-5.4 (xhigh)`},{id:`gpt-5.4-mini/low`,label:`GPT-5.4 Mini (low)`},{id:`gpt-5.4-mini/medium`,label:`GPT-5.4 Mini (medium)`},{id:`gpt-5.4-mini/high`,label:`GPT-5.4 Mini (high)`},{id:`gpt-5.4-mini/xhigh`,label:`GPT-5.4 Mini (xhigh)`},{id:`gpt-5.3-codex/low`,label:`GPT-5.3 Codex (low)`},{id:`gpt-5.3-codex/medium`,label:`GPT-5.3 Codex (medium)`},{id:`gpt-5.3-codex/high`,label:`GPT-5.3 Codex (high)`},{id:`gpt-5.3-codex/xhigh`,label:`GPT-5.3 Codex (xhigh)`},{id:`gpt-5.2/low`,label:`GPT-5.2 (low)`},{id:`gpt-5.2/medium`,label:`GPT-5.2 (medium)`},{id:`gpt-5.2/high`,label:`GPT-5.2 (high)`},{id:`gpt-5.2/xhigh`,label:`GPT-5.2 (xhigh)`}],default_model:`gpt-5.5/medium`},"gemini-cli":{key:`gemini-cli`,display_name:`Gemini CLI`,default_command:[`npx`,`-y`,`@google/gemini-cli`,`--acp`],api_key_env_var:`GEMINI_API_KEY`,base_url_env_var:`GEMINI_BASE_URL`,default_session_mode:`yolo`,agent_name_patterns:[`gemini-cli`],supports_set_session_model:!0,session_meta_key:null,available_models:[{id:`auto-gemini-3`,label:`Auto (Gemini 3)`},{id:`auto-gemini-2.5`,label:`Auto (Gemini 2.5)`},{id:`gemini-3.1-pro-preview`,label:`Gemini 3.1 Pro (preview)`},{id:`gemini-3-flash-preview`,label:`Gemini 3 Flash (preview)`},{id:`gemini-3.1-flash-lite-preview`,label:`Gemini 3.1 Flash Lite (preview)`},{id:`gemini-2.5-pro`,label:`Gemini 2.5 Pro`},{id:`gemini-2.5-flash`,label:`Gemini 2.5 Flash`},{id:`gemini-2.5-flash-lite`,label:`Gemini 2.5 Flash Lite`}],default_model:`auto-gemini-2.5`}};function M(e){return e?j[e]??null:null}export{_ as a,m as c,r as d,y as i,p as l,A as n,g as o,C as r,h as s,M as t,c as u};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);var e={id:`airtable`,name:`Airtable`,description:`List bases, query records, and update fields across your Airtable workspace.`,docsUrl:`https://github.com/domdomegg/airtable-mcp-server`,iconBg:`#FCB400`,iconColor:`var(--oh-surface-deep)`,keywords:[`spreadsheet`,`database`,`records`,`bases`],template:{kind:`stdio`,serverName:`airtable`,command:`npx`,args:[`-y`,`airtable-mcp-server`],envFields:[{key:`AIRTABLE_API_KEY`,label:`Airtable personal access token`,type:`password`,required:!0}]}};exports.default=e;
|
|
2
|
-
//# sourceMappingURL=airtable.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"airtable.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/airtable.json"],"sourcesContent":["{\n \"id\": \"airtable\",\n \"name\": \"Airtable\",\n \"description\": \"List bases, query records, and update fields across your Airtable workspace.\",\n \"docsUrl\": \"https://github.com/domdomegg/airtable-mcp-server\",\n \"iconBg\": \"#FCB400\",\n \"iconColor\": \"var(--oh-surface-deep)\",\n \"keywords\": [\n \"spreadsheet\",\n \"database\",\n \"records\",\n \"bases\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"airtable\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"airtable-mcp-server\"\n ],\n \"envFields\": [\n {\n \"key\": \"AIRTABLE_API_KEY\",\n \"label\": \"Airtable personal access token\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
var e = {
|
|
2
|
-
id: "airtable",
|
|
3
|
-
name: "Airtable",
|
|
4
|
-
description: "List bases, query records, and update fields across your Airtable workspace.",
|
|
5
|
-
docsUrl: "https://github.com/domdomegg/airtable-mcp-server",
|
|
6
|
-
iconBg: "#FCB400",
|
|
7
|
-
iconColor: "var(--oh-surface-deep)",
|
|
8
|
-
keywords: [
|
|
9
|
-
"spreadsheet",
|
|
10
|
-
"database",
|
|
11
|
-
"records",
|
|
12
|
-
"bases"
|
|
13
|
-
],
|
|
14
|
-
template: {
|
|
15
|
-
kind: "stdio",
|
|
16
|
-
serverName: "airtable",
|
|
17
|
-
command: "npx",
|
|
18
|
-
args: ["-y", "airtable-mcp-server"],
|
|
19
|
-
envFields: [{
|
|
20
|
-
key: "AIRTABLE_API_KEY",
|
|
21
|
-
label: "Airtable personal access token",
|
|
22
|
-
type: "password",
|
|
23
|
-
required: !0
|
|
24
|
-
}]
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
//#endregion
|
|
28
|
-
export { e as default };
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=airtable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"airtable.js","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/airtable.json"],"sourcesContent":["{\n \"id\": \"airtable\",\n \"name\": \"Airtable\",\n \"description\": \"List bases, query records, and update fields across your Airtable workspace.\",\n \"docsUrl\": \"https://github.com/domdomegg/airtable-mcp-server\",\n \"iconBg\": \"#FCB400\",\n \"iconColor\": \"var(--oh-surface-deep)\",\n \"keywords\": [\n \"spreadsheet\",\n \"database\",\n \"records\",\n \"bases\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"airtable\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"airtable-mcp-server\"\n ],\n \"envFields\": [\n {\n \"key\": \"AIRTABLE_API_KEY\",\n \"label\": \"Airtable personal access token\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);var e={id:`apify`,name:`Apify Actors`,description:`Run any of Apify's 5,000+ Actors (scrapers, automations) from the agent.`,docsUrl:`https://docs.apify.com/platform/integrations/mcp`,iconBg:`#10b981`,keywords:[`scraping`,`automation`,`crawl`,`actors`],template:{kind:`stdio`,serverName:`apify`,command:`npx`,args:[`-y`,`@apify/actors-mcp-server`],envFields:[{key:`APIFY_TOKEN`,label:`Apify token`,type:`password`,required:!0}]}};exports.default=e;
|
|
2
|
-
//# sourceMappingURL=apify.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apify.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/apify.json"],"sourcesContent":["{\n \"id\": \"apify\",\n \"name\": \"Apify Actors\",\n \"description\": \"Run any of Apify's 5,000+ Actors (scrapers, automations) from the agent.\",\n \"docsUrl\": \"https://docs.apify.com/platform/integrations/mcp\",\n \"iconBg\": \"#10b981\",\n \"keywords\": [\n \"scraping\",\n \"automation\",\n \"crawl\",\n \"actors\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"apify\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@apify/actors-mcp-server\"\n ],\n \"envFields\": [\n {\n \"key\": \"APIFY_TOKEN\",\n \"label\": \"Apify token\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
var e = {
|
|
2
|
-
id: "apify",
|
|
3
|
-
name: "Apify Actors",
|
|
4
|
-
description: "Run any of Apify's 5,000+ Actors (scrapers, automations) from the agent.",
|
|
5
|
-
docsUrl: "https://docs.apify.com/platform/integrations/mcp",
|
|
6
|
-
iconBg: "#10b981",
|
|
7
|
-
keywords: [
|
|
8
|
-
"scraping",
|
|
9
|
-
"automation",
|
|
10
|
-
"crawl",
|
|
11
|
-
"actors"
|
|
12
|
-
],
|
|
13
|
-
template: {
|
|
14
|
-
kind: "stdio",
|
|
15
|
-
serverName: "apify",
|
|
16
|
-
command: "npx",
|
|
17
|
-
args: ["-y", "@apify/actors-mcp-server"],
|
|
18
|
-
envFields: [{
|
|
19
|
-
key: "APIFY_TOKEN",
|
|
20
|
-
label: "Apify token",
|
|
21
|
-
type: "password",
|
|
22
|
-
required: !0
|
|
23
|
-
}]
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
//#endregion
|
|
27
|
-
export { e as default };
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=apify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apify.js","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/apify.json"],"sourcesContent":["{\n \"id\": \"apify\",\n \"name\": \"Apify Actors\",\n \"description\": \"Run any of Apify's 5,000+ Actors (scrapers, automations) from the agent.\",\n \"docsUrl\": \"https://docs.apify.com/platform/integrations/mcp\",\n \"iconBg\": \"#10b981\",\n \"keywords\": [\n \"scraping\",\n \"automation\",\n \"crawl\",\n \"actors\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"apify\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@apify/actors-mcp-server\"\n ],\n \"envFields\": [\n {\n \"key\": \"APIFY_TOKEN\",\n \"label\": \"Apify token\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atlassian.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/atlassian.json"],"sourcesContent":["{\n \"id\": \"atlassian\",\n \"name\": \"Atlassian (Jira & Confluence)\",\n \"description\": \"Search Jira issues and Confluence pages via Atlassian's hosted MCP server.\",\n \"docsUrl\": \"https://www.atlassian.com/platform/remote-mcp-server\",\n \"iconBg\": \"#0052CC\",\n \"keywords\": [\n \"jira\",\n \"confluence\",\n \"tickets\",\n \"wiki\",\n \"issues\"\n ],\n \"template\": {\n \"kind\": \"sse\",\n \"url\": \"https://mcp.atlassian.com/v1/sse\",\n \"apiKeyOptional\": true\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atlassian.js","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/atlassian.json"],"sourcesContent":["{\n \"id\": \"atlassian\",\n \"name\": \"Atlassian (Jira & Confluence)\",\n \"description\": \"Search Jira issues and Confluence pages via Atlassian's hosted MCP server.\",\n \"docsUrl\": \"https://www.atlassian.com/platform/remote-mcp-server\",\n \"iconBg\": \"#0052CC\",\n \"keywords\": [\n \"jira\",\n \"confluence\",\n \"tickets\",\n \"wiki\",\n \"issues\"\n ],\n \"template\": {\n \"kind\": \"sse\",\n \"url\": \"https://mcp.atlassian.com/v1/sse\",\n \"apiKeyOptional\": true\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);var e={id:`brave-search`,name:`Brave Search`,description:`Privacy-first web and local search using the Brave Search API.`,docsUrl:`https://github.com/brave/brave-search-mcp-server`,iconBg:`#FB542B`,keywords:[`search`,`web`],template:{kind:`stdio`,serverName:`brave_search`,command:`npx`,args:[`-y`,`@brave/brave-search-mcp-server`,`--transport`,`stdio`],envFields:[{key:`BRAVE_API_KEY`,label:`Brave API key`,type:`password`,required:!0}]}};exports.default=e;
|
|
2
|
-
//# sourceMappingURL=brave-search.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brave-search.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/brave-search.json"],"sourcesContent":["{\n \"id\": \"brave-search\",\n \"name\": \"Brave Search\",\n \"description\": \"Privacy-first web and local search using the Brave Search API.\",\n \"docsUrl\": \"https://github.com/brave/brave-search-mcp-server\",\n \"iconBg\": \"#FB542B\",\n \"keywords\": [\n \"search\",\n \"web\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"brave_search\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@brave/brave-search-mcp-server\",\n \"--transport\",\n \"stdio\"\n ],\n \"envFields\": [\n {\n \"key\": \"BRAVE_API_KEY\",\n \"label\": \"Brave API key\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
var e = {
|
|
2
|
-
id: "brave-search",
|
|
3
|
-
name: "Brave Search",
|
|
4
|
-
description: "Privacy-first web and local search using the Brave Search API.",
|
|
5
|
-
docsUrl: "https://github.com/brave/brave-search-mcp-server",
|
|
6
|
-
iconBg: "#FB542B",
|
|
7
|
-
keywords: ["search", "web"],
|
|
8
|
-
template: {
|
|
9
|
-
kind: "stdio",
|
|
10
|
-
serverName: "brave_search",
|
|
11
|
-
command: "npx",
|
|
12
|
-
args: [
|
|
13
|
-
"-y",
|
|
14
|
-
"@brave/brave-search-mcp-server",
|
|
15
|
-
"--transport",
|
|
16
|
-
"stdio"
|
|
17
|
-
],
|
|
18
|
-
envFields: [{
|
|
19
|
-
key: "BRAVE_API_KEY",
|
|
20
|
-
label: "Brave API key",
|
|
21
|
-
type: "password",
|
|
22
|
-
required: !0
|
|
23
|
-
}]
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
//#endregion
|
|
27
|
-
export { e as default };
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=brave-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brave-search.js","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/brave-search.json"],"sourcesContent":["{\n \"id\": \"brave-search\",\n \"name\": \"Brave Search\",\n \"description\": \"Privacy-first web and local search using the Brave Search API.\",\n \"docsUrl\": \"https://github.com/brave/brave-search-mcp-server\",\n \"iconBg\": \"#FB542B\",\n \"keywords\": [\n \"search\",\n \"web\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"brave_search\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@brave/brave-search-mcp-server\",\n \"--transport\",\n \"stdio\"\n ],\n \"envFields\": [\n {\n \"key\": \"BRAVE_API_KEY\",\n \"label\": \"Brave API key\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);var e={id:`browser-mcp`,name:`Browser MCP`,description:`Control your local browser tab — navigate, click, type, and read DOM contents.`,docsUrl:`https://browsermcp.io/`,iconBg:`#0EA5E9`,availability:`local`,keywords:[`browser`,`automation`,`chrome`,`playwright`],template:{kind:`stdio`,serverName:`browser_mcp`,command:`npx`,args:[`-y`,`@browsermcp/mcp`]}};exports.default=e;
|
|
2
|
-
//# sourceMappingURL=browser-mcp.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-mcp.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/browser-mcp.json"],"sourcesContent":["{\n \"id\": \"browser-mcp\",\n \"name\": \"Browser MCP\",\n \"description\": \"Control your local browser tab — navigate, click, type, and read DOM contents.\",\n \"docsUrl\": \"https://browsermcp.io/\",\n \"iconBg\": \"#0EA5E9\",\n \"availability\": \"local\",\n \"keywords\": [\n \"browser\",\n \"automation\",\n \"chrome\",\n \"playwright\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"browser_mcp\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@browsermcp/mcp\"\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var e = {
|
|
2
|
-
id: "browser-mcp",
|
|
3
|
-
name: "Browser MCP",
|
|
4
|
-
description: "Control your local browser tab — navigate, click, type, and read DOM contents.",
|
|
5
|
-
docsUrl: "https://browsermcp.io/",
|
|
6
|
-
iconBg: "#0EA5E9",
|
|
7
|
-
availability: "local",
|
|
8
|
-
keywords: [
|
|
9
|
-
"browser",
|
|
10
|
-
"automation",
|
|
11
|
-
"chrome",
|
|
12
|
-
"playwright"
|
|
13
|
-
],
|
|
14
|
-
template: {
|
|
15
|
-
kind: "stdio",
|
|
16
|
-
serverName: "browser_mcp",
|
|
17
|
-
command: "npx",
|
|
18
|
-
args: ["-y", "@browsermcp/mcp"]
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
//#endregion
|
|
22
|
-
export { e as default };
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=browser-mcp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-mcp.js","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/browser-mcp.json"],"sourcesContent":["{\n \"id\": \"browser-mcp\",\n \"name\": \"Browser MCP\",\n \"description\": \"Control your local browser tab — navigate, click, type, and read DOM contents.\",\n \"docsUrl\": \"https://browsermcp.io/\",\n \"iconBg\": \"#0EA5E9\",\n \"availability\": \"local\",\n \"keywords\": [\n \"browser\",\n \"automation\",\n \"chrome\",\n \"playwright\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"browser_mcp\",\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@browsermcp/mcp\"\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);var e={id:`clickhouse`,name:`ClickHouse`,description:`Run analytical SQL queries against a ClickHouse cluster.`,docsUrl:`https://github.com/ClickHouse/mcp-clickhouse`,iconBg:`#FFFF00`,iconColor:`var(--oh-surface-deep)`,keywords:[`analytics`,`olap`,`database`,`sql`],template:{kind:`stdio`,serverName:`clickhouse`,command:`uvx`,args:[`mcp-clickhouse`],envFields:[{key:`CLICKHOUSE_HOST`,label:`Host`,type:`text`,placeholder:`clickhouse.example.com`,required:!0},{key:`CLICKHOUSE_USER`,label:`Username`,type:`text`,required:!0},{key:`CLICKHOUSE_PASSWORD`,label:`Password`,type:`password`,required:!0}]}};exports.default=e;
|
|
2
|
-
//# sourceMappingURL=clickhouse.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse.cjs","names":[],"sources":["../../../../../../node_modules/@openhands/extensions/mcps/catalog/clickhouse.json"],"sourcesContent":["{\n \"id\": \"clickhouse\",\n \"name\": \"ClickHouse\",\n \"description\": \"Run analytical SQL queries against a ClickHouse cluster.\",\n \"docsUrl\": \"https://github.com/ClickHouse/mcp-clickhouse\",\n \"iconBg\": \"#FFFF00\",\n \"iconColor\": \"var(--oh-surface-deep)\",\n \"keywords\": [\n \"analytics\",\n \"olap\",\n \"database\",\n \"sql\"\n ],\n \"template\": {\n \"kind\": \"stdio\",\n \"serverName\": \"clickhouse\",\n \"command\": \"uvx\",\n \"args\": [\n \"mcp-clickhouse\"\n ],\n \"envFields\": [\n {\n \"key\": \"CLICKHOUSE_HOST\",\n \"label\": \"Host\",\n \"type\": \"text\",\n \"placeholder\": \"clickhouse.example.com\",\n \"required\": true\n },\n {\n \"key\": \"CLICKHOUSE_USER\",\n \"label\": \"Username\",\n \"type\": \"text\",\n \"required\": true\n },\n {\n \"key\": \"CLICKHOUSE_PASSWORD\",\n \"label\": \"Password\",\n \"type\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|