@openhands/agent-canvas 1.0.0-beta.6 → 1.0.0-beta.7
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 +24 -7
- package/README.windows.md +27 -0
- package/bin/agent-canvas.mjs +26 -3
- package/build/assets/{QueryClientProvider-CkGuhXg-.js → QueryClientProvider-Cnr-Yl3j.js} +1 -1
- package/build/assets/{Trans-Cvm_-SMi.js → Trans-4jmk54WC.js} +1 -1
- package/build/assets/acp-providers-CPdgcp13.js +1 -0
- package/build/assets/{acp-route-guard-B2yoBZ_4.js → acp-route-guard-BoVmCn0e.js} +1 -1
- package/build/assets/active-backend-context-Beu-LZL-.js +1 -0
- package/build/assets/add-backend-modal-BheqYXHK.js +1 -0
- package/build/assets/agent-server-client-options-HEOwGVIU.js +1 -0
- package/build/assets/agent-server-compatibility-CdI3N7dr.js +1 -0
- package/build/assets/agent-server-conversation-service.api-CORdqJZg.js +5 -0
- package/build/assets/{agent-settings-CnGSCmK8.js → agent-settings-UFvcGjoI.js} +1 -1
- package/build/assets/{alert-banner-DtzAX654.js → alert-banner-DFnn_lC6.js} +1 -1
- package/build/assets/{analytics-consent-form-modal-CHZ3I37v.js → analytics-consent-form-modal-CVNugqzu.js} +1 -1
- package/build/assets/api-key-entry-screen-M6su2VSf.js +1 -0
- package/build/assets/{app-settings-Db9ITeJH.js → app-settings-BlvBhBdc.js} +1 -1
- package/build/assets/automation-detail-BWrQk4Oa.js +1 -0
- package/build/assets/automations-list-ux9KvYsU.js +1 -0
- package/build/assets/back-nav-button-7dQJ2k3O.js +1 -0
- package/build/assets/backend-form-modal-CDnEYjaU.js +1 -0
- package/build/assets/{backend-synced-settings-badge-Dc6c7GT4.js → backend-synced-settings-badge-BTIj-Ffq.js} +1 -1
- package/build/assets/base-modal-C2oy2EBG.js +1 -0
- package/build/assets/brand-button-DJ_S16rO.js +1 -0
- package/build/assets/{browser-D810xUYt.js → browser-CGM-k-sH.js} +2 -2
- package/build/assets/browser-store-DAsixKdU.js +1 -0
- package/build/assets/{browser-tab-B-aIqXRl.js → browser-tab-dvSPdvkm.js} +1 -1
- package/build/assets/{checkmark-DL7acQA7.js → checkmark-Dus0b6jt.js} +1 -1
- package/build/assets/{chevron-left-small-CVWf8TI6.js → chevron-left-small-_uvG7RVM.js} +1 -1
- package/build/assets/{circle-plus-check-toggle-P7ZZToV4.js → circle-plus-check-toggle-DKS8MAVV.js} +1 -1
- package/build/assets/{close-B5LROHR3.js → close-BU5iTc66.js} +1 -1
- package/build/assets/code-tag-BzyqOtPD.js +1 -0
- package/build/assets/combobox-caret-BJC7XJsz.js +1 -0
- package/build/assets/{command-store-DFN_17p1.js → command-store-CE1weJy8.js} +1 -1
- package/build/assets/{condenser-settings-wnEKhBof.js → condenser-settings-BolbDvm5.js} +1 -1
- package/build/assets/{confirmation-modal-Dau3w_sa.js → confirmation-modal-B5Ca6qFE.js} +1 -1
- package/build/assets/context-menu-list-item-7tAcm2c3.js +1 -0
- package/build/assets/conversation-D0N4dw_p.js +19 -0
- package/build/assets/conversation-DhRJuZLG.js +1 -0
- package/build/assets/conversation-panel-CNqHbS_Z.js +1 -0
- package/build/assets/conversation-service.api-BsJy6uuL.js +1 -0
- package/build/assets/conversation-state-store-D-w0uurj.js +1 -0
- package/build/assets/conversation-store-CC-isCnP.js +1 -0
- package/build/assets/{conversation-tab-empty-state-DyssnnWa.js → conversation-tab-empty-state-CStQLPVW.js} +1 -1
- package/build/assets/conversation-websocket-context-DvHgx_FE.js +3 -0
- package/build/assets/{copy-DYgmUdIw.js → copy-Chg-sFu3.js} +1 -1
- package/build/assets/{custom-toast-handlers-C-SZFmto.js → custom-toast-handlers-ufGJ6_Rc.js} +1 -1
- package/build/assets/declaration-CR6HMp29.js +1 -0
- package/build/assets/{device-verify-DqDlphsG.js → device-verify-C6mj28zv.js} +1 -1
- package/build/assets/dist-DNeWJ2bh.js +1 -0
- package/build/assets/dropdown-classes-BsVmxlNG.js +1 -0
- package/build/assets/edit-automation-modal-BpX-t-HD.js +1 -0
- package/build/assets/ellipsis-button-Vh5MvRZa.js +1 -0
- package/build/assets/entry.client-Ck9rQCg-.js +2 -0
- package/build/assets/enum-filter-dropdown-5JeF2RLb.js +1 -0
- package/build/assets/{environment-switch-overlay-XL8yCGP6.js → environment-switch-overlay-Tf_BIfeR.js} +1 -1
- package/build/assets/extensions-hub-CE9QOb5n.js +1 -0
- package/build/assets/{extensions-navigation-BYR8Giqq.js → extensions-navigation-DSLGNGbS.js} +1 -1
- package/build/assets/file-BTY6Gyy9.js +1 -0
- package/build/assets/files-tab-cL668j1I.js +1 -0
- package/build/assets/files-tab-store-m0ARqX_E.js +1 -0
- package/build/assets/{folder-ZZJVGgd7.js → folder-D1T2W1cj.js} +1 -1
- package/build/assets/git-control-bar-branch-button-DtIrOrie.js +27 -0
- package/build/assets/git-provider-icon-CHdGBdU2.js +1 -0
- package/build/assets/globe-Bzj_0oXT.js +1 -0
- package/build/assets/home-Cz2Veg56.js +1 -0
- package/build/assets/{i18n-CTohRuoO.js → i18n-DET2iOyh.js} +1 -1
- package/build/assets/install-server-modal-B9nXCS3u.js +1 -0
- package/build/assets/launch-CWz0dm4o.js +1 -0
- package/build/assets/{lesson-plan-dH5Bj0pN.js → lesson-plan-duSsqWVs.js} +1 -1
- package/build/assets/link-external-DGxVm4Ps.js +1 -0
- package/build/assets/{llm-client-DaH1TuyR.js → llm-client-CYEaUjGx.js} +1 -1
- package/build/assets/llm-settings-DFkXHuvT.js +1 -0
- package/build/assets/llm-settings-DhrdCXqX.js +1 -0
- package/build/assets/{loading-spinner-BPtYORNK.js → loading-spinner-5GT9q1xy.js} +1 -1
- package/build/assets/manage-backends-modal-DpBD_vR9.js +1 -0
- package/build/assets/manage-workspaces-modal-CtRbxREx.js +1 -0
- package/build/assets/manifest-eed90ff5.js +1 -0
- package/build/assets/{markdown-renderer-DMzf2i4x.js → markdown-renderer-B3IAVfv4.js} +1 -1
- package/build/assets/mcp-BUe7kiYM.js +9 -0
- package/build/assets/messages-dqp_KYyl.js +36 -0
- package/build/assets/{modal-backdrop-BAbgYsqB.js → modal-backdrop-RfNCrSpK.js} +1 -1
- package/build/assets/{modal-body-BI6Ru2Qr.js → modal-body-aoa2fx5W.js} +1 -1
- package/build/assets/modal-classes-6YqcqA6y.js +1 -0
- package/build/assets/{modal-close-button-t1Gh3qmL.js → modal-close-button-CtWOUMmw.js} +1 -1
- package/build/assets/{model-selector-SM9IUz-q.js → model-selector-BvSTrkhT.js} +1 -1
- package/build/assets/{navigation-context-D0YWpT8d.js → navigation-context-BdKYH32C.js} +1 -1
- package/build/assets/{navigation-link-Cn7KP3c5.js → navigation-link-U4vY9i_C.js} +1 -1
- package/build/assets/{openhands-logo-CnrF6LKb.js → openhands-logo-CCo0wJZX.js} +1 -1
- package/build/assets/{option-service.api-KvY_mZMY.js → option-service.api-DmNVxAvS.js} +1 -1
- package/build/assets/{organization-service.api-DzYTHTYC.js → organization-service.api-DbnougaQ.js} +1 -1
- package/build/assets/{path-utils-C3bQf6lJ.js → path-utils-onx24uF5.js} +1 -1
- package/build/assets/{plan-components-atxXCF0R.js → plan-components-CRDMQzsS.js} +1 -1
- package/build/assets/{planner-tab-BlrCpv-7.js → planner-tab-CmIjLz7q.js} +1 -1
- package/build/assets/{profiles-client-D6IkTJof.js → profiles-client-fEmgWkCW.js} +1 -1
- package/build/assets/{providers-Bx6EfrzZ.js → providers-CbD7fiic.js} +1 -1
- package/build/assets/proxy-BAdHH8QB.js +1 -0
- package/build/assets/{query-client-config-B7u9asM0.js → query-client-config-CRnGSujB.js} +1 -1
- package/build/assets/{recommended-automations-launcher-CgV8FyPK.js → recommended-automations-launcher-uTyODuzB.js} +3 -3
- package/build/assets/{root-dNntxffj.js → root-DmjpFpTu.js} +2 -2
- package/build/assets/root-Z2VHU4R3.css +1 -0
- package/build/assets/root-layout-DejMsKhy.js +2 -0
- package/build/assets/{sdk-section-page-DOIKvwSL.js → sdk-section-page-BgDlMhcq.js} +1 -1
- package/build/assets/{sdk-settings-schema-DsUf9wu1.js → sdk-settings-schema-CLmJ9sho.js} +1 -1
- package/build/assets/{search-27Owlc3A.js → search-SuJctqNJ.js} +1 -1
- package/build/assets/secrets-service-B7CxNinp.js +1 -0
- package/build/assets/secrets-settings-yK7CqIpm.js +1 -0
- package/build/assets/{server-client-DyAQ3NZ_.js → server-client-Kh4QSwDJ.js} +1 -1
- package/build/assets/{settings-BYkVX7vW.js → settings-DN5PpgRD.js} +1 -1
- package/build/assets/{settings-dropdown-input-BJYvGdg-.js → settings-dropdown-input-BtoovFre.js} +1 -1
- package/build/assets/{settings-gear-C77PgE_O.js → settings-gear-Dd8K2_8B.js} +1 -1
- package/build/assets/settings-index-DKC8IY1P.js +1 -0
- package/build/assets/{settings-input-Bn7F5C75.js → settings-input-CehsXnb3.js} +1 -1
- package/build/assets/settings-list-classes-E3v_f6QG.js +1 -0
- package/build/assets/settings-modal-DJ4kGzUx.js +1 -0
- package/build/assets/{settings-section-header-context-BgZe5YkE.js → settings-section-header-context-DewwJ0-F.js} +1 -1
- package/build/assets/settings-service.api-C3rxTtPj.js +1 -0
- package/build/assets/{settings-switch-BeIKrWms.js → settings-switch-BiBuS3xa.js} +1 -1
- package/build/assets/{settings-utils-B6Nl07io.js → settings-utils-DY04tWG1.js} +1 -1
- package/build/assets/{shared-conversation-AMyqXvpk.js → shared-conversation-h9YnBtCU.js} +1 -1
- package/build/assets/sidebar-mobile-menu-toggle-D0-AvsnT.js +1 -0
- package/build/assets/{sidebar-nav-link-BGjiJq-4.js → sidebar-nav-link-OhIeFyna.js} +1 -1
- package/build/assets/{sidebar-store-Uy3v0AOV.js → sidebar-store-DnQAJAE5.js} +1 -1
- package/build/assets/{skill-card-pill-row-DF1axQCG.js → skill-card-pill-row-BW9qvhoK.js} +1 -1
- package/build/assets/{skills-ChIKZPK4.js → skills-0GRKX5Xj.js} +1 -1
- package/build/assets/{skills-plugins-CcI_19lM.js → skills-plugins-DNcsNF88.js} +1 -1
- package/build/assets/skills-settings-7liFiSY6.js +2 -0
- package/build/assets/{styled-tooltip-CBzrri6o.js → styled-tooltip-hdfMXPQC.js} +1 -1
- package/build/assets/{switch-skeleton-DnC9wLp7.js → switch-skeleton-DSKqSx2A.js} +1 -1
- package/build/assets/{task-list-tab-DUJn1sgz.js → task-list-tab-DT6_zfUs.js} +1 -1
- package/build/assets/{terminal-DgQk1Ay6.js → terminal-CDhQGDua.js} +2 -2
- package/build/assets/{terminal-RmuaSdhJ.js → terminal-CPYWdo4j.js} +1 -1
- package/build/assets/{toggle-switch-Pvyp2RAN.js → toggle-switch-T2v6sJ6l.js} +1 -1
- package/build/assets/{typography-gpuWmrQO.js → typography-BDgnT7Yp.js} +1 -1
- package/build/assets/{u-check-circle-IUIfACQQ.js → u-check-circle-DOauqQKb.js} +1 -1
- package/build/assets/{u-check-circle-half-C1YxB6py.js → u-check-circle-half-steSK_JB.js} +1 -1
- package/build/assets/{u-circuit-BmVikJHu.js → u-circuit-x3ExjBbU.js} +1 -1
- package/build/assets/{u-edit-CFvXHqZk.js → u-edit-BbrptMCa.js} +1 -1
- package/build/assets/{use-active-conversation-BEFNwnFk.js → use-active-conversation-DHGcmjCK.js} +1 -1
- package/build/assets/use-agent-settings-schema-CLoTOSJI.js +1 -0
- package/build/assets/{use-agent-state-Bkrd1FZq.js → use-agent-state-PKrUPMJ3.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-CvkXFnTT.js → use-cloud-current-user-id-Ddr75hEz.js} +1 -1
- package/build/assets/{use-config-Co1O8-Ey.js → use-config-OIMQLQ2s.js} +1 -1
- package/build/assets/{use-create-conversation-CEgXpkfH.js → use-create-conversation-Bszyp13O.js} +1 -1
- package/build/assets/{use-event-store-BT_gV3ut.js → use-event-store-BomO7ywK.js} +1 -1
- package/build/assets/{use-get-secrets-DuhdIA59.js → use-get-secrets-8Jby8ele.js} +1 -1
- package/build/assets/{use-handle-plan-click-Ckkm5eIY.js → use-handle-plan-click-CohJPvvW.js} +1 -1
- package/build/assets/use-is-authed-dw2026rR.js +1 -0
- package/build/assets/{use-is-creating-conversation-BZ5hB_Bg.js → use-is-creating-conversation-DX2qSlfL.js} +1 -1
- package/build/assets/{use-launch-skill-in-chat-fNN_xGZG.js → use-launch-skill-in-chat-sQNEOLGD.js} +1 -1
- package/build/assets/use-llm-profiles-C861aFAq.js +1 -0
- package/build/assets/use-runtime-is-ready-Do2h_hRl.js +1 -0
- package/build/assets/{use-save-settings-VUrj_QNG.js → use-save-settings-DkAOEfD9.js} +1 -1
- package/build/assets/use-settings-D5hbTS9t.js +1 -0
- package/build/assets/{use-settings-nav-items-1ZvovKSr.js → use-settings-nav-items-BcSbo02d.js} +1 -1
- package/build/assets/{use-skills-DAMLFjKU.js → use-skills-D7PS0fH0.js} +1 -1
- package/build/assets/{use-task-list-CLJbuJgM.js → use-task-list-CsT10CBb.js} +1 -1
- package/build/assets/{use-unified-vscode-url-DdSRw-6P.js → use-unified-vscode-url-DEoe-NRI.js} +1 -1
- package/build/assets/use-user-conversation-Cs5H1pUF.js +1 -0
- package/build/assets/{useMutation-DqrumCWD.js → useMutation-GSSKKebK.js} +1 -1
- package/build/assets/{useTranslation-DCOdSSMl.js → useTranslation-B6voJV4y.js} +1 -1
- package/build/assets/utils-DCVfKFRt.js +1 -0
- package/build/assets/{vendor~browser-BNjNhjFU.js → vendor~browser-BrOJLj3y.js} +1 -1
- package/build/assets/vendor~conversation-panel~conversation-C9o-K1hW.js +1 -0
- package/build/assets/vendor~conversation-panel~conversation~index-RXYdJYxU.js +1 -0
- package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-DJS-rJdI.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DpAdkv8m.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-6ByzelMS.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B92czPCF.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BED5W_c4.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-By5W2oHN.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CCbqAFiI.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BbFOrAjI.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CG96FCly.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-smY2r837.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-E4d6IEfI.js} +1 -1
- package/build/assets/{vendor~home~mcp~automations-list-Cs-TO3fK.js → vendor~home~mcp~automations-list-CZSK-lT2.js} +1 -1
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-Z3nsiNNq.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CjJdFLoM.js} +1 -1
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DbfELDJu.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-m8dOii0J.js} +2 -2
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-DjAjXS5J.js → vendor~root-layout~home~conversation-panel~conversation-B5WNMnt4.js} +1 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-CbAhtEMv.js +1 -0
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-6Rm8U_Sr.js +9 -0
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BkQGKpye.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-tTR8C6m0.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-Bbs7UJ5U.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-BJbu9kpL.js} +2 -2
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-DTwbEEcX.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js} +1 -1
- package/build/assets/{vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js → vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js} +1 -1
- package/build/assets/{verification-settings-CsbvQcYS.js → verification-settings-Dlt8pINd.js} +1 -1
- package/build/assets/{vscode-tab-DjNArCgY.js → vscode-tab-DgepcYtF.js} +1 -1
- package/build/assets/{waiting-for-runtime-message-CntjExbU.js → waiting-for-runtime-message-CdK3btDZ.js} +1 -1
- package/build/assets/{x-mark-CrpjscNc.js → x-mark-BrkSPIiT.js} +1 -1
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +20 -2
- package/build/locales/ca/openhands.json +20 -2
- package/build/locales/de/openhands.json +20 -2
- package/build/locales/en/openhands.json +20 -2
- package/build/locales/es/openhands.json +20 -2
- package/build/locales/fr/openhands.json +20 -2
- package/build/locales/it/openhands.json +20 -2
- package/build/locales/ja/openhands.json +20 -2
- package/build/locales/ko-KR/openhands.json +20 -2
- package/build/locales/no/openhands.json +20 -2
- package/build/locales/pt/openhands.json +20 -2
- package/build/locales/tr/openhands.json +20 -2
- package/build/locales/uk/openhands.json +20 -2
- package/build/locales/zh-CN/openhands.json +20 -2
- package/build/locales/zh-TW/openhands.json +20 -2
- package/dist/api/acp-service/acp-service.api.d.ts +18 -0
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.js +54 -55
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-client-options.cjs +1 -1
- package/dist/api/agent-server-client-options.cjs.map +1 -1
- package/dist/api/agent-server-client-options.d.ts +4 -0
- package/dist/api/agent-server-client-options.js +18 -12
- package/dist/api/agent-server-client-options.js.map +1 -1
- package/dist/api/agent-server-compatibility.cjs +1 -1
- package/dist/api/agent-server-compatibility.cjs.map +1 -1
- package/dist/api/agent-server-compatibility.d.ts +1 -1
- package/dist/api/agent-server-compatibility.js +30 -25
- package/dist/api/agent-server-compatibility.js.map +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 -51
- package/dist/api/agent-server-config.js +20 -70
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/backend-registry/active-store.cjs +1 -1
- package/dist/api/backend-registry/active-store.cjs.map +1 -1
- package/dist/api/backend-registry/active-store.d.ts +11 -5
- package/dist/api/backend-registry/active-store.js +36 -27
- package/dist/api/backend-registry/active-store.js.map +1 -1
- package/dist/api/backend-registry/auth.cjs +1 -1
- package/dist/api/backend-registry/auth.cjs.map +1 -1
- package/dist/api/backend-registry/auth.js +3 -9
- package/dist/api/backend-registry/auth.js.map +1 -1
- package/dist/api/backend-registry/default-backend.cjs +1 -1
- package/dist/api/backend-registry/default-backend.cjs.map +1 -1
- package/dist/api/backend-registry/default-backend.d.ts +9 -16
- package/dist/api/backend-registry/default-backend.js +5 -4
- package/dist/api/backend-registry/default-backend.js.map +1 -1
- package/dist/api/backend-registry/storage.cjs +1 -1
- package/dist/api/backend-registry/storage.cjs.map +1 -1
- package/dist/api/backend-registry/storage.js +67 -34
- package/dist/api/backend-registry/storage.js.map +1 -1
- package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
- package/dist/api/cloud/conversation-service.api.d.ts +8 -13
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/cloud/organization-service.api.cjs.map +1 -1
- package/dist/api/cloud/organization-service.api.d.ts +1 -2
- package/dist/api/cloud/organization-service.api.js.map +1 -1
- package/dist/api/cloud/proxy.cjs +1 -1
- package/dist/api/cloud/proxy.cjs.map +1 -1
- package/dist/api/cloud/proxy.d.ts +6 -6
- package/dist/api/cloud/proxy.js +33 -24
- package/dist/api/cloud/proxy.js.map +1 -1
- package/dist/api/cloud/sandbox-service.api.cjs.map +1 -1
- package/dist/api/cloud/sandbox-service.api.d.ts +3 -3
- package/dist/api/cloud/sandbox-service.api.js.map +1 -1
- package/dist/api/cloud/secrets-service.api.cjs.map +1 -1
- package/dist/api/cloud/secrets-service.api.d.ts +3 -4
- package/dist/api/cloud/secrets-service.api.js.map +1 -1
- package/dist/api/cloud/settings-service.api.cjs +1 -1
- package/dist/api/cloud/settings-service.api.cjs.map +1 -1
- package/dist/api/cloud/settings-service.api.js +5 -1
- package/dist/api/cloud/settings-service.api.js.map +1 -1
- package/dist/api/cloud/skills-service.api.cjs.map +1 -1
- package/dist/api/cloud/skills-service.api.d.ts +5 -5
- package/dist/api/cloud/skills-service.api.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.js +115 -108
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/device-flow-client.cjs +1 -1
- package/dist/api/device-flow-client.cjs.map +1 -1
- package/dist/api/device-flow-client.d.ts +3 -5
- package/dist/api/device-flow-client.js +55 -66
- package/dist/api/device-flow-client.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.cjs.map +1 -1
- package/dist/api/event-service/event-service.api.d.ts +3 -3
- package/dist/api/event-service/event-service.api.js +17 -17
- package/dist/api/event-service/event-service.api.js.map +1 -1
- package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
- package/dist/api/git-service/agent-server-git-service.api.js +11 -11
- package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.js +6 -6
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.cjs +2 -2
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.js +10 -10
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.d.ts +5 -5
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
- package/dist/components/features/automations/automation-action-button-classes.d.ts +2 -2
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.d.ts +1 -0
- package/dist/components/features/backends/backend-form-modal.js +203 -140
- package/dist/components/features/backends/backend-form-modal.js.map +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 +117 -105
- package/dist/components/features/backends/backend-selector.js.map +1 -1
- package/dist/components/features/backends/backend-status-dot.cjs +1 -1
- package/dist/components/features/backends/backend-status-dot.cjs.map +1 -1
- package/dist/components/features/backends/backend-status-dot.d.ts +1 -1
- package/dist/components/features/backends/backend-status-dot.js +1 -1
- package/dist/components/features/backends/backend-status-dot.js.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +81 -70
- package/dist/components/features/backends/manage-backends-modal.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 +59 -57
- package/dist/components/features/chat/change-agent-button.js.map +1 -1
- package/dist/components/features/chat/change-agent-context-menu.cjs +1 -1
- package/dist/components/features/chat/change-agent-context-menu.cjs.map +1 -1
- package/dist/components/features/chat/change-agent-context-menu.d.ts +3 -1
- package/dist/components/features/chat/change-agent-context-menu.js +30 -25
- package/dist/components/features/chat/change-agent-context-menu.js.map +1 -1
- package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
- package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
- package/dist/components/features/chat/chat-add-file-button.js +39 -38
- package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
- package/dist/components/features/chat/chat-message.cjs +1 -1
- package/dist/components/features/chat/chat-message.cjs.map +1 -1
- package/dist/components/features/chat/chat-message.d.ts +2 -1
- package/dist/components/features/chat/chat-message.js +185 -57
- package/dist/components/features/chat/chat-message.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 +113 -113
- 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.js +52 -51
- package/dist/components/features/chat/components/chat-input-model.js.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.cjs +2 -2
- package/dist/components/features/chat/components/slash-command-menu.cjs.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.js +38 -34
- package/dist/components/features/chat/components/slash-command-menu.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-pr-button.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-pull-button.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-push-button.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 +63 -62
- package/dist/components/features/chat/git-control-bar.js.map +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs.map +1 -1
- package/dist/components/features/chat/pending-user-messages.js +27 -23
- package/dist/components/features/chat/pending-user-messages.js.map +1 -1
- package/dist/components/features/chat/switch-profile-button.cjs +1 -1
- package/dist/components/features/chat/switch-profile-button.cjs.map +1 -1
- package/dist/components/features/chat/switch-profile-button.js +26 -25
- package/dist/components/features/chat/switch-profile-button.js.map +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.cjs +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.cjs.map +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.js +77 -67
- package/dist/components/features/chat/switch-profile-context-menu.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.d.ts +2 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.js +3 -2
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.d.ts +2 -1
- package/dist/components/features/context-menu/context-menu-icon-text.js +20 -10
- package/dist/components/features/context-menu/context-menu-icon-text.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.js +10 -9
- package/dist/components/features/context-menu/context-menu-list-item.js.map +1 -1
- package/dist/components/features/controls/agent-status.cjs +1 -1
- package/dist/components/features/controls/agent-status.js +12 -12
- package/dist/components/features/controls/git-tools-submenu.cjs +1 -1
- package/dist/components/features/controls/git-tools-submenu.cjs.map +1 -1
- package/dist/components/features/controls/git-tools-submenu.js +1 -1
- package/dist/components/features/controls/git-tools-submenu.js.map +1 -1
- package/dist/components/features/controls/macros-submenu.cjs +1 -1
- package/dist/components/features/controls/macros-submenu.cjs.map +1 -1
- package/dist/components/features/controls/macros-submenu.js +1 -1
- package/dist/components/features/controls/macros-submenu.js.map +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.js +14 -15
- package/dist/components/features/controls/server-status-context-menu-icon-text.js.map +1 -1
- package/dist/components/features/controls/server-status-context-menu.cjs +1 -1
- package/dist/components/features/controls/server-status-context-menu.js +4 -4
- package/dist/components/features/controls/server-status.cjs +1 -1
- package/dist/components/features/controls/server-status.js +7 -7
- package/dist/components/features/controls/tools-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/controls/tools-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/controls/tools-context-menu-icon-text.js +16 -16
- package/dist/components/features/controls/tools-context-menu-icon-text.js.map +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.js +11 -11
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.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.js +11 -11
- 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 +60 -47
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +86 -82
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js +4 -4
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +9 -9
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js +93 -93
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.js +177 -177
- package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.cjs +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.cjs.map +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.js +13 -13
- package/dist/components/features/conversation-panel/ellipsis-button.js.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js +57 -53
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs.map +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js +3 -2
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js.map +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs.map +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js +11 -8
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js.map +1 -1
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.cjs.map +1 -1
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.d.ts +2 -5
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.js.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.js +45 -42
- package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
- package/dist/components/features/home/llm-not-configured-banner.d.ts +11 -0
- package/dist/components/features/home/shared/dropdown-item.cjs +1 -1
- package/dist/components/features/home/shared/dropdown-item.cjs.map +1 -1
- package/dist/components/features/home/shared/dropdown-item.js +20 -16
- package/dist/components/features/home/shared/dropdown-item.js.map +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.cjs +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.cjs.map +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.js +23 -22
- package/dist/components/features/home/shared/generic-dropdown-menu.js.map +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs.map +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +103 -102
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js.map +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs.map +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +68 -67
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.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 +62 -60
- package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
- package/dist/components/features/mcp-page/index.cjs +1 -1
- package/dist/components/features/mcp-page/index.d.ts +1 -0
- package/dist/components/features/mcp-page/index.js +1 -0
- 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.js +141 -121
- package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
- package/dist/components/features/mcp-page/save-as-secret-toggle.cjs +2 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.cjs.map +1 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.d.ts +7 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.js +50 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.js.map +1 -0
- package/dist/components/features/onboarding/onboarding-modal.d.ts +2 -2
- package/dist/components/features/onboarding/steps/check-backend-step.d.ts +1 -1
- package/dist/components/features/onboarding/steps/choose-agent-step.d.ts +2 -1
- package/dist/components/features/onboarding/steps/setup-acp-secrets-step.d.ts +19 -10
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.d.ts +5 -0
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -0
- package/dist/components/features/settings/llm-profiles/profile-actions-menu.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/profile-actions-menu.js +1 -0
- package/dist/components/features/skills/extensions-navigation.cjs +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
- package/dist/components/features/skills/extensions-navigation.js +1 -1
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/shared/buttons/back-nav-button.cjs +2 -0
- package/dist/components/shared/buttons/back-nav-button.cjs.map +1 -0
- package/dist/components/shared/buttons/back-nav-button.d.ts +17 -0
- package/dist/components/shared/buttons/back-nav-button.js +33 -0
- package/dist/components/shared/buttons/back-nav-button.js.map +1 -0
- package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.js +5 -5
- package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.js +32 -31
- package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.cjs +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.cjs.map +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.js +14 -13
- package/dist/components/shared/modals/confirmation-modals/base-modal.js.map +1 -1
- package/dist/components/shared/modals/settings/settings-modal.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-modal.cjs.map +1 -1
- package/dist/components/shared/modals/settings/settings-modal.js +17 -16
- package/dist/components/shared/modals/settings/settings-modal.js.map +1 -1
- package/dist/components/shared/text-shimmer.cjs +2 -0
- package/dist/components/shared/text-shimmer.cjs.map +1 -0
- package/dist/components/shared/text-shimmer.d.ts +11 -0
- package/dist/components/shared/text-shimmer.js +43 -0
- package/dist/components/shared/text-shimmer.js.map +1 -0
- package/dist/constants/acp-providers.cjs +1 -1
- package/dist/constants/acp-providers.cjs.map +1 -1
- package/dist/constants/acp-providers.d.ts +16 -3
- package/dist/constants/acp-providers.js +0 -1
- package/dist/constants/acp-providers.js.map +1 -1
- package/dist/contexts/active-backend-context.cjs +1 -1
- package/dist/contexts/active-backend-context.cjs.map +1 -1
- package/dist/contexts/active-backend-context.js +32 -32
- package/dist/contexts/active-backend-context.js.map +1 -1
- package/dist/hooks/chat/use-chat-input-logic.cjs +1 -1
- package/dist/hooks/chat/use-chat-input-logic.cjs.map +1 -1
- package/dist/hooks/chat/use-chat-input-logic.js +13 -6
- package/dist/hooks/chat/use-chat-input-logic.js.map +1 -1
- package/dist/hooks/mutation/use-save-fields-as-secrets.cjs +2 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.cjs.map +1 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.d.ts +9 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.js +24 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.js.map +1 -0
- package/dist/hooks/mutation/use-unified-start-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-unified-start-conversation.js +8 -8
- package/dist/hooks/mutation/use-unified-stop-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-unified-stop-conversation.js +15 -15
- package/dist/hooks/query/use-acp-auth-status.d.ts +36 -0
- package/dist/hooks/query/use-agent-settings-schema.cjs +1 -1
- package/dist/hooks/query/use-agent-settings-schema.cjs.map +1 -1
- package/dist/hooks/query/use-agent-settings-schema.js +26 -16
- package/dist/hooks/query/use-agent-settings-schema.js.map +1 -1
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.d.ts +2 -0
- package/dist/hooks/query/use-backends-health.js +31 -21
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.js +15 -14
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-settings.cjs +1 -1
- package/dist/hooks/query/use-settings.cjs.map +1 -1
- package/dist/hooks/query/use-settings.js +65 -52
- package/dist/hooks/query/use-settings.js.map +1 -1
- package/dist/hooks/query/use-user-conversation.cjs +1 -1
- package/dist/hooks/query/use-user-conversation.cjs.map +1 -1
- package/dist/hooks/query/use-user-conversation.js +20 -11
- package/dist/hooks/query/use-user-conversation.js.map +1 -1
- package/dist/hooks/use-agent-state.cjs +1 -1
- package/dist/hooks/use-agent-state.js +13 -13
- package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
- package/dist/hooks/use-conversation-name-context-menu.js +10 -10
- package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
- package/dist/hooks/use-llm-configured.d.ts +25 -0
- package/dist/hooks/use-runtime-is-ready.cjs +1 -1
- package/dist/hooks/use-runtime-is-ready.js +5 -5
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +19 -1
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +321 -15
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/stop-circle.cjs +1 -1
- package/dist/icons/stop-circle.cjs.map +1 -1
- package/dist/icons/stop-circle.js +7 -10
- package/dist/icons/stop-circle.js.map +1 -1
- package/dist/locales/ar/openhands.json +20 -2
- package/dist/locales/ca/openhands.json +20 -2
- package/dist/locales/de/openhands.json +20 -2
- package/dist/locales/en/openhands.json +20 -2
- package/dist/locales/es/openhands.json +20 -2
- package/dist/locales/fr/openhands.json +20 -2
- package/dist/locales/it/openhands.json +20 -2
- package/dist/locales/ja/openhands.json +20 -2
- package/dist/locales/ko-KR/openhands.json +20 -2
- package/dist/locales/no/openhands.json +20 -2
- package/dist/locales/pt/openhands.json +20 -2
- package/dist/locales/tr/openhands.json +20 -2
- package/dist/locales/uk/openhands.json +20 -2
- package/dist/locales/zh-CN/openhands.json +20 -2
- package/dist/locales/zh-TW/openhands.json +20 -2
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js.map +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/routes/conversation.cjs +1 -1
- package/dist/routes/conversation.cjs.map +1 -1
- package/dist/routes/conversation.js +1 -1
- package/dist/routes/conversation.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.js +55 -54
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/secrets-settings.cjs +1 -1
- package/dist/routes/secrets-settings.cjs.map +1 -1
- package/dist/routes/secrets-settings.js +19 -27
- package/dist/routes/secrets-settings.js.map +1 -1
- package/dist/stores/conversation-store.cjs +1 -1
- package/dist/stores/conversation-store.cjs.map +1 -1
- package/dist/stores/conversation-store.d.ts +4 -0
- package/dist/stores/conversation-store.js +6 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/types/agent-server/core/events/acp-tool-call-event.d.ts +6 -4
- package/dist/types/agent-server/core/events/system-event.d.ts +5 -0
- package/dist/types/automation.d.ts +15 -0
- package/dist/types/settings.d.ts +3 -1
- package/dist/ui/combobox-caret.cjs +1 -1
- package/dist/ui/combobox-caret.cjs.map +1 -1
- package/dist/ui/combobox-caret.d.ts +1 -1
- package/dist/ui/combobox-caret.js +9 -8
- package/dist/ui/combobox-caret.js.map +1 -1
- package/dist/ui/context-menu.cjs +1 -1
- package/dist/ui/context-menu.cjs.map +1 -1
- package/dist/ui/context-menu.js +9 -8
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/dropdown/dropdown-menu.cjs +1 -1
- package/dist/ui/dropdown/dropdown-menu.cjs.map +1 -1
- package/dist/ui/dropdown/dropdown-menu.js +21 -17
- package/dist/ui/dropdown/dropdown-menu.js.map +1 -1
- package/dist/ui/dropdown/dropdown.cjs +1 -1
- package/dist/ui/dropdown/dropdown.cjs.map +1 -1
- package/dist/ui/dropdown/dropdown.js +2 -2
- package/dist/ui/dropdown/dropdown.js.map +1 -1
- package/dist/utils/automation-schedule.d.ts +1 -0
- package/dist/utils/dropdown-classes.cjs +2 -0
- package/dist/utils/dropdown-classes.cjs.map +1 -0
- package/dist/utils/dropdown-classes.d.ts +32 -0
- package/dist/utils/dropdown-classes.js +8 -0
- package/dist/utils/dropdown-classes.js.map +1 -0
- package/dist/utils/form-control-classes.cjs +1 -1
- package/dist/utils/form-control-classes.cjs.map +1 -1
- package/dist/utils/form-control-classes.d.ts +18 -2
- package/dist/utils/form-control-classes.js +4 -3
- package/dist/utils/form-control-classes.js.map +1 -1
- package/dist/utils/git-control-bar-classes.cjs +2 -0
- package/dist/utils/git-control-bar-classes.cjs.map +1 -0
- package/dist/utils/git-control-bar-classes.d.ts +4 -0
- package/dist/utils/git-control-bar-classes.js +14 -0
- package/dist/utils/git-control-bar-classes.js.map +1 -0
- package/dist/utils/handle-event-for-ui.cjs.map +1 -1
- package/dist/utils/handle-event-for-ui.d.ts +6 -3
- package/dist/utils/handle-event-for-ui.js.map +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.cjs +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.cjs.map +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.js +3 -3
- package/dist/utils/mobile-top-bar-icon-button-classes.js.map +1 -1
- package/dist/utils/modal-classes.cjs +2 -0
- package/dist/utils/modal-classes.cjs.map +1 -0
- package/dist/utils/modal-classes.d.ts +8 -0
- package/dist/utils/modal-classes.js +7 -0
- package/dist/utils/modal-classes.js.map +1 -0
- package/dist/utils/openhands-llm.cjs +2 -0
- package/dist/utils/openhands-llm.cjs.map +1 -0
- package/dist/utils/openhands-llm.d.ts +2 -0
- package/dist/utils/openhands-llm.js +9 -0
- package/dist/utils/openhands-llm.js.map +1 -0
- package/dist/utils/redact-custom-secrets.cjs +2 -0
- package/dist/utils/redact-custom-secrets.cjs.map +1 -0
- package/dist/utils/redact-custom-secrets.d.ts +6 -0
- package/dist/utils/redact-custom-secrets.js +10 -0
- package/dist/utils/redact-custom-secrets.js.map +1 -0
- package/dist/utils/status.cjs +1 -1
- package/dist/utils/status.cjs.map +1 -1
- package/dist/utils/status.d.ts +2 -1
- package/dist/utils/status.js +9 -8
- package/dist/utils/status.js.map +1 -1
- package/dist/utils/system-message-adapter.cjs +1 -1
- package/dist/utils/system-message-adapter.cjs.map +1 -1
- package/dist/utils/system-message-adapter.js +10 -7
- package/dist/utils/system-message-adapter.js.map +1 -1
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.ts +2 -1
- package/dist/utils/utils.js +21 -20
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/scripts/dev-safe.mjs +3 -1
- package/scripts/dev-static.mjs +2 -2
- package/scripts/dev-with-automation.mjs +283 -108
- package/scripts/static-build.mjs +20 -19
- package/scripts/static-server.mjs +50 -3
- package/build/assets/acp-providers-CbiRekh9.js +0 -1
- package/build/assets/active-backend-context-cCM1vYYZ.js +0 -1
- package/build/assets/add-backend-modal-DIUQzMPa.js +0 -1
- package/build/assets/agent-server-client-options-Bc5ZorQZ.js +0 -1
- package/build/assets/agent-server-compatibility-BlkUsrX2.js +0 -1
- package/build/assets/agent-server-conversation-service.api-C2V5SlHu.js +0 -5
- package/build/assets/api-key-entry-screen-B2gynaCp.js +0 -1
- package/build/assets/automation-detail-DJvbVSYK.js +0 -1
- package/build/assets/automations-list-6FDbI5dc.js +0 -1
- package/build/assets/backend-form-modal-Dnk33xA_.js +0 -1
- package/build/assets/base-modal-_dYTw1ri.js +0 -1
- package/build/assets/brand-button-Br7f0kZJ.js +0 -1
- package/build/assets/browser-store-Couc4S5D.js +0 -1
- package/build/assets/clock-BRjCgHTc.js +0 -1
- package/build/assets/combobox-caret-to1O8irE.js +0 -1
- package/build/assets/context-menu-list-item-CWNFpuiC.js +0 -1
- package/build/assets/conversation-DVrKU0oz.js +0 -19
- package/build/assets/conversation-Dlys-D5A.js +0 -1
- package/build/assets/conversation-panel-iF09WjZ4.js +0 -1
- package/build/assets/conversation-service.api-CCfztilW.js +0 -1
- package/build/assets/conversation-state-store-u5jepov0.js +0 -1
- package/build/assets/conversation-store-Z5iMCRpc.js +0 -1
- package/build/assets/conversation-websocket-context-DhJhqUna.js +0 -3
- package/build/assets/declaration-BNMqORFE.js +0 -1
- package/build/assets/dist-BxBP7tFD.js +0 -1
- package/build/assets/edit-automation-modal-BGzR3nfZ.js +0 -1
- package/build/assets/ellipsis-button-ZyLMPURn.js +0 -1
- package/build/assets/entry.client-1VMHpktY.js +0 -2
- package/build/assets/enum-filter-dropdown-CEgCdu4A.js +0 -1
- package/build/assets/extensions-hub-C651jsVh.js +0 -1
- package/build/assets/files-tab-R5z0lLdY.js +0 -1
- package/build/assets/files-tab-store-CDyVTXNT.js +0 -1
- package/build/assets/git-control-bar-branch-button-COdRAYHb.js +0 -27
- package/build/assets/git-provider-icon-BzLbc0yC.js +0 -1
- package/build/assets/home-e-egNUXZ.js +0 -1
- package/build/assets/install-server-modal-DHlbgqVH.js +0 -1
- package/build/assets/launch-CshDse3e.js +0 -1
- package/build/assets/link-external-D2POYx4c.js +0 -1
- package/build/assets/llm-settings-Bql-vydt.js +0 -1
- package/build/assets/llm-settings-C_tal6Ds.js +0 -1
- package/build/assets/manage-backends-modal-l7RkKfwX.js +0 -1
- package/build/assets/manage-workspaces-modal-DhKF_8z3.js +0 -1
- package/build/assets/manifest-3bf30d69.js +0 -1
- package/build/assets/mcp-ByeBfdfU.js +0 -9
- package/build/assets/messages-D0rWot7s.js +0 -36
- package/build/assets/proxy-CxydCnis.js +0 -1
- package/build/assets/root-DHeCXo9N.css +0 -1
- package/build/assets/root-layout-Czo9Ma6Q.js +0 -2
- package/build/assets/secrets-service-BsnKFc2x.js +0 -1
- package/build/assets/secrets-settings-Bz_UohPJ.js +0 -1
- package/build/assets/settings-client-C73C7IgV.js +0 -1
- package/build/assets/settings-index-Dz0BmdJD.js +0 -1
- package/build/assets/settings-list-classes-Bf80tWtc.js +0 -1
- package/build/assets/settings-modal-Brzgh5Yw.js +0 -1
- package/build/assets/settings-service.api-CZ3uWx4v.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-Do_aA9Zm.js +0 -1
- package/build/assets/skills-settings-DlA5hlXw.js +0 -2
- package/build/assets/status-hp6M6E7E.js +0 -1
- package/build/assets/use-agent-settings-schema-33Un7UF2.js +0 -1
- package/build/assets/use-is-authed-BggE5wPj.js +0 -1
- package/build/assets/use-llm-profiles-DDOol3gK.js +0 -1
- package/build/assets/use-runtime-is-ready-B7EF4BKU.js +0 -1
- package/build/assets/use-settings-DQIZmIov.js +0 -1
- package/build/assets/use-user-conversation-C6hrMMtn.js +0 -1
- package/build/assets/utils-i18rdUj2.js +0 -1
- package/build/assets/vendor~conversation-panel~conversation-a9SyrrhV.js +0 -1
- package/build/assets/vendor~conversation-panel~conversation~index-C23ZXO4R.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js +0 -9
- /package/build/assets/{automation-IdgZq6ZK.js → automation-XDPAjiZi.js} +0 -0
- /package/build/assets/{color-themes-DSaoIL6A.js → color-themes-B9pm9c-R.js} +0 -0
- /package/build/assets/{common-DR1t-EeP.js → common-DqjLSBOt.js} +0 -0
- /package/build/assets/{conversation-local-storage-UYl-SX-r.js → conversation-local-storage-YmOVXxxW.js} +0 -0
- /package/build/assets/{dist-C6t0EXL7.js → dist-C3NfioQC.js} +0 -0
- /package/build/assets/{environment-switch-store-C4ulFJKp.js → environment-switch-store-CiurvTtK.js} +0 -0
- /package/build/assets/{health-store-BDC2rM-X.js → health-store-B5f0S2FY.js} +0 -0
- /package/build/assets/{map-provider-COBVzZYo.js → map-provider-BJ_8KZKU.js} +0 -0
- /package/build/assets/{middleware-BC9EwbB9.js → middleware-CfatjPYZ.js} +0 -0
- /package/build/assets/{objectWithoutPropertiesLoose-Du6eBn-V.js → objectWithoutPropertiesLoose-DSQKyRhw.js} +0 -0
- /package/build/assets/{react-Do0CT17Y.js → react-Dy05vyj5.js} +0 -0
- /package/build/assets/{sdk-settings-field-metadata-CBPmeqYa.js → sdk-settings-field-metadata-DQiaIBie.js} +0 -0
- /package/build/assets/{settings-D_H-qsRm.js → settings-DGY6n4J2.js} +0 -0
- /package/build/assets/{settings-like-page-layout-classes-I0BDBEoq.js → settings-like-page-layout-classes-D7YjdTd0.js} +0 -0
- /package/build/assets/{use-breakpoint-DbJ6FkQ-.js → use-breakpoint-DF_RiQ6s.js} +0 -0
- /package/build/assets/{use-click-outside-element-DffgWWoZ.js → use-click-outside-element-DhxCUyWl.js} +0 -0
- /package/build/assets/{v4-CNn21NXa.js → v4-khGvL7i2.js} +0 -0
- /package/build/assets/{vendor~browser-DDiZgqD3.js → vendor~browser-DisFGEp9.js} +0 -0
- /package/build/assets/{vendor~browser-tab-BgwV1mxF.js → vendor~browser-tab-BxhTtM9_.js} +0 -0
- /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-DbvX3OcM.js → vendor~conversation-panel~conversation~alert-banner-w-I2sY6c.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-iOsylxCS.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-BClAMeFe.js} +0 -0
- /package/build/assets/{vendor~files-tab-BGKayPiK.js → vendor~files-tab-BtkpAiMX.js} +0 -0
- /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BW6261Sb.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CyZ-3lDQ.js} +0 -0
- /package/build/assets/{vendor~home~mcp~automations-list-DoPfwaXj.js → vendor~home~mcp~automations-list-BgV86Sti.js} +0 -0
- /package/build/assets/{vendor~launch-vdeRTWFu.js → vendor~launch-BXgl67Re.js} +0 -0
- /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-CLlsvdNP.js} +0 -0
- /package/build/assets/{vendor~terminal-DUrOWGFE.js → vendor~terminal-DZaJIY8A.js} +0 -0
|
@@ -1 +1 @@
|
|
|
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 ee}from"./circle-plus-check-toggle-P7ZZToV4.js";import{_ as te,a as o,b as ne,c as re,d as ie,f as ae,g as oe,h as se,i as ce,l as le,m as ue,n as de,o as fe,p as s,r as c,s as l,t as u,u as d,v as f,x as p,y as m}from"./vendor~home~mcp~automations-list-DoPfwaXj.js";var h=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`}]]),g=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`}]]),_=n(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),v=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`}]]),y=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`}]]),b=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`}]]),x=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`}]]),S=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`}]]),C=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`}]]),w=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`}]]),T=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`}]]),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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Personal access token from your Airtable account.`,helperLink:`https://airtable.com/create/tokens`}]},auth:{strategy:`api_key`}}]},D={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`apify`,command:`npx`,args:[`-y`,`@apify/actors-mcp-server`],envFields:[{key:`APIFY_TOKEN`,label:`Apify token`,type:`password`,required:!0,helperText:`API token from your Apify account settings.`,helperLink:`https://console.apify.com/account/integrations`}]},auth:{strategy:`api_key`}}]},O={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.atlassian.com/v1/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},k={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from the Brave Search API portal.`,helperLink:`https://api-dashboard.search.brave.com/app/keys`}]},auth:{strategy:`api_key`}}]},A={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`,keywords:[`browser`,`automation`,`chrome`,`playwright`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`browser_mcp`,command:`npx`,args:[`-y`,`@browsermcp/mcp`]},auth:{strategy:`none`}}]},j={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Password for your ClickHouse user.`,helperLink:`https://clickhouse.com/docs/operations/access-rights`}]},auth:{strategy:`api_key`}}]},M={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://bindings.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},N={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://browser.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},P={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://builds.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},F={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://docs.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},I={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://observability.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},L={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.deepwiki.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},R={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`elevenlabs`,command:`uvx`,args:[`elevenlabs-mcp`],envFields:[{key:`ELEVENLABS_API_KEY`,label:`ElevenLabs API key`,type:`password`,required:!0,helperText:`API key from your ElevenLabs account settings.`,helperLink:`https://elevenlabs.io/app/settings/api-keys`}]},auth:{strategy:`api_key`}}]},z={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`everything`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-everything`]},auth:{strategy:`none`}}]},B={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`exa`,command:`npx`,args:[`-y`,`exa-mcp-server`],envFields:[{key:`EXA_API_KEY`,label:`Exa API key`,type:`password`,required:!0,helperText:`API key from your Exa account.`,helperLink:`https://exa.ai/docs/reference/getting-started`}]},auth:{strategy:`api_key`}}]},V={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`fetch`,command:`uvx`,args:[`mcp-server-fetch`]},auth:{strategy:`none`}}]},pe={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Personal access token from your Figma account settings.`,helperLink:`https://developers.figma.com/docs/rest-api/authentication/#personal-access-tokens`}]},auth:{strategy:`api_key`}}]},me={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)`,keywords:[`files`,`local`,`disk`],installHint:`Each path is exposed read/write. Add as many as you need, separated by spaces.`,kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`}]},auth:{strategy:`api_key`}}]},he={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`firecrawl`,command:`npx`,args:[`-y`,`firecrawl-mcp`],envFields:[{key:`FIRECRAWL_API_KEY`,label:`Firecrawl API key`,type:`password`,required:!0,helperText:`API key from your Firecrawl dashboard.`,helperLink:`https://www.firecrawl.dev/app/api-keys`}]},auth:{strategy:`api_key`}}]},ge={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`,keywords:[`version control`,`log`,`diff`,`blame`],installHint:`Runs the official Python server via uvx — no setup beyond the path.`,kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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>.`}]},auth:{strategy:`api_key`}}]},_e={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Classic or fine-grained personal access token from GitHub settings.`,helperLink:`https://github.com/settings/tokens`}]},auth:{strategy:`api_key`}}]},ve={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://huggingface.co/mcp`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},ye={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`kagi`,command:`uvx`,args:[`kagimcp`],envFields:[{key:`KAGI_API_KEY`,label:`Kagi API key`,type:`password`,required:!0,helperText:`API key from your Kagi account settings.`,helperLink:`https://kagi.com/settings?p=api`}]},auth:{strategy:`api_key`}}]},be={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.`,kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.linear.app/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},xe={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`memory`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-memory`]},auth:{strategy:`none`}}]},Se={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Connection string from your MongoDB Atlas cluster.`,helperLink:`https://www.mongodb.com/docs/atlas/connect-to-database-deployment/#connect-with-a-connection-string`}]},auth:{strategy:`api_key`}}]},Ce={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from your Neon account settings.`,helperLink:`https://neon.tech/docs/manage/api-keys`}]},auth:{strategy:`api_key`}}]},we={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,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Internal integration token from your Notion integrations page.`,helperLink:`https://www.notion.so/profile/integrations`}]},auth:{strategy:`api_key`}}]},Te={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`,keywords:[`notes`,`knowledge`,`markdown`,`vault`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`,helperLink:`https://github.com/coddingtonbear/obsidian-local-rest-api`}]},auth:{strategy:`api_key`}}]},Ee={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.paypal.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},De={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`playwright`,command:`npx`,args:[`-y`,`@playwright/mcp`]},auth:{strategy:`none`}}]},Oe={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`,keywords:[`cache`,`kv`,`database`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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:`Connection URL for your Redis instance. Appended as --url <redis_url>.`,helperLink:`https://redis.io/docs/latest/operate/rc/databases/connect/`}]},auth:{strategy:`api_key`}}]},ke={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`resend`,command:`npx`,args:[`-y`,`mcp-send-email`],envFields:[{key:`RESEND_API_KEY`,label:`Resend API key`,type:`password`,required:!0,helperText:`API key from your Resend dashboard.`,helperLink:`https://resend.com/api-keys`},{key:`SENDER_EMAIL_ADDRESS`,label:`From address`,type:`text`,placeholder:`you@example.com`,required:!0}]},auth:{strategy:`api_key`}}]},Ae={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://mcp.sentry.dev/mcp`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},je={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`sequential_thinking`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-sequential-thinking`]},auth:{strategy:`none`}}]},Me={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`slack`,command:`npx`,args:[`-y`,`@zencoderai/slack-mcp-server`],envFields:[{key:`SLACK_TEAM_ID`,label:`Team / Workspace ID`,type:`text`,placeholder:`T01234567`,helperText:`First get your [Slack URL](https://slack.com/help/articles/221769328-Locate-your-Slack-URL-or-ID#find-your-url). Then use that to get your [Workspace ID](https://slack.com/help/articles/221769328-Locate-your-Slack-URL-or-ID#find-your-workspace-or-org-id).`,required:!0},{key:`SLACK_BOT_TOKEN`,label:`Bot token`,type:`password`,placeholder:`xoxb-...`,required:!0,helperText:`You'll need to create or have access to a [Slack App](https://github.com/zencoderai/slack-mcp-server#slack-bot-setup) to get a Bot token.`}]},auth:{strategy:`api_key`}}]},Ne={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://mcp.stripe.com/`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},Pe={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`,helperLink:`https://supabase.com/dashboard/account/tokens`}]},auth:{strategy:`api_key`}}]},Fe={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from your Tavily dashboard.`,helperLink:`https://app.tavily.com/home?tab=keys`}]},auth:{strategy:`api_key`}}]},Ie={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`time`,command:`uvx`,args:[`mcp-server-time`]},auth:{strategy:`none`}}]},Le=`https://accounts.google.com/o/oauth2/v2/auth`,Re=`https://oauth2.googleapis.com/token`,ze=`https://login.microsoftonline.com/common/oauth2/v2.0/authorize`,Be=`https://login.microsoftonline.com/common/oauth2/v2.0/token`,Ve=`https://auth.atlassian.com/authorize`,He=`https://auth.atlassian.com/oauth/token`,H=(e,t,n,r,i,a=`GET`)=>({apiBaseUrl:e,authorizationUrl:Le,tokenUrl:Re,scopes:t,toolName:n,toolDescription:r,requestMethod:a,requestPath:i}),U=(e,t,n,r)=>({apiBaseUrl:`https://graph.microsoft.com/v1.0`,authorizationUrl:ze,tokenUrl:Be,scopes:e,toolName:t,toolDescription:n,requestMethod:`GET`,requestPath:r}),W=(e,t,n,r,i)=>({apiBaseUrl:e,authorizationUrl:Ve,tokenUrl:He,scopes:t,toolName:n,toolDescription:r,requestMethod:`GET`,requestPath:i}),G=`https://mcp.hubspot.com`,Ue=`${G}/oauth/authorize/user`,We=`${G}/oauth/v3/token`,Ge={github:`https://api.githubcopilot.com/mcp/`,hubspot:G,slack:`https://mcp.slack.com/mcp`,webflow:`https://mcp.webflow.com/mcp`,datadog:`https://mcp.datadoghq.com/api/unstable/mcp-server/mcp`,ordinal:`https://app.tryordinal.com/api/mcp`},Ke={github:{apiBaseUrl:`https://api.github.com`,authorizationUrl:`https://github.com/login/oauth/authorize`,tokenUrl:`https://github.com/login/oauth/access_token`,scopes:[`read:user`,`repo`],toolName:`get_authenticated_user`,toolDescription:`Fetch the authenticated GitHub user profile.`,requestMethod:`GET`,requestPath:`/user`},"google-docs":H(`https://docs.googleapis.com`,[`https://www.googleapis.com/auth/documents.readonly`],`get_document`,`Fetch a Google Docs document by ID.`,`/v1/documents/{documentId}`),slack:{provider:`mcp`,authorizationUrl:`https://slack.com/oauth/v2_user/authorize`,tokenUrl:`https://slack.com/api/oauth.v2.user.access`,scopes:[`search:read.public`,`search:read.private`,`search:read.mpim`,`search:read.im`,`search:read.files`,`search:read.users`,`chat:write`,`channels:history`,`groups:history`,`mpim:history`,`im:history`,`canvases:read`,`canvases:write`,`users:read`,`users:read.email`],pkce:!0,clientAuthentication:`body`},notion:{provider:`http`,apiBaseUrl:`https://api.notion.com`,openApiUrl:`https://developers.notion.com/openapi.json`,authorizationUrl:`https://api.notion.com/v1/oauth/authorize`,tokenUrl:`https://api.notion.com/v1/oauth/token`,scopes:[],toolName:`post_search`,toolDescription:`Search pages and databases in the connected Notion workspace.`,requestMethod:`POST`,requestPath:`/v1/search`},figma:{apiBaseUrl:`https://api.figma.com`,authorizationUrl:`https://www.figma.com/oauth`,tokenUrl:`https://api.figma.com/v1/oauth/token`,scopes:[`current_user:read`,`file_content:read`,`file_metadata:read`,`projects:read`],toolName:`get_file`,toolDescription:`Fetch a Figma file by key.`,requestMethod:`GET`,requestPath:`/v1/files/{fileKey}`},elevenlabs:{provider:`http`,authModes:[`api_key`],authStrategy:`api_key`,credentialLabel:`ElevenLabs API key`,credentialPlaceholder:`Paste your ElevenLabs API key`,credentialHelp:`Personal or workspace ElevenLabs API key sent in the xi-api-key header.`,apiKeyHeaderName:`xi-api-key`,apiBaseUrl:`https://api.elevenlabs.io`,openApiUrl:`https://api.elevenlabs.io/openapi.json`},"google-drive":H(`https://www.googleapis.com/drive/v3`,[`https://www.googleapis.com/auth/drive.metadata.readonly`],`list_files`,`List Drive files visible to the connected user.`,`/files`),"google-sheets":H(`https://sheets.googleapis.com`,[`https://www.googleapis.com/auth/spreadsheets.readonly`],`get_spreadsheet`,`Fetch spreadsheet metadata and sheets by ID.`,`/v4/spreadsheets/{spreadsheetId}`),gmail:H(`https://gmail.googleapis.com`,[`https://www.googleapis.com/auth/gmail.readonly`],`list_messages`,`List Gmail messages for the authenticated user.`,`/gmail/v1/users/me/messages`),"google-calendar":H(`https://www.googleapis.com/calendar/v3`,[`https://www.googleapis.com/auth/calendar.readonly`],`list_events`,`List events from the user's primary Google Calendar.`,`/calendars/primary/events`),jira:W(`https://api.atlassian.com/ex/jira/{cloudId}`,[`read:jira-work`],`list_projects`,`List Jira projects available to the connected user.`,`/rest/api/3/project/search`),confluence:W(`https://api.atlassian.com/ex/confluence/{cloudId}`,[`read:page:confluence`],`list_spaces`,`List Confluence spaces available to the connected user.`,`/wiki/api/v2/spaces`),linear:{apiBaseUrl:`https://api.linear.app`,authorizationUrl:`https://linear.app/oauth/authorize`,tokenUrl:`https://api.linear.app/oauth/token`,scopes:[`read`],toolName:`list_issues`,toolDescription:`Query issues from Linear via GraphQL.`,requestMethod:`POST`,requestPath:`/graphql`},asana:{apiBaseUrl:`https://app.asana.com/api/1.0`,authorizationUrl:`https://app.asana.com/-/oauth_authorize`,tokenUrl:`https://app.asana.com/-/oauth_token`,scopes:[`tasks:read`],toolName:`list_tasks`,toolDescription:`List tasks visible to the connected Asana user.`,requestMethod:`GET`,requestPath:`/tasks`},trello:{apiBaseUrl:`https://api.trello.com/1`,toolName:`list_boards`,toolDescription:`List Trello boards visible to the authenticated member.`,requestMethod:`GET`,requestPath:`/members/me/boards`},clickup:{apiBaseUrl:`https://api.clickup.com/api/v2`,authorizationUrl:`https://app.clickup.com/api`,tokenUrl:`https://api.clickup.com/api/v2/oauth/token`,scopes:[],toolName:`list_workspaces`,toolDescription:`List ClickUp workspaces available to the connected user.`,requestMethod:`GET`,requestPath:`/team`},monday:{apiBaseUrl:`https://api.monday.com/v2`,authorizationUrl:`https://auth.monday.com/oauth2/authorize`,tokenUrl:`https://auth.monday.com/oauth2/token`,scopes:[`boards:read`],toolName:`list_boards`,toolDescription:`Query boards from Monday.com.`,requestMethod:`POST`,requestPath:`/`},airtable:{apiBaseUrl:`https://api.airtable.com/v0`,authorizationUrl:`https://airtable.com/oauth2/v1/authorize`,tokenUrl:`https://airtable.com/oauth2/v1/token`,scopes:[`schema.bases:read`,`data.records:read`],toolName:`list_bases`,toolDescription:`List Airtable bases the connected user granted access to.`,requestMethod:`GET`,requestPath:`/meta/bases`},dropbox:{apiBaseUrl:`https://api.dropboxapi.com/2`,authorizationUrl:`https://www.dropbox.com/oauth2/authorize`,tokenUrl:`https://api.dropboxapi.com/oauth2/token`,scopes:[`files.metadata.read`],toolName:`list_root_folder`,toolDescription:`List entries in the root Dropbox folder.`,requestMethod:`POST`,requestPath:`/files/list_folder`},box:{apiBaseUrl:`https://api.box.com/2.0`,authorizationUrl:`https://account.box.com/api/oauth2/authorize`,tokenUrl:`https://api.box.com/oauth2/token`,scopes:[`root_readonly`,`item_read`],toolName:`list_root_items`,toolDescription:`List files and folders in the Box root folder.`,requestMethod:`GET`,requestPath:`/folders/0/items`},"microsoft-outlook":U([`Mail.Read`],`list_messages`,`List Outlook messages for the signed-in user.`,`/me/messages`),"microsoft-teams":U([`Team.ReadBasic.All`],`list_teams`,`List Microsoft Teams joined by the signed-in user.`,`/me/joinedTeams`),onedrive:U([`Files.Read`],`list_drive_items`,`List OneDrive items in the root folder.`,`/me/drive/root/children`),sharepoint:U([`Sites.Read.All`],`get_root_site`,`Fetch the SharePoint root site through Microsoft Graph.`,`/sites/root`),salesforce:{apiBaseUrl:`https://{instance}.salesforce.com/services/data/v60.0`,authorizationUrl:`https://login.salesforce.com/services/oauth2/authorize`,tokenUrl:`https://login.salesforce.com/services/oauth2/token`,scopes:[`api`],toolName:`list_accounts`,toolDescription:`List Salesforce accounts from the connected org.`,requestMethod:`GET`,requestPath:`/sobjects/Account`},hubspot:{provider:`mcp`,authorizationUrl:Ue,tokenUrl:We,clientAuthentication:`body`,pkce:!0,scopes:[],credentialHelp:`Use the client ID and secret from a HubSpot MCP auth app (Development → MCP Auth Apps). Standard HubSpot OAuth apps and private apps will not authenticate with mcp.hubspot.com.`},zendesk:{apiBaseUrl:`https://{subdomain}.zendesk.com/api/v2`,authorizationUrl:`https://{subdomain}.zendesk.com/oauth2/authorize`,tokenUrl:`https://{subdomain}.zendesk.com/oauth2/token`,scopes:[`tickets:read`],toolName:`list_tickets`,toolDescription:`List Zendesk tickets for the connected account.`,requestMethod:`GET`,requestPath:`/tickets`},intercom:{apiBaseUrl:`https://api.intercom.io`,authorizationUrl:`https://app.intercom.com/oauth`,tokenUrl:`https://api.intercom.io/auth/eagle/token`,scopes:[`read_users`,`read_conversations`],toolName:`list_contacts`,toolDescription:`List Intercom contacts for the connected workspace.`,requestMethod:`GET`,requestPath:`/contacts`},stripe:{apiBaseUrl:`https://api.stripe.com/v1`,authorizationUrl:`https://connect.stripe.com/oauth/authorize`,tokenUrl:`https://connect.stripe.com/oauth/token`,scopes:[`read_only`],toolName:`list_customers`,toolDescription:`List Stripe customers from the connected account.`,requestMethod:`GET`,requestPath:`/customers`},shopify:{apiBaseUrl:`https://{shop}.myshopify.com/admin/api/2025-01`,authorizationUrl:`https://{shop}.myshopify.com/admin/oauth/authorize`,tokenUrl:`https://{shop}.myshopify.com/admin/oauth/access_token`,scopes:[`read_products`],toolName:`list_products`,toolDescription:`List Shopify products for the connected store.`,requestMethod:`GET`,requestPath:`/products.json`},discord:{apiBaseUrl:`https://discord.com/api/v10`,authorizationUrl:`https://discord.com/oauth2/authorize`,tokenUrl:`https://discord.com/api/oauth2/token`,scopes:[`identify`,`guilds`],toolName:`list_guilds`,toolDescription:`List Discord guilds available to the connected user.`,requestMethod:`GET`,requestPath:`/users/@me/guilds`},zoom:{apiBaseUrl:`https://api.zoom.us/v2`,authorizationUrl:`https://zoom.us/oauth/authorize`,tokenUrl:`https://zoom.us/oauth/token`,scopes:[`meeting:read:user`],toolName:`list_meetings`,toolDescription:`List Zoom meetings for the connected user.`,requestMethod:`GET`,requestPath:`/users/me/meetings`},webflow:{provider:`mcp`,authorizationUrl:`https://mcp.webflow.com/oauth/authorize`,tokenUrl:`https://mcp.webflow.com/oauth/token`,registrationUrl:`https://mcp.webflow.com/oauth/register`,clientAuthentication:`none`,pkce:!0,scopes:[]},miro:{apiBaseUrl:`https://api.miro.com/v2`,authorizationUrl:`https://miro.com/oauth/authorize`,tokenUrl:`https://api.miro.com/v1/oauth/token`,scopes:[`boards:read`],toolName:`list_boards`,toolDescription:`List Miro boards available to the connected user.`,requestMethod:`GET`,requestPath:`/boards`},canva:{apiBaseUrl:`https://api.canva.com/rest/v1`,tokenUrl:`https://api.canva.com/rest/v1/oauth/token`,scopes:[],toolName:`list_designs`,toolDescription:`List Canva designs available to the connected user.`,requestMethod:`GET`,requestPath:`/designs`},datadog:{provider:`mcp`,authorizationUrl:`https://app.datadoghq.com/oauth2/v1/authorize`,tokenUrl:`https://api.datadoghq.com/oauth2/v1/token`,scopes:[`dashboards_read`,`monitors_read`]},sentry:{apiBaseUrl:`https://sentry.io/api/0`,authorizationUrl:`https://sentry.io/oauth/authorize`,tokenUrl:`https://sentry.io/oauth/token`,scopes:[`project:read`,`event:read`,`org:read`],toolName:`list_organizations`,toolDescription:`List Sentry organizations available to the connected user.`,requestMethod:`GET`,requestPath:`/organizations/`},posthog:{apiBaseUrl:`https://us.posthog.com/api`,authorizationUrl:`https://us.posthog.com/oauth/authorize`,tokenUrl:`https://us.posthog.com/oauth/token`,scopes:[`project:read`],toolName:`list_projects`,toolDescription:`List PostHog projects available to the connected user.`,requestMethod:`GET`,requestPath:`/projects/`},supabase:{apiBaseUrl:`https://api.supabase.com/v1`,authorizationUrl:`https://api.supabase.com/v1/oauth/authorize`,tokenUrl:`https://api.supabase.com/v1/oauth/token`,scopes:[],toolName:`list_projects`,toolDescription:`List Supabase projects available to the connected user.`,requestMethod:`GET`,requestPath:`/projects`},vercel:{apiBaseUrl:`https://api.vercel.com`,authorizationUrl:`https://vercel.com/oauth/authorize`,tokenUrl:`https://api.vercel.com/v2/oauth/access_token`,scopes:[`project:read`],toolName:`list_projects`,toolDescription:`List Vercel projects available to the connected user.`,requestMethod:`GET`,requestPath:`/v9/projects`},netlify:{apiBaseUrl:`https://api.netlify.com/api/v1`,authorizationUrl:`https://app.netlify.com/authorize`,tokenUrl:`https://api.netlify.com/oauth/token`,scopes:[`sites:read`],toolName:`list_sites`,toolDescription:`List Netlify sites available to the connected user.`,requestMethod:`GET`,requestPath:`/sites`},plaid:{apiBaseUrl:`https://production.plaid.com`,toolName:`get_accounts`,toolDescription:`Fetch accounts for a connected Plaid item.`,requestMethod:`POST`,requestPath:`/accounts/get`},okta:{apiBaseUrl:`https://{yourOktaDomain}/api/v1`,authorizationUrl:`https://{yourOktaDomain}/oauth2/v1/authorize`,tokenUrl:`https://{yourOktaDomain}/oauth2/v1/token`,scopes:[`okta.users.read`],toolName:`list_users`,toolDescription:`List Okta users for the connected org.`,requestMethod:`GET`,requestPath:`/users`},servicenow:{apiBaseUrl:`https://{instance}.service-now.com/api/now/v1`,authorizationUrl:`https://{instance}.service-now.com/oauth_auth.do`,tokenUrl:`https://{instance}.service-now.com/oauth_token.do`,scopes:[`useraccount`,`table.read`],toolName:`list_incidents`,toolDescription:`List ServiceNow incidents for the connected instance.`,requestMethod:`GET`,requestPath:`/table/incident`},freshdesk:{apiBaseUrl:`https://{domain}.freshdesk.com/api/v2`,authorizationUrl:`https://{domain}.freshdesk.com/oauth/authorize`,tokenUrl:`https://{domain}.freshdesk.com/oauth/token`,scopes:[`tickets_view`],toolName:`list_tickets`,toolDescription:`List Freshdesk tickets for the connected account.`,requestMethod:`GET`,requestPath:`/tickets`},pipedrive:{apiBaseUrl:`https://api.pipedrive.com/v1`,authorizationUrl:`https://oauth.pipedrive.com/oauth/authorize`,tokenUrl:`https://oauth.pipedrive.com/oauth/token`,scopes:[`deals:read`,`contacts:read`],toolName:`list_persons`,toolDescription:`List Pipedrive people visible to the connected user.`,requestMethod:`GET`,requestPath:`/persons`},mailchimp:{apiBaseUrl:`https://{dc}.api.mailchimp.com/3.0`,authorizationUrl:`https://login.mailchimp.com/oauth2/authorize`,tokenUrl:`https://login.mailchimp.com/oauth2/token`,scopes:[`audiences:read`],toolName:`list_audiences`,toolDescription:`List Mailchimp audiences for the connected account.`,requestMethod:`GET`,requestPath:`/lists`},quickbooks:{apiBaseUrl:`https://sandbox-quickbooks.api.intuit.com/v3/company/{companyId}`,authorizationUrl:`https://appcenter.intuit.com/connect/oauth2`,tokenUrl:`https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer`,scopes:[`com.intuit.quickbooks.accounting`],toolName:`list_customers`,toolDescription:`Query QuickBooks customers for the connected company.`,requestMethod:`GET`,requestPath:`/query?query=SELECT%20*%20FROM%20Customer%20MAXRESULTS%2010`},xero:{apiBaseUrl:`https://api.xero.com/api.xro/2.0`,authorizationUrl:`https://login.xero.com/identity/connect/authorize`,tokenUrl:`https://identity.xero.com/connect/token`,scopes:[`accounting.contacts.read`],toolName:`list_contacts`,toolDescription:`List Xero contacts for the connected tenant.`,requestMethod:`GET`,requestPath:`/Contacts`},gitlab:{apiBaseUrl:`https://gitlab.com/api/v4`,authorizationUrl:`https://gitlab.com/oauth/authorize`,tokenUrl:`https://gitlab.com/oauth/token`,scopes:[`read_api`],toolName:`get_current_user`,toolDescription:`Fetch the authenticated GitLab user profile.`,requestMethod:`GET`,requestPath:`/user`},bitbucket:{apiBaseUrl:`https://api.bitbucket.org/2.0`,authorizationUrl:`https://bitbucket.org/site/oauth2/authorize`,tokenUrl:`https://bitbucket.org/site/oauth2/access_token`,scopes:[`account`,`repository`],toolName:`get_current_user`,toolDescription:`Fetch the authenticated Bitbucket user profile.`,requestMethod:`GET`,requestPath:`/user`},ordinal:{provider:`mcp`,authModes:[`bearer`],authStrategy:`bearer`,credentialLabel:`Ordinal API key`,credentialPlaceholder:`Paste your Ordinal API key`,credentialHelp:`API key from your Ordinal workspace settings, sent as a Bearer token in the Authorization header.`}},qe=e=>{let t=Ke[e];if(!t)return;let n=Ge[e],r=t.provider??(n?`mcp`:t.apiBaseUrl||t.openApiUrl?`http`:void 0);return{...t,provider:r,serverUrl:r===`mcp`?t.serverUrl??n:t.serverUrl}},K=(e,t)=>{let n=qe(t.slug);return{...t,authStrategy:t.authStrategy??n?.authStrategy??`oauth2`,popularityRank:e,registrationDefaults:n}},q=[K(1,{slug:`github`,name:`GitHub`,description:`Source control, issues, pull requests, and developer workflows.`,categories:[`Engineering`,`Source control`],availability:`manual_token`,managedConnectorSlug:`github`,appUrl:`https://github.com`,docsUrl:`https://docs.github.com/apps/oauth-apps/building-oauth-apps`,notes:`Current managed connector works with bearer tokens today; GitHub OAuth is a strong candidate for a future one-click connect flow.`}),K(2,{slug:`google-docs`,name:`Google Docs`,description:`Docs authoring and Google Workspace document automation.`,categories:[`Documents`,`Knowledge base`],availability:`manual_token`,managedConnectorSlug:`google-docs`,appUrl:`https://workspace.google.com/products/docs/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Current managed connector accepts a Google access token manually; a full OAuth connect flow can remove token copy/paste.`}),K(3,{slug:`slack`,name:`Slack`,description:`Channels, messaging, workflows, canvases, and operational collaboration.`,categories:[`Communication`,`Operations`],availability:`oauth_ready`,managedConnectorSlug:`slack`,appUrl:`https://slack.com`,docsUrl:`https://docs.slack.dev/ai/slack-mcp-server`,notes:`Uses Slack's official hosted MCP server with confidential OAuth user-token auth.`}),K(4,{slug:`notion`,name:`Notion`,description:`Workspace search, pages, databases, and knowledge management.`,categories:[`Knowledge base`,`Documentation`],availability:`oauth_ready`,managedConnectorSlug:`notion`,appUrl:`https://www.notion.so`,docsUrl:`https://developers.notion.com/docs/authorization`,notes:``}),K(5,{slug:`figma`,name:`Figma`,description:`Design files, nodes, and developer handoff automation.`,categories:[`Design`,`Frontend`],availability:`oauth_ready`,managedConnectorSlug:`figma`,appUrl:`https://www.figma.com`,docsUrl:`https://www.figma.com/developers/api#oauth2`,notes:``}),K(6,{slug:`google-drive`,name:`Google Drive`,description:`File search, metadata, folders, and document discovery.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://workspace.google.com/products/drive/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Natural expansion of the Google Workspace surface beyond Google Docs.`}),K(7,{slug:`google-sheets`,name:`Google Sheets`,description:`Spreadsheet reads, writes, formulas, and reporting workflows.`,categories:[`Spreadsheets`,`Analytics`],availability:`planned`,appUrl:`https://workspace.google.com/products/sheets/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`High-value automation surface for agent-driven reporting and structured edits.`}),K(8,{slug:`gmail`,name:`Gmail`,description:`Mailbox search, drafting, sending, and thread triage.`,categories:[`Communication`,`Email`],availability:`planned`,appUrl:`https://workspace.google.com/products/gmail/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Popular agent workflow target for inbox triage and drafting.`}),K(9,{slug:`google-calendar`,name:`Google Calendar`,description:`Calendar search, event scheduling, and meeting coordination.`,categories:[`Calendar`,`Scheduling`],availability:`planned`,appUrl:`https://workspace.google.com/products/calendar/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Strong personal productivity use case with mature OAuth flows.`}),K(10,{slug:`jira`,name:`Jira`,description:`Issue tracking, sprint workflows, and engineering program management.`,categories:[`Project management`,`Engineering`],availability:`planned`,appUrl:`https://www.atlassian.com/software/jira`,docsUrl:`https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/`,notes:`Very common MCP target for software teams and ticket automation.`}),K(11,{slug:`confluence`,name:`Confluence`,description:`Wiki pages, spaces, and internal documentation search.`,categories:[`Documentation`,`Knowledge base`],availability:`planned`,appUrl:`https://www.atlassian.com/software/confluence`,docsUrl:`https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/`,notes:`Natural companion to Jira for software teams.`}),K(12,{slug:`linear`,name:`Linear`,description:`Issue tracking, roadmap planning, and product engineering workflows.`,categories:[`Project management`,`Engineering`],availability:`planned`,appUrl:`https://linear.app`,docsUrl:`https://linear.app/developers/oauth-authentication`,notes:`Popular among modern product engineering teams and already useful to this repo's users.`}),K(13,{slug:`asana`,name:`Asana`,description:`Task management, projects, and work tracking.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://asana.com`,docsUrl:`https://developers.asana.com/docs/oauth`,notes:`Broad business adoption and straightforward OAuth app model.`}),K(14,{slug:`trello`,name:`Trello`,description:`Boards, cards, checklists, and lightweight project planning.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://trello.com`,docsUrl:`https://developer.atlassian.com/cloud/trello/guides/rest-api/authorization/`,notes:`Useful for SMB and cross-functional task boards, but Trello's public API auth is a special-case flow rather than a straightforward generic OAuth2 connector.`}),K(15,{slug:`clickup`,name:`ClickUp`,description:`Tasks, docs, goals, and workflow automation.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://clickup.com`,docsUrl:`https://clickup.com/api/developer-portal/authentication`,notes:`Large install base and broad operations coverage.`}),K(16,{slug:`monday`,name:`Monday.com`,description:`Boards, automations, and work management across teams.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://monday.com`,docsUrl:`https://developer.monday.com/apps/docs/oauth`,notes:`High-demand operations platform with rich board APIs.`}),K(17,{slug:`airtable`,name:`Airtable`,description:`Bases, records, linked data, and workflow automation.`,categories:[`Database`,`Operations`],availability:`planned`,appUrl:`https://airtable.com`,docsUrl:`https://airtable.com/developers/web/api/oauth-reference`,notes:`Very common internal-tools and operations automation surface.`}),K(18,{slug:`dropbox`,name:`Dropbox`,description:`Cloud files, folders, content access, and sharing.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://www.dropbox.com`,docsUrl:`https://developers.dropbox.com/oauth-guide`,notes:`Popular file automation target with mature OAuth support.`}),K(19,{slug:`box`,name:`Box`,description:`Enterprise file storage, metadata, and collaboration.`,categories:[`Storage`,`Enterprise`],availability:`planned`,appUrl:`https://www.box.com`,docsUrl:`https://developer.box.com/guides/authentication/oauth2/`,notes:`Strong enterprise document-management footprint.`}),K(20,{slug:`microsoft-outlook`,name:`Microsoft Outlook`,description:`Mail, calendar, contacts, and meeting workflows through Microsoft Graph.`,categories:[`Email`,`Calendar`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/outlook/email-and-calendar-software-microsoft-outlook`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`High-value Microsoft Graph integration surface for enterprise users.`}),K(21,{slug:`microsoft-teams`,name:`Microsoft Teams`,description:`Chats, channels, meetings, and collaboration via Microsoft Graph.`,categories:[`Communication`,`Enterprise`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-teams/group-chat-software`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Common enterprise chat target alongside Outlook.`}),K(22,{slug:`onedrive`,name:`OneDrive`,description:`Cloud file access and document workflows through Microsoft Graph.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Useful for enterprise file automation and search.`}),K(23,{slug:`sharepoint`,name:`SharePoint`,description:`Sites, document libraries, lists, and intranet content.`,categories:[`Knowledge base`,`Enterprise`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/sharepoint/collaboration`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Frequently requested for enterprise knowledge retrieval.`}),K(24,{slug:`salesforce`,name:`Salesforce`,description:`CRM records, accounts, opportunities, and sales operations.`,categories:[`CRM`,`Sales`],availability:`planned`,appUrl:`https://www.salesforce.com`,docsUrl:`https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm&type=5`,notes:`Very common enterprise CRM and agent-assist target.`}),K(25,{slug:`hubspot`,name:`HubSpot`,description:`CRM, marketing, tickets, and customer lifecycle workflows.`,categories:[`CRM`,`Marketing`],availability:`oauth_ready`,managedConnectorSlug:`hubspot`,appUrl:`https://www.hubspot.com`,docsUrl:`https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server`,notes:`Uses HubSpot's official remote MCP server plus MCP auth apps with PKCE.`}),K(26,{slug:`zendesk`,name:`Zendesk`,description:`Support tickets, customers, agents, and help desk operations.`,categories:[`Support`,`Operations`],availability:`planned`,appUrl:`https://www.zendesk.com`,docsUrl:`https://developer.zendesk.com/documentation/apps/getting-started/oauth/`,notes:`Strong support automation use case for agents.`}),K(27,{slug:`intercom`,name:`Intercom`,description:`Customer support, conversations, inboxes, and CRM context.`,categories:[`Support`,`CRM`],availability:`planned`,appUrl:`https://www.intercom.com`,docsUrl:`https://developers.intercom.com/building-apps/docs/authentication-types`,notes:`Useful for customer-facing assistant workflows.`}),K(28,{slug:`stripe`,name:`Stripe`,description:`Payments, customers, invoices, and subscription operations.`,categories:[`Payments`,`Finance`],availability:`planned`,appUrl:`https://stripe.com`,docsUrl:`https://docs.stripe.com/connect/oauth-reference`,notes:`High-value fintech automation target with mature OAuth patterns.`}),K(29,{slug:`shopify`,name:`Shopify`,description:`Storefronts, products, orders, and ecommerce operations.`,categories:[`Ecommerce`,`Operations`],availability:`planned`,appUrl:`https://www.shopify.com`,docsUrl:`https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant`,notes:`A top ecommerce platform and strong MCP candidate.`}),K(30,{slug:`discord`,name:`Discord`,description:`Guilds, channels, messages, and community operations.`,categories:[`Communication`,`Community`],availability:`planned`,appUrl:`https://discord.com`,docsUrl:`https://discord.com/developers/docs/topics/oauth2`,notes:`Useful for community automation and bot-assisted workflows.`}),K(31,{slug:`zoom`,name:`Zoom`,description:`Meetings, recordings, webinars, and scheduling operations.`,categories:[`Meetings`,`Calendar`],availability:`planned`,appUrl:`https://zoom.us`,docsUrl:`https://developers.zoom.us/docs/integrations/oauth/`,notes:`Frequently requested for scheduling and meeting summaries.`}),K(32,{slug:`webflow`,name:`Webflow`,description:`CMS items, sites, and web publishing workflows.`,categories:[`CMS`,`Marketing`],availability:`oauth_ready`,managedConnectorSlug:`webflow`,appUrl:`https://webflow.com`,docsUrl:`https://developers.webflow.com/mcp/reference/getting-started`,notes:`Uses Webflow's official hosted MCP server and deployment-scoped MCP OAuth registration so each user can authorize their own sites and workspaces.`}),K(33,{slug:`miro`,name:`Miro`,description:`Whiteboards, diagrams, notes, and workshop collaboration.`,categories:[`Whiteboard`,`Collaboration`],availability:`planned`,appUrl:`https://miro.com`,docsUrl:`https://developers.miro.com/docs/rest-api-build-your-first-oauth-app`,notes:`Strong visual collaboration target for design and product teams.`}),K(34,{slug:`canva`,name:`Canva`,description:`Design content, brand assets, and marketing collateral workflows.`,categories:[`Design`,`Marketing`],availability:`planned`,appUrl:`https://www.canva.com`,docsUrl:`https://www.canva.dev/docs/connect/oauth/`,notes:`Broad creator and marketing adoption with OAuth-based apps.`}),K(35,{slug:`datadog`,name:`Datadog`,description:`Logs, metrics, monitors, incidents, and observability workflows.`,categories:[`Observability`,`Operations`],availability:`oauth_ready`,managedConnectorSlug:`datadog`,appUrl:`https://www.datadoghq.com`,docsUrl:`https://docs.datadoghq.com/bits_ai/mcp_server/setup/`,notes:`Uses Datadog's official hosted MCP server. The default registration targets the US1 endpoint and can be edited for other Datadog sites.`}),K(36,{slug:`sentry`,name:`Sentry`,description:`Errors, releases, issue ownership, and incident investigation.`,categories:[`Observability`,`Engineering`],availability:`planned`,appUrl:`https://sentry.io`,docsUrl:`https://docs.sentry.io/api/guides/oauth/`,notes:`Natural target for engineering support agents.`}),K(37,{slug:`posthog`,name:`PostHog`,description:`Product analytics, feature flags, and session insights.`,categories:[`Analytics`,`Product`],availability:`planned`,appUrl:`https://posthog.com`,docsUrl:`https://posthog.com/docs/apps/build/oauth`,notes:`Relevant for product analytics and experimentation workflows.`}),K(38,{slug:`supabase`,name:`Supabase`,description:`Projects, databases, auth, and storage administration.`,categories:[`Database`,`Developer tools`],availability:`planned`,appUrl:`https://supabase.com`,docsUrl:`https://supabase.com/docs/guides/integrations/build-a-supabase-oauth-integration`,notes:`Popular developer platform with broad automation value and a documented management-API OAuth integration flow.`}),K(39,{slug:`vercel`,name:`Vercel`,description:`Deployments, projects, domains, and preview environment workflows.`,categories:[`Developer tools`,`Deployment`],availability:`planned`,appUrl:`https://vercel.com`,docsUrl:`https://vercel.com/docs/rest-api#oauth-apps`,notes:`Especially relevant to this repo's deployment model.`}),K(40,{slug:`netlify`,name:`Netlify`,description:`Sites, builds, deploy previews, and web operations.`,categories:[`Deployment`,`Developer tools`],availability:`planned`,appUrl:`https://www.netlify.com`,docsUrl:`https://docs.netlify.com/api/get-started/#oauth-applications`,notes:`Common alternative hosting/deployment automation target.`}),K(41,{slug:`plaid`,name:`Plaid`,description:`Financial account connectivity and transaction data flows.`,categories:[`Finance`,`Payments`],availability:`planned`,appUrl:`https://plaid.com`,docsUrl:`https://plaid.com/docs/auth/oauth/`,notes:`Strong fintech workflow candidate, although much of Plaid's OAuth guidance is a special-case token exchange rather than a generic end-user SaaS OAuth connector.`}),K(42,{slug:`okta`,name:`Okta`,description:`Identity, users, applications, and access administration.`,categories:[`Identity`,`Enterprise`],availability:`planned`,appUrl:`https://www.okta.com`,docsUrl:`https://developer.okta.com/docs/guides/implement-oauth-for-okta/main/`,notes:`High-value admin and security automation surface.`}),K(43,{slug:`servicenow`,name:`ServiceNow`,description:`Tickets, incidents, service catalogs, and enterprise workflows.`,categories:[`ITSM`,`Enterprise`],availability:`planned`,appUrl:`https://www.servicenow.com`,docsUrl:`https://www.servicenow.com/docs/bundle/xanadu-platform-security/page/administer/security/concept/oauth-concept.html`,notes:`Strong enterprise IT operations use case.`}),K(44,{slug:`freshdesk`,name:`Freshdesk`,description:`Support tickets, customer records, and help desk workflows.`,categories:[`Support`,`Operations`],availability:`planned`,appUrl:`https://www.freshworks.com/freshdesk/`,docsUrl:`https://developers.freshdesk.com/api/#authentication`,notes:`Popular support platform for SMB and mid-market teams.`}),K(45,{slug:`pipedrive`,name:`Pipedrive`,description:`Deals, contacts, and sales pipeline management.`,categories:[`CRM`,`Sales`],availability:`planned`,appUrl:`https://www.pipedrive.com`,docsUrl:`https://pipedrive.readme.io/docs/marketplace-oauth-authorization`,notes:`Common CRM choice with solid OAuth story.`}),K(46,{slug:`mailchimp`,name:`Mailchimp`,description:`Campaigns, audiences, automations, and email marketing.`,categories:[`Marketing`,`Email`],availability:`planned`,appUrl:`https://mailchimp.com`,docsUrl:`https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/`,notes:`Popular marketing automation target.`}),K(47,{slug:`quickbooks`,name:`QuickBooks`,description:`Accounting, invoices, customers, and financial operations.`,categories:[`Finance`,`Accounting`],availability:`planned`,appUrl:`https://quickbooks.intuit.com`,docsUrl:`https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0`,notes:`Frequent finance automation request with OAuth-based apps.`}),K(48,{slug:`xero`,name:`Xero`,description:`Accounting, contacts, invoices, and bookkeeping workflows.`,categories:[`Finance`,`Accounting`],availability:`planned`,appUrl:`https://www.xero.com`,docsUrl:`https://developer.xero.com/documentation/guides/oauth2/overview/`,notes:`Important accounting platform in many regions.`}),K(49,{slug:`gitlab`,name:`GitLab`,description:`Repositories, issues, merge requests, pipelines, and DevSecOps.`,categories:[`Engineering`,`Source control`],availability:`planned`,appUrl:`https://about.gitlab.com`,docsUrl:`https://docs.gitlab.com/integration/oauth_provider/`,notes:`Major Git hosting platform and natural expansion beyond GitHub.`}),K(50,{slug:`bitbucket`,name:`Bitbucket`,description:`Repositories, pull requests, and Atlassian engineering workflows.`,categories:[`Engineering`,`Source control`],availability:`planned`,appUrl:`https://bitbucket.org`,docsUrl:`https://developer.atlassian.com/cloud/bitbucket/oauth-2/`,notes:`Popular in Atlassian-centric teams and complements Jira/Confluence.`}),K(51,{slug:`elevenlabs`,name:`ElevenLabs`,description:`Text to speech, voices, transcription, audio generation, and agents.`,categories:[`Audio`,`AI`],authStrategy:`api_key`,availability:`manual_token`,managedConnectorSlug:`elevenlabs`,appUrl:`https://elevenlabs.io`,docsUrl:`https://elevenlabs.io/docs/api-reference/introduction`,notes:`Official API-key connector backed by ElevenLabs' published OpenAPI spec.`}),K(52,{slug:`ordinal`,name:`Ordinal`,description:`Social media posts, profiles, analytics, labels, approvals, and engagements.`,categories:[`Social media`,`Marketing`],authStrategy:`bearer`,availability:`manual_token`,managedConnectorSlug:`ordinal`,appUrl:`https://app.tryordinal.com`,docsUrl:`https://docs.tryordinal.com/api/mcp`,notes:`Official MCP server backed by Ordinal's API with API-key (Bearer) auth.`})],Je=()=>q,Ye=[E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie],Xe=e=>{let t=e?.authStrategy??(e?.authorizationUrl||e?.tokenUrl,`oauth2`);return t===`oauth2`?`oauth`:t===`none`?`none`:`api`},Ze=e=>{let t=e.registrationDefaults;if(!t)return null;let n={id:Xe(t),provider:t.provider??(t.serverUrl?`mcp`:`http`),auth:{strategy:t.authStrategy??e.authStrategy??`oauth2`,authModes:t.authModes,credentialLabel:t.credentialLabel,credentialPlaceholder:t.credentialPlaceholder,credentialHelp:t.credentialHelp,apiKeyHeaderName:t.apiKeyHeaderName,oauth:t.authorizationUrl||t.tokenUrl?{authorizationUrl:t.authorizationUrl,tokenUrl:t.tokenUrl,scopes:t.scopes??[],optionalScopes:t.optionalScopes,toolScopes:t.toolScopes,scopeSeparator:t.scopeSeparator,pkce:t.pkce,clientAuthentication:t.clientAuthentication,registrationUrl:t.registrationUrl,additionalAuthorizationParams:t.additionalAuthorizationParams,additionalTokenParams:t.additionalTokenParams}:void 0}};return n.provider===`mcp`?n.transport={kind:`shttp`,url:t.serverUrl}:n.http={apiBaseUrl:t.apiBaseUrl,openApiUrl:t.openApiUrl,defaultTool:t.toolName?{name:t.toolName,description:t.toolDescription,method:t.requestMethod,path:t.requestPath,scopes:t.toolScopes}:void 0},n},Qe=e=>{let t=Ze(e);return{id:e.slug,kind:t?.provider??`http`,name:e.name,description:e.description,categories:e.categories,appUrl:e.appUrl,docsUrl:e.docsUrl,notes:e.notes,catalogStatus:e.availability,managedConnectorSlug:e.managedConnectorSlug,authStrategy:e.authStrategy,popularityRank:e.popularityRank,registrationDefaults:e.registrationDefaults,...t?{defaultConnectionOptionId:t.id,connectionOptions:[t]}:{connectionOptions:[]}}},$e=(e=[],t=[])=>{let n=new Map;for(let t of e)n.set(t.id,t);for(let e of t)n.has(e.id)||n.set(e.id,e);return[...n.values()]},et=(e,t)=>{let n=$e(e.connectionOptions,t.connectionOptions);return{...e,...t,catalogStatus:e.catalogStatus??t.catalogStatus,managedConnectorSlug:e.managedConnectorSlug??t.managedConnectorSlug,authStrategy:e.authStrategy??t.authStrategy,registrationDefaults:e.registrationDefaults??t.registrationDefaults,connectionOptions:n,defaultConnectionOptionId:e.defaultConnectionOptionId??t.defaultConnectionOptionId??n[0]?.id}},J=new Map;for(let e of Je().map(Qe))J.set(e.id,e);for(let e of Ye)J.set(e.id,J.has(e.id)?et(J.get(e.id),e):e);var tt=[...J.values()].sort((e,t)=>(t.popularityRank??0)-(e.popularityRank??0)||e.name.localeCompare(t.name)),Y=e(t(),1),X=`h-5 w-5`,Z=e=>(0,Y.createElement)(e,{className:X}),Q=e=>(0,Y.createElement)(e,{className:X,strokeWidth:2.25}),nt=Q(i),$={github:Z(re),slack:Z(m),tavily:(0,Y.createElement)(ee,{className:X,strokeWidth:2.5}),linear:Z(ie),notion:Z(s),atlassian:Z(de),sentry:Z(f),stripe:Z(ne),paypal:Z(se),"cloudflare-docs":Z(o),"cloudflare-bindings":Z(o),"cloudflare-observability":Z(o),huggingface:Z(le),deepwiki:Z(h),git:Q(a),"brave-search":Z(c),exa:Q(w),firecrawl:Q(y),apify:Q(i),fetch:Q(b),"browser-mcp":Q(S),playwright:Q(T),supabase:Z(p),neon:Q(v),mongodb:Z(ae),redis:Z(oe),filesystem:Q(r),memory:Q(g),"sequential-thinking":Q(x),time:Q(_),everything:Q(C),figma:Z(l),airtable:Z(u),obsidian:Z(ue),elevenlabs:Z(fe),resend:Z(te),"cloudflare-builds":Z(o),"cloudflare-browser-rendering":Z(o),kagi:Z(d),clickhouse:Z(ce)};new Set(Object.keys($));export{$ as n,tt as r,nt as t};
|
|
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 ee}from"./circle-plus-check-toggle-DKS8MAVV.js";import{_ as te,a as o,b as ne,c as re,d as ie,f as ae,g as oe,h as se,i as ce,l as le,m as ue,n as de,o as fe,p as s,r as c,s as l,t as u,u as d,v as f,x as p,y as m}from"./vendor~home~mcp~automations-list-BgV86Sti.js";var h=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`}]]),g=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`}]]),_=n(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),v=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`}]]),y=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`}]]),b=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`}]]),x=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`}]]),S=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`}]]),C=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`}]]),w=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`}]]),T=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`}]]),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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Personal access token from your Airtable account.`,helperLink:`https://airtable.com/create/tokens`}]},auth:{strategy:`api_key`}}]},D={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`apify`,command:`npx`,args:[`-y`,`@apify/actors-mcp-server`],envFields:[{key:`APIFY_TOKEN`,label:`Apify token`,type:`password`,required:!0,helperText:`API token from your Apify account settings.`,helperLink:`https://console.apify.com/account/integrations`}]},auth:{strategy:`api_key`}}]},O={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.atlassian.com/v1/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},k={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from the Brave Search API portal.`,helperLink:`https://api-dashboard.search.brave.com/app/keys`}]},auth:{strategy:`api_key`}}]},A={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`,keywords:[`browser`,`automation`,`chrome`,`playwright`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`browser_mcp`,command:`npx`,args:[`-y`,`@browsermcp/mcp`]},auth:{strategy:`none`}}]},j={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Password for your ClickHouse user.`,helperLink:`https://clickhouse.com/docs/operations/access-rights`}]},auth:{strategy:`api_key`}}]},M={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://bindings.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},N={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://browser.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},P={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://builds.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},F={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://docs.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},I={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://observability.mcp.cloudflare.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},L={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.deepwiki.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},R={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`elevenlabs`,command:`uvx`,args:[`elevenlabs-mcp`],envFields:[{key:`ELEVENLABS_API_KEY`,label:`ElevenLabs API key`,type:`password`,required:!0,helperText:`API key from your ElevenLabs account settings.`,helperLink:`https://elevenlabs.io/app/settings/api-keys`}]},auth:{strategy:`api_key`}}]},z={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`everything`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-everything`]},auth:{strategy:`none`}}]},B={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`exa`,command:`npx`,args:[`-y`,`exa-mcp-server`],envFields:[{key:`EXA_API_KEY`,label:`Exa API key`,type:`password`,required:!0,helperText:`API key from your Exa account.`,helperLink:`https://exa.ai/docs/reference/getting-started`}]},auth:{strategy:`api_key`}}]},V={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`fetch`,command:`uvx`,args:[`mcp-server-fetch`]},auth:{strategy:`none`}}]},pe={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Personal access token from your Figma account settings.`,helperLink:`https://developers.figma.com/docs/rest-api/authentication/#personal-access-tokens`}]},auth:{strategy:`api_key`}}]},me={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)`,keywords:[`files`,`local`,`disk`],installHint:`Each path is exposed read/write. Add as many as you need, separated by spaces.`,kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`}]},auth:{strategy:`api_key`}}]},he={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`firecrawl`,command:`npx`,args:[`-y`,`firecrawl-mcp`],envFields:[{key:`FIRECRAWL_API_KEY`,label:`Firecrawl API key`,type:`password`,required:!0,helperText:`API key from your Firecrawl dashboard.`,helperLink:`https://www.firecrawl.dev/app/api-keys`}]},auth:{strategy:`api_key`}}]},ge={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`,keywords:[`version control`,`log`,`diff`,`blame`],installHint:`Runs the official Python server via uvx — no setup beyond the path.`,kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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>.`}]},auth:{strategy:`api_key`}}]},_e={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Classic or fine-grained personal access token from GitHub settings.`,helperLink:`https://github.com/settings/tokens`}]},auth:{strategy:`api_key`}}]},ve={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://huggingface.co/mcp`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},ye={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`kagi`,command:`uvx`,args:[`kagimcp`],envFields:[{key:`KAGI_API_KEY`,label:`Kagi API key`,type:`password`,required:!0,helperText:`API key from your Kagi account settings.`,helperLink:`https://kagi.com/settings?p=api`}]},auth:{strategy:`api_key`}}]},be={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.`,kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.linear.app/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},xe={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`memory`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-memory`]},auth:{strategy:`none`}}]},Se={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Connection string from your MongoDB Atlas cluster.`,helperLink:`https://www.mongodb.com/docs/atlas/connect-to-database-deployment/#connect-with-a-connection-string`}]},auth:{strategy:`api_key`}}]},Ce={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from your Neon account settings.`,helperLink:`https://neon.tech/docs/manage/api-keys`}]},auth:{strategy:`api_key`}}]},we={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,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`Internal integration token from your Notion integrations page.`,helperLink:`https://www.notion.so/profile/integrations`}]},auth:{strategy:`api_key`}}]},Te={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`,keywords:[`notes`,`knowledge`,`markdown`,`vault`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`,helperLink:`https://github.com/coddingtonbear/obsidian-local-rest-api`}]},auth:{strategy:`api_key`}}]},Ee={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`sse`,url:`https://mcp.paypal.com/sse`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},De={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`playwright`,command:`npx`,args:[`-y`,`@playwright/mcp`]},auth:{strategy:`none`}}]},Oe={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`,keywords:[`cache`,`kv`,`database`],kind:`mcp`,runtimeAvailability:`local`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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:`Connection URL for your Redis instance. Appended as --url <redis_url>.`,helperLink:`https://redis.io/docs/latest/operate/rc/databases/connect/`}]},auth:{strategy:`api_key`}}]},ke={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`resend`,command:`npx`,args:[`-y`,`mcp-send-email`],envFields:[{key:`RESEND_API_KEY`,label:`Resend API key`,type:`password`,required:!0,helperText:`API key from your Resend dashboard.`,helperLink:`https://resend.com/api-keys`},{key:`SENDER_EMAIL_ADDRESS`,label:`From address`,type:`text`,placeholder:`you@example.com`,required:!0}]},auth:{strategy:`api_key`}}]},Ae={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://mcp.sentry.dev/mcp`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},je={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`sequential_thinking`,command:`npx`,args:[`-y`,`@modelcontextprotocol/server-sequential-thinking`]},auth:{strategy:`none`}}]},Me={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{kind:`stdio`,serverName:`slack`,command:`npx`,args:[`-y`,`@zencoderai/slack-mcp-server`],envFields:[{key:`SLACK_TEAM_ID`,label:`Team / Workspace ID`,type:`text`,placeholder:`T01234567`,helperText:`First get your [Slack URL](https://slack.com/help/articles/221769328-Locate-your-Slack-URL-or-ID#find-your-url). Then use that to get your [Workspace ID](https://slack.com/help/articles/221769328-Locate-your-Slack-URL-or-ID#find-your-workspace-or-org-id).`,required:!0},{key:`SLACK_BOT_TOKEN`,label:`Bot token`,type:`password`,placeholder:`xoxb-...`,required:!0,helperText:`You'll need to create or have access to a [Slack App](https://github.com/zencoderai/slack-mcp-server#slack-bot-setup) to get a Bot token.`}]},auth:{strategy:`api_key`}}]},Ne={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`shttp`,url:`https://mcp.stripe.com/`,apiKeyOptional:!0},auth:{strategy:`none`,apiKeyOptional:!0}}]},Pe={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`],kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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.`,helperLink:`https://supabase.com/dashboard/account/tokens`}]},auth:{strategy:`api_key`}}]},Fe={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.`,kind:`mcp`,defaultConnectionOptionId:`api`,connectionOptions:[{id:`api`,provider:`mcp`,transport:{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,helperText:`API key from your Tavily dashboard.`,helperLink:`https://app.tavily.com/home?tab=keys`}]},auth:{strategy:`api_key`}}]},Ie={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`],kind:`mcp`,defaultConnectionOptionId:`none`,connectionOptions:[{id:`none`,provider:`mcp`,transport:{kind:`stdio`,serverName:`time`,command:`uvx`,args:[`mcp-server-time`]},auth:{strategy:`none`}}]},Le=`https://accounts.google.com/o/oauth2/v2/auth`,Re=`https://oauth2.googleapis.com/token`,ze=`https://login.microsoftonline.com/common/oauth2/v2.0/authorize`,Be=`https://login.microsoftonline.com/common/oauth2/v2.0/token`,Ve=`https://auth.atlassian.com/authorize`,He=`https://auth.atlassian.com/oauth/token`,H=(e,t,n,r,i,a=`GET`)=>({apiBaseUrl:e,authorizationUrl:Le,tokenUrl:Re,scopes:t,toolName:n,toolDescription:r,requestMethod:a,requestPath:i}),U=(e,t,n,r)=>({apiBaseUrl:`https://graph.microsoft.com/v1.0`,authorizationUrl:ze,tokenUrl:Be,scopes:e,toolName:t,toolDescription:n,requestMethod:`GET`,requestPath:r}),W=(e,t,n,r,i)=>({apiBaseUrl:e,authorizationUrl:Ve,tokenUrl:He,scopes:t,toolName:n,toolDescription:r,requestMethod:`GET`,requestPath:i}),G=`https://mcp.hubspot.com`,Ue=`${G}/oauth/authorize/user`,We=`${G}/oauth/v3/token`,Ge={github:`https://api.githubcopilot.com/mcp/`,hubspot:G,slack:`https://mcp.slack.com/mcp`,webflow:`https://mcp.webflow.com/mcp`,datadog:`https://mcp.datadoghq.com/api/unstable/mcp-server/mcp`,ordinal:`https://app.tryordinal.com/api/mcp`},Ke={github:{apiBaseUrl:`https://api.github.com`,authorizationUrl:`https://github.com/login/oauth/authorize`,tokenUrl:`https://github.com/login/oauth/access_token`,scopes:[`read:user`,`repo`],toolName:`get_authenticated_user`,toolDescription:`Fetch the authenticated GitHub user profile.`,requestMethod:`GET`,requestPath:`/user`},"google-docs":H(`https://docs.googleapis.com`,[`https://www.googleapis.com/auth/documents.readonly`],`get_document`,`Fetch a Google Docs document by ID.`,`/v1/documents/{documentId}`),slack:{provider:`mcp`,authorizationUrl:`https://slack.com/oauth/v2_user/authorize`,tokenUrl:`https://slack.com/api/oauth.v2.user.access`,scopes:[`search:read.public`,`search:read.private`,`search:read.mpim`,`search:read.im`,`search:read.files`,`search:read.users`,`chat:write`,`channels:history`,`groups:history`,`mpim:history`,`im:history`,`canvases:read`,`canvases:write`,`users:read`,`users:read.email`],pkce:!0,clientAuthentication:`body`},notion:{provider:`http`,apiBaseUrl:`https://api.notion.com`,openApiUrl:`https://developers.notion.com/openapi.json`,authorizationUrl:`https://api.notion.com/v1/oauth/authorize`,tokenUrl:`https://api.notion.com/v1/oauth/token`,scopes:[],toolName:`post_search`,toolDescription:`Search pages and databases in the connected Notion workspace.`,requestMethod:`POST`,requestPath:`/v1/search`},figma:{apiBaseUrl:`https://api.figma.com`,authorizationUrl:`https://www.figma.com/oauth`,tokenUrl:`https://api.figma.com/v1/oauth/token`,scopes:[`current_user:read`,`file_content:read`,`file_metadata:read`,`projects:read`],toolName:`get_file`,toolDescription:`Fetch a Figma file by key.`,requestMethod:`GET`,requestPath:`/v1/files/{fileKey}`},elevenlabs:{provider:`http`,authModes:[`api_key`],authStrategy:`api_key`,credentialLabel:`ElevenLabs API key`,credentialPlaceholder:`Paste your ElevenLabs API key`,credentialHelp:`Personal or workspace ElevenLabs API key sent in the xi-api-key header.`,apiKeyHeaderName:`xi-api-key`,apiBaseUrl:`https://api.elevenlabs.io`,openApiUrl:`https://api.elevenlabs.io/openapi.json`},"google-drive":H(`https://www.googleapis.com/drive/v3`,[`https://www.googleapis.com/auth/drive.metadata.readonly`],`list_files`,`List Drive files visible to the connected user.`,`/files`),"google-sheets":H(`https://sheets.googleapis.com`,[`https://www.googleapis.com/auth/spreadsheets.readonly`],`get_spreadsheet`,`Fetch spreadsheet metadata and sheets by ID.`,`/v4/spreadsheets/{spreadsheetId}`),gmail:H(`https://gmail.googleapis.com`,[`https://www.googleapis.com/auth/gmail.readonly`],`list_messages`,`List Gmail messages for the authenticated user.`,`/gmail/v1/users/me/messages`),"google-calendar":H(`https://www.googleapis.com/calendar/v3`,[`https://www.googleapis.com/auth/calendar.readonly`],`list_events`,`List events from the user's primary Google Calendar.`,`/calendars/primary/events`),jira:W(`https://api.atlassian.com/ex/jira/{cloudId}`,[`read:jira-work`],`list_projects`,`List Jira projects available to the connected user.`,`/rest/api/3/project/search`),confluence:W(`https://api.atlassian.com/ex/confluence/{cloudId}`,[`read:page:confluence`],`list_spaces`,`List Confluence spaces available to the connected user.`,`/wiki/api/v2/spaces`),linear:{apiBaseUrl:`https://api.linear.app`,authorizationUrl:`https://linear.app/oauth/authorize`,tokenUrl:`https://api.linear.app/oauth/token`,scopes:[`read`],toolName:`list_issues`,toolDescription:`Query issues from Linear via GraphQL.`,requestMethod:`POST`,requestPath:`/graphql`},asana:{apiBaseUrl:`https://app.asana.com/api/1.0`,authorizationUrl:`https://app.asana.com/-/oauth_authorize`,tokenUrl:`https://app.asana.com/-/oauth_token`,scopes:[`tasks:read`],toolName:`list_tasks`,toolDescription:`List tasks visible to the connected Asana user.`,requestMethod:`GET`,requestPath:`/tasks`},trello:{apiBaseUrl:`https://api.trello.com/1`,toolName:`list_boards`,toolDescription:`List Trello boards visible to the authenticated member.`,requestMethod:`GET`,requestPath:`/members/me/boards`},clickup:{apiBaseUrl:`https://api.clickup.com/api/v2`,authorizationUrl:`https://app.clickup.com/api`,tokenUrl:`https://api.clickup.com/api/v2/oauth/token`,scopes:[],toolName:`list_workspaces`,toolDescription:`List ClickUp workspaces available to the connected user.`,requestMethod:`GET`,requestPath:`/team`},monday:{apiBaseUrl:`https://api.monday.com/v2`,authorizationUrl:`https://auth.monday.com/oauth2/authorize`,tokenUrl:`https://auth.monday.com/oauth2/token`,scopes:[`boards:read`],toolName:`list_boards`,toolDescription:`Query boards from Monday.com.`,requestMethod:`POST`,requestPath:`/`},airtable:{apiBaseUrl:`https://api.airtable.com/v0`,authorizationUrl:`https://airtable.com/oauth2/v1/authorize`,tokenUrl:`https://airtable.com/oauth2/v1/token`,scopes:[`schema.bases:read`,`data.records:read`],toolName:`list_bases`,toolDescription:`List Airtable bases the connected user granted access to.`,requestMethod:`GET`,requestPath:`/meta/bases`},dropbox:{apiBaseUrl:`https://api.dropboxapi.com/2`,authorizationUrl:`https://www.dropbox.com/oauth2/authorize`,tokenUrl:`https://api.dropboxapi.com/oauth2/token`,scopes:[`files.metadata.read`],toolName:`list_root_folder`,toolDescription:`List entries in the root Dropbox folder.`,requestMethod:`POST`,requestPath:`/files/list_folder`},box:{apiBaseUrl:`https://api.box.com/2.0`,authorizationUrl:`https://account.box.com/api/oauth2/authorize`,tokenUrl:`https://api.box.com/oauth2/token`,scopes:[`root_readonly`,`item_read`],toolName:`list_root_items`,toolDescription:`List files and folders in the Box root folder.`,requestMethod:`GET`,requestPath:`/folders/0/items`},"microsoft-outlook":U([`Mail.Read`],`list_messages`,`List Outlook messages for the signed-in user.`,`/me/messages`),"microsoft-teams":U([`Team.ReadBasic.All`],`list_teams`,`List Microsoft Teams joined by the signed-in user.`,`/me/joinedTeams`),onedrive:U([`Files.Read`],`list_drive_items`,`List OneDrive items in the root folder.`,`/me/drive/root/children`),sharepoint:U([`Sites.Read.All`],`get_root_site`,`Fetch the SharePoint root site through Microsoft Graph.`,`/sites/root`),salesforce:{apiBaseUrl:`https://{instance}.salesforce.com/services/data/v60.0`,authorizationUrl:`https://login.salesforce.com/services/oauth2/authorize`,tokenUrl:`https://login.salesforce.com/services/oauth2/token`,scopes:[`api`],toolName:`list_accounts`,toolDescription:`List Salesforce accounts from the connected org.`,requestMethod:`GET`,requestPath:`/sobjects/Account`},hubspot:{provider:`mcp`,authorizationUrl:Ue,tokenUrl:We,clientAuthentication:`body`,pkce:!0,scopes:[],credentialHelp:`Use the client ID and secret from a HubSpot MCP auth app (Development → MCP Auth Apps). Standard HubSpot OAuth apps and private apps will not authenticate with mcp.hubspot.com.`},zendesk:{apiBaseUrl:`https://{subdomain}.zendesk.com/api/v2`,authorizationUrl:`https://{subdomain}.zendesk.com/oauth2/authorize`,tokenUrl:`https://{subdomain}.zendesk.com/oauth2/token`,scopes:[`tickets:read`],toolName:`list_tickets`,toolDescription:`List Zendesk tickets for the connected account.`,requestMethod:`GET`,requestPath:`/tickets`},intercom:{apiBaseUrl:`https://api.intercom.io`,authorizationUrl:`https://app.intercom.com/oauth`,tokenUrl:`https://api.intercom.io/auth/eagle/token`,scopes:[`read_users`,`read_conversations`],toolName:`list_contacts`,toolDescription:`List Intercom contacts for the connected workspace.`,requestMethod:`GET`,requestPath:`/contacts`},stripe:{apiBaseUrl:`https://api.stripe.com/v1`,authorizationUrl:`https://connect.stripe.com/oauth/authorize`,tokenUrl:`https://connect.stripe.com/oauth/token`,scopes:[`read_only`],toolName:`list_customers`,toolDescription:`List Stripe customers from the connected account.`,requestMethod:`GET`,requestPath:`/customers`},shopify:{apiBaseUrl:`https://{shop}.myshopify.com/admin/api/2025-01`,authorizationUrl:`https://{shop}.myshopify.com/admin/oauth/authorize`,tokenUrl:`https://{shop}.myshopify.com/admin/oauth/access_token`,scopes:[`read_products`],toolName:`list_products`,toolDescription:`List Shopify products for the connected store.`,requestMethod:`GET`,requestPath:`/products.json`},discord:{apiBaseUrl:`https://discord.com/api/v10`,authorizationUrl:`https://discord.com/oauth2/authorize`,tokenUrl:`https://discord.com/api/oauth2/token`,scopes:[`identify`,`guilds`],toolName:`list_guilds`,toolDescription:`List Discord guilds available to the connected user.`,requestMethod:`GET`,requestPath:`/users/@me/guilds`},zoom:{apiBaseUrl:`https://api.zoom.us/v2`,authorizationUrl:`https://zoom.us/oauth/authorize`,tokenUrl:`https://zoom.us/oauth/token`,scopes:[`meeting:read:user`],toolName:`list_meetings`,toolDescription:`List Zoom meetings for the connected user.`,requestMethod:`GET`,requestPath:`/users/me/meetings`},webflow:{provider:`mcp`,authorizationUrl:`https://mcp.webflow.com/oauth/authorize`,tokenUrl:`https://mcp.webflow.com/oauth/token`,registrationUrl:`https://mcp.webflow.com/oauth/register`,clientAuthentication:`none`,pkce:!0,scopes:[]},miro:{apiBaseUrl:`https://api.miro.com/v2`,authorizationUrl:`https://miro.com/oauth/authorize`,tokenUrl:`https://api.miro.com/v1/oauth/token`,scopes:[`boards:read`],toolName:`list_boards`,toolDescription:`List Miro boards available to the connected user.`,requestMethod:`GET`,requestPath:`/boards`},canva:{apiBaseUrl:`https://api.canva.com/rest/v1`,tokenUrl:`https://api.canva.com/rest/v1/oauth/token`,scopes:[],toolName:`list_designs`,toolDescription:`List Canva designs available to the connected user.`,requestMethod:`GET`,requestPath:`/designs`},datadog:{provider:`mcp`,authorizationUrl:`https://app.datadoghq.com/oauth2/v1/authorize`,tokenUrl:`https://api.datadoghq.com/oauth2/v1/token`,scopes:[`dashboards_read`,`monitors_read`]},sentry:{apiBaseUrl:`https://sentry.io/api/0`,authorizationUrl:`https://sentry.io/oauth/authorize`,tokenUrl:`https://sentry.io/oauth/token`,scopes:[`project:read`,`event:read`,`org:read`],toolName:`list_organizations`,toolDescription:`List Sentry organizations available to the connected user.`,requestMethod:`GET`,requestPath:`/organizations/`},posthog:{apiBaseUrl:`https://us.posthog.com/api`,authorizationUrl:`https://us.posthog.com/oauth/authorize`,tokenUrl:`https://us.posthog.com/oauth/token`,scopes:[`project:read`],toolName:`list_projects`,toolDescription:`List PostHog projects available to the connected user.`,requestMethod:`GET`,requestPath:`/projects/`},supabase:{apiBaseUrl:`https://api.supabase.com/v1`,authorizationUrl:`https://api.supabase.com/v1/oauth/authorize`,tokenUrl:`https://api.supabase.com/v1/oauth/token`,scopes:[],toolName:`list_projects`,toolDescription:`List Supabase projects available to the connected user.`,requestMethod:`GET`,requestPath:`/projects`},vercel:{apiBaseUrl:`https://api.vercel.com`,authorizationUrl:`https://vercel.com/oauth/authorize`,tokenUrl:`https://api.vercel.com/v2/oauth/access_token`,scopes:[`project:read`],toolName:`list_projects`,toolDescription:`List Vercel projects available to the connected user.`,requestMethod:`GET`,requestPath:`/v9/projects`},netlify:{apiBaseUrl:`https://api.netlify.com/api/v1`,authorizationUrl:`https://app.netlify.com/authorize`,tokenUrl:`https://api.netlify.com/oauth/token`,scopes:[`sites:read`],toolName:`list_sites`,toolDescription:`List Netlify sites available to the connected user.`,requestMethod:`GET`,requestPath:`/sites`},plaid:{apiBaseUrl:`https://production.plaid.com`,toolName:`get_accounts`,toolDescription:`Fetch accounts for a connected Plaid item.`,requestMethod:`POST`,requestPath:`/accounts/get`},okta:{apiBaseUrl:`https://{yourOktaDomain}/api/v1`,authorizationUrl:`https://{yourOktaDomain}/oauth2/v1/authorize`,tokenUrl:`https://{yourOktaDomain}/oauth2/v1/token`,scopes:[`okta.users.read`],toolName:`list_users`,toolDescription:`List Okta users for the connected org.`,requestMethod:`GET`,requestPath:`/users`},servicenow:{apiBaseUrl:`https://{instance}.service-now.com/api/now/v1`,authorizationUrl:`https://{instance}.service-now.com/oauth_auth.do`,tokenUrl:`https://{instance}.service-now.com/oauth_token.do`,scopes:[`useraccount`,`table.read`],toolName:`list_incidents`,toolDescription:`List ServiceNow incidents for the connected instance.`,requestMethod:`GET`,requestPath:`/table/incident`},freshdesk:{apiBaseUrl:`https://{domain}.freshdesk.com/api/v2`,authorizationUrl:`https://{domain}.freshdesk.com/oauth/authorize`,tokenUrl:`https://{domain}.freshdesk.com/oauth/token`,scopes:[`tickets_view`],toolName:`list_tickets`,toolDescription:`List Freshdesk tickets for the connected account.`,requestMethod:`GET`,requestPath:`/tickets`},pipedrive:{apiBaseUrl:`https://api.pipedrive.com/v1`,authorizationUrl:`https://oauth.pipedrive.com/oauth/authorize`,tokenUrl:`https://oauth.pipedrive.com/oauth/token`,scopes:[`deals:read`,`contacts:read`],toolName:`list_persons`,toolDescription:`List Pipedrive people visible to the connected user.`,requestMethod:`GET`,requestPath:`/persons`},mailchimp:{apiBaseUrl:`https://{dc}.api.mailchimp.com/3.0`,authorizationUrl:`https://login.mailchimp.com/oauth2/authorize`,tokenUrl:`https://login.mailchimp.com/oauth2/token`,scopes:[`audiences:read`],toolName:`list_audiences`,toolDescription:`List Mailchimp audiences for the connected account.`,requestMethod:`GET`,requestPath:`/lists`},quickbooks:{apiBaseUrl:`https://sandbox-quickbooks.api.intuit.com/v3/company/{companyId}`,authorizationUrl:`https://appcenter.intuit.com/connect/oauth2`,tokenUrl:`https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer`,scopes:[`com.intuit.quickbooks.accounting`],toolName:`list_customers`,toolDescription:`Query QuickBooks customers for the connected company.`,requestMethod:`GET`,requestPath:`/query?query=SELECT%20*%20FROM%20Customer%20MAXRESULTS%2010`},xero:{apiBaseUrl:`https://api.xero.com/api.xro/2.0`,authorizationUrl:`https://login.xero.com/identity/connect/authorize`,tokenUrl:`https://identity.xero.com/connect/token`,scopes:[`accounting.contacts.read`],toolName:`list_contacts`,toolDescription:`List Xero contacts for the connected tenant.`,requestMethod:`GET`,requestPath:`/Contacts`},gitlab:{apiBaseUrl:`https://gitlab.com/api/v4`,authorizationUrl:`https://gitlab.com/oauth/authorize`,tokenUrl:`https://gitlab.com/oauth/token`,scopes:[`read_api`],toolName:`get_current_user`,toolDescription:`Fetch the authenticated GitLab user profile.`,requestMethod:`GET`,requestPath:`/user`},bitbucket:{apiBaseUrl:`https://api.bitbucket.org/2.0`,authorizationUrl:`https://bitbucket.org/site/oauth2/authorize`,tokenUrl:`https://bitbucket.org/site/oauth2/access_token`,scopes:[`account`,`repository`],toolName:`get_current_user`,toolDescription:`Fetch the authenticated Bitbucket user profile.`,requestMethod:`GET`,requestPath:`/user`},ordinal:{provider:`mcp`,authModes:[`bearer`],authStrategy:`bearer`,credentialLabel:`Ordinal API key`,credentialPlaceholder:`Paste your Ordinal API key`,credentialHelp:`API key from your Ordinal workspace settings, sent as a Bearer token in the Authorization header.`}},qe=e=>{let t=Ke[e];if(!t)return;let n=Ge[e],r=t.provider??(n?`mcp`:t.apiBaseUrl||t.openApiUrl?`http`:void 0);return{...t,provider:r,serverUrl:r===`mcp`?t.serverUrl??n:t.serverUrl}},K=(e,t)=>{let n=qe(t.slug);return{...t,authStrategy:t.authStrategy??n?.authStrategy??`oauth2`,popularityRank:e,registrationDefaults:n}},q=[K(1,{slug:`github`,name:`GitHub`,description:`Source control, issues, pull requests, and developer workflows.`,categories:[`Engineering`,`Source control`],availability:`manual_token`,managedConnectorSlug:`github`,appUrl:`https://github.com`,docsUrl:`https://docs.github.com/apps/oauth-apps/building-oauth-apps`,notes:`Current managed connector works with bearer tokens today; GitHub OAuth is a strong candidate for a future one-click connect flow.`}),K(2,{slug:`google-docs`,name:`Google Docs`,description:`Docs authoring and Google Workspace document automation.`,categories:[`Documents`,`Knowledge base`],availability:`manual_token`,managedConnectorSlug:`google-docs`,appUrl:`https://workspace.google.com/products/docs/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Current managed connector accepts a Google access token manually; a full OAuth connect flow can remove token copy/paste.`}),K(3,{slug:`slack`,name:`Slack`,description:`Channels, messaging, workflows, canvases, and operational collaboration.`,categories:[`Communication`,`Operations`],availability:`oauth_ready`,managedConnectorSlug:`slack`,appUrl:`https://slack.com`,docsUrl:`https://docs.slack.dev/ai/slack-mcp-server`,notes:`Uses Slack's official hosted MCP server with confidential OAuth user-token auth.`}),K(4,{slug:`notion`,name:`Notion`,description:`Workspace search, pages, databases, and knowledge management.`,categories:[`Knowledge base`,`Documentation`],availability:`oauth_ready`,managedConnectorSlug:`notion`,appUrl:`https://www.notion.so`,docsUrl:`https://developers.notion.com/docs/authorization`,notes:``}),K(5,{slug:`figma`,name:`Figma`,description:`Design files, nodes, and developer handoff automation.`,categories:[`Design`,`Frontend`],availability:`oauth_ready`,managedConnectorSlug:`figma`,appUrl:`https://www.figma.com`,docsUrl:`https://www.figma.com/developers/api#oauth2`,notes:``}),K(6,{slug:`google-drive`,name:`Google Drive`,description:`File search, metadata, folders, and document discovery.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://workspace.google.com/products/drive/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Natural expansion of the Google Workspace surface beyond Google Docs.`}),K(7,{slug:`google-sheets`,name:`Google Sheets`,description:`Spreadsheet reads, writes, formulas, and reporting workflows.`,categories:[`Spreadsheets`,`Analytics`],availability:`planned`,appUrl:`https://workspace.google.com/products/sheets/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`High-value automation surface for agent-driven reporting and structured edits.`}),K(8,{slug:`gmail`,name:`Gmail`,description:`Mailbox search, drafting, sending, and thread triage.`,categories:[`Communication`,`Email`],availability:`planned`,appUrl:`https://workspace.google.com/products/gmail/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Popular agent workflow target for inbox triage and drafting.`}),K(9,{slug:`google-calendar`,name:`Google Calendar`,description:`Calendar search, event scheduling, and meeting coordination.`,categories:[`Calendar`,`Scheduling`],availability:`planned`,appUrl:`https://workspace.google.com/products/calendar/`,docsUrl:`https://developers.google.com/identity/protocols/oauth2`,notes:`Strong personal productivity use case with mature OAuth flows.`}),K(10,{slug:`jira`,name:`Jira`,description:`Issue tracking, sprint workflows, and engineering program management.`,categories:[`Project management`,`Engineering`],availability:`planned`,appUrl:`https://www.atlassian.com/software/jira`,docsUrl:`https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/`,notes:`Very common MCP target for software teams and ticket automation.`}),K(11,{slug:`confluence`,name:`Confluence`,description:`Wiki pages, spaces, and internal documentation search.`,categories:[`Documentation`,`Knowledge base`],availability:`planned`,appUrl:`https://www.atlassian.com/software/confluence`,docsUrl:`https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/`,notes:`Natural companion to Jira for software teams.`}),K(12,{slug:`linear`,name:`Linear`,description:`Issue tracking, roadmap planning, and product engineering workflows.`,categories:[`Project management`,`Engineering`],availability:`planned`,appUrl:`https://linear.app`,docsUrl:`https://linear.app/developers/oauth-authentication`,notes:`Popular among modern product engineering teams and already useful to this repo's users.`}),K(13,{slug:`asana`,name:`Asana`,description:`Task management, projects, and work tracking.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://asana.com`,docsUrl:`https://developers.asana.com/docs/oauth`,notes:`Broad business adoption and straightforward OAuth app model.`}),K(14,{slug:`trello`,name:`Trello`,description:`Boards, cards, checklists, and lightweight project planning.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://trello.com`,docsUrl:`https://developer.atlassian.com/cloud/trello/guides/rest-api/authorization/`,notes:`Useful for SMB and cross-functional task boards, but Trello's public API auth is a special-case flow rather than a straightforward generic OAuth2 connector.`}),K(15,{slug:`clickup`,name:`ClickUp`,description:`Tasks, docs, goals, and workflow automation.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://clickup.com`,docsUrl:`https://clickup.com/api/developer-portal/authentication`,notes:`Large install base and broad operations coverage.`}),K(16,{slug:`monday`,name:`Monday.com`,description:`Boards, automations, and work management across teams.`,categories:[`Project management`,`Operations`],availability:`planned`,appUrl:`https://monday.com`,docsUrl:`https://developer.monday.com/apps/docs/oauth`,notes:`High-demand operations platform with rich board APIs.`}),K(17,{slug:`airtable`,name:`Airtable`,description:`Bases, records, linked data, and workflow automation.`,categories:[`Database`,`Operations`],availability:`planned`,appUrl:`https://airtable.com`,docsUrl:`https://airtable.com/developers/web/api/oauth-reference`,notes:`Very common internal-tools and operations automation surface.`}),K(18,{slug:`dropbox`,name:`Dropbox`,description:`Cloud files, folders, content access, and sharing.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://www.dropbox.com`,docsUrl:`https://developers.dropbox.com/oauth-guide`,notes:`Popular file automation target with mature OAuth support.`}),K(19,{slug:`box`,name:`Box`,description:`Enterprise file storage, metadata, and collaboration.`,categories:[`Storage`,`Enterprise`],availability:`planned`,appUrl:`https://www.box.com`,docsUrl:`https://developer.box.com/guides/authentication/oauth2/`,notes:`Strong enterprise document-management footprint.`}),K(20,{slug:`microsoft-outlook`,name:`Microsoft Outlook`,description:`Mail, calendar, contacts, and meeting workflows through Microsoft Graph.`,categories:[`Email`,`Calendar`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/outlook/email-and-calendar-software-microsoft-outlook`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`High-value Microsoft Graph integration surface for enterprise users.`}),K(21,{slug:`microsoft-teams`,name:`Microsoft Teams`,description:`Chats, channels, meetings, and collaboration via Microsoft Graph.`,categories:[`Communication`,`Enterprise`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-teams/group-chat-software`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Common enterprise chat target alongside Outlook.`}),K(22,{slug:`onedrive`,name:`OneDrive`,description:`Cloud file access and document workflows through Microsoft Graph.`,categories:[`Storage`,`Documents`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Useful for enterprise file automation and search.`}),K(23,{slug:`sharepoint`,name:`SharePoint`,description:`Sites, document libraries, lists, and intranet content.`,categories:[`Knowledge base`,`Enterprise`],availability:`planned`,appUrl:`https://www.microsoft.com/microsoft-365/sharepoint/collaboration`,docsUrl:`https://learn.microsoft.com/graph/auth-v2-user`,notes:`Frequently requested for enterprise knowledge retrieval.`}),K(24,{slug:`salesforce`,name:`Salesforce`,description:`CRM records, accounts, opportunities, and sales operations.`,categories:[`CRM`,`Sales`],availability:`planned`,appUrl:`https://www.salesforce.com`,docsUrl:`https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm&type=5`,notes:`Very common enterprise CRM and agent-assist target.`}),K(25,{slug:`hubspot`,name:`HubSpot`,description:`CRM, marketing, tickets, and customer lifecycle workflows.`,categories:[`CRM`,`Marketing`],availability:`oauth_ready`,managedConnectorSlug:`hubspot`,appUrl:`https://www.hubspot.com`,docsUrl:`https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server`,notes:`Uses HubSpot's official remote MCP server plus MCP auth apps with PKCE.`}),K(26,{slug:`zendesk`,name:`Zendesk`,description:`Support tickets, customers, agents, and help desk operations.`,categories:[`Support`,`Operations`],availability:`planned`,appUrl:`https://www.zendesk.com`,docsUrl:`https://developer.zendesk.com/documentation/apps/getting-started/oauth/`,notes:`Strong support automation use case for agents.`}),K(27,{slug:`intercom`,name:`Intercom`,description:`Customer support, conversations, inboxes, and CRM context.`,categories:[`Support`,`CRM`],availability:`planned`,appUrl:`https://www.intercom.com`,docsUrl:`https://developers.intercom.com/building-apps/docs/authentication-types`,notes:`Useful for customer-facing assistant workflows.`}),K(28,{slug:`stripe`,name:`Stripe`,description:`Payments, customers, invoices, and subscription operations.`,categories:[`Payments`,`Finance`],availability:`planned`,appUrl:`https://stripe.com`,docsUrl:`https://docs.stripe.com/connect/oauth-reference`,notes:`High-value fintech automation target with mature OAuth patterns.`}),K(29,{slug:`shopify`,name:`Shopify`,description:`Storefronts, products, orders, and ecommerce operations.`,categories:[`Ecommerce`,`Operations`],availability:`planned`,appUrl:`https://www.shopify.com`,docsUrl:`https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant`,notes:`A top ecommerce platform and strong MCP candidate.`}),K(30,{slug:`discord`,name:`Discord`,description:`Guilds, channels, messages, and community operations.`,categories:[`Communication`,`Community`],availability:`planned`,appUrl:`https://discord.com`,docsUrl:`https://discord.com/developers/docs/topics/oauth2`,notes:`Useful for community automation and bot-assisted workflows.`}),K(31,{slug:`zoom`,name:`Zoom`,description:`Meetings, recordings, webinars, and scheduling operations.`,categories:[`Meetings`,`Calendar`],availability:`planned`,appUrl:`https://zoom.us`,docsUrl:`https://developers.zoom.us/docs/integrations/oauth/`,notes:`Frequently requested for scheduling and meeting summaries.`}),K(32,{slug:`webflow`,name:`Webflow`,description:`CMS items, sites, and web publishing workflows.`,categories:[`CMS`,`Marketing`],availability:`oauth_ready`,managedConnectorSlug:`webflow`,appUrl:`https://webflow.com`,docsUrl:`https://developers.webflow.com/mcp/reference/getting-started`,notes:`Uses Webflow's official hosted MCP server and deployment-scoped MCP OAuth registration so each user can authorize their own sites and workspaces.`}),K(33,{slug:`miro`,name:`Miro`,description:`Whiteboards, diagrams, notes, and workshop collaboration.`,categories:[`Whiteboard`,`Collaboration`],availability:`planned`,appUrl:`https://miro.com`,docsUrl:`https://developers.miro.com/docs/rest-api-build-your-first-oauth-app`,notes:`Strong visual collaboration target for design and product teams.`}),K(34,{slug:`canva`,name:`Canva`,description:`Design content, brand assets, and marketing collateral workflows.`,categories:[`Design`,`Marketing`],availability:`planned`,appUrl:`https://www.canva.com`,docsUrl:`https://www.canva.dev/docs/connect/oauth/`,notes:`Broad creator and marketing adoption with OAuth-based apps.`}),K(35,{slug:`datadog`,name:`Datadog`,description:`Logs, metrics, monitors, incidents, and observability workflows.`,categories:[`Observability`,`Operations`],availability:`oauth_ready`,managedConnectorSlug:`datadog`,appUrl:`https://www.datadoghq.com`,docsUrl:`https://docs.datadoghq.com/bits_ai/mcp_server/setup/`,notes:`Uses Datadog's official hosted MCP server. The default registration targets the US1 endpoint and can be edited for other Datadog sites.`}),K(36,{slug:`sentry`,name:`Sentry`,description:`Errors, releases, issue ownership, and incident investigation.`,categories:[`Observability`,`Engineering`],availability:`planned`,appUrl:`https://sentry.io`,docsUrl:`https://docs.sentry.io/api/guides/oauth/`,notes:`Natural target for engineering support agents.`}),K(37,{slug:`posthog`,name:`PostHog`,description:`Product analytics, feature flags, and session insights.`,categories:[`Analytics`,`Product`],availability:`planned`,appUrl:`https://posthog.com`,docsUrl:`https://posthog.com/docs/apps/build/oauth`,notes:`Relevant for product analytics and experimentation workflows.`}),K(38,{slug:`supabase`,name:`Supabase`,description:`Projects, databases, auth, and storage administration.`,categories:[`Database`,`Developer tools`],availability:`planned`,appUrl:`https://supabase.com`,docsUrl:`https://supabase.com/docs/guides/integrations/build-a-supabase-oauth-integration`,notes:`Popular developer platform with broad automation value and a documented management-API OAuth integration flow.`}),K(39,{slug:`vercel`,name:`Vercel`,description:`Deployments, projects, domains, and preview environment workflows.`,categories:[`Developer tools`,`Deployment`],availability:`planned`,appUrl:`https://vercel.com`,docsUrl:`https://vercel.com/docs/rest-api#oauth-apps`,notes:`Especially relevant to this repo's deployment model.`}),K(40,{slug:`netlify`,name:`Netlify`,description:`Sites, builds, deploy previews, and web operations.`,categories:[`Deployment`,`Developer tools`],availability:`planned`,appUrl:`https://www.netlify.com`,docsUrl:`https://docs.netlify.com/api/get-started/#oauth-applications`,notes:`Common alternative hosting/deployment automation target.`}),K(41,{slug:`plaid`,name:`Plaid`,description:`Financial account connectivity and transaction data flows.`,categories:[`Finance`,`Payments`],availability:`planned`,appUrl:`https://plaid.com`,docsUrl:`https://plaid.com/docs/auth/oauth/`,notes:`Strong fintech workflow candidate, although much of Plaid's OAuth guidance is a special-case token exchange rather than a generic end-user SaaS OAuth connector.`}),K(42,{slug:`okta`,name:`Okta`,description:`Identity, users, applications, and access administration.`,categories:[`Identity`,`Enterprise`],availability:`planned`,appUrl:`https://www.okta.com`,docsUrl:`https://developer.okta.com/docs/guides/implement-oauth-for-okta/main/`,notes:`High-value admin and security automation surface.`}),K(43,{slug:`servicenow`,name:`ServiceNow`,description:`Tickets, incidents, service catalogs, and enterprise workflows.`,categories:[`ITSM`,`Enterprise`],availability:`planned`,appUrl:`https://www.servicenow.com`,docsUrl:`https://www.servicenow.com/docs/bundle/xanadu-platform-security/page/administer/security/concept/oauth-concept.html`,notes:`Strong enterprise IT operations use case.`}),K(44,{slug:`freshdesk`,name:`Freshdesk`,description:`Support tickets, customer records, and help desk workflows.`,categories:[`Support`,`Operations`],availability:`planned`,appUrl:`https://www.freshworks.com/freshdesk/`,docsUrl:`https://developers.freshdesk.com/api/#authentication`,notes:`Popular support platform for SMB and mid-market teams.`}),K(45,{slug:`pipedrive`,name:`Pipedrive`,description:`Deals, contacts, and sales pipeline management.`,categories:[`CRM`,`Sales`],availability:`planned`,appUrl:`https://www.pipedrive.com`,docsUrl:`https://pipedrive.readme.io/docs/marketplace-oauth-authorization`,notes:`Common CRM choice with solid OAuth story.`}),K(46,{slug:`mailchimp`,name:`Mailchimp`,description:`Campaigns, audiences, automations, and email marketing.`,categories:[`Marketing`,`Email`],availability:`planned`,appUrl:`https://mailchimp.com`,docsUrl:`https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/`,notes:`Popular marketing automation target.`}),K(47,{slug:`quickbooks`,name:`QuickBooks`,description:`Accounting, invoices, customers, and financial operations.`,categories:[`Finance`,`Accounting`],availability:`planned`,appUrl:`https://quickbooks.intuit.com`,docsUrl:`https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0`,notes:`Frequent finance automation request with OAuth-based apps.`}),K(48,{slug:`xero`,name:`Xero`,description:`Accounting, contacts, invoices, and bookkeeping workflows.`,categories:[`Finance`,`Accounting`],availability:`planned`,appUrl:`https://www.xero.com`,docsUrl:`https://developer.xero.com/documentation/guides/oauth2/overview/`,notes:`Important accounting platform in many regions.`}),K(49,{slug:`gitlab`,name:`GitLab`,description:`Repositories, issues, merge requests, pipelines, and DevSecOps.`,categories:[`Engineering`,`Source control`],availability:`planned`,appUrl:`https://about.gitlab.com`,docsUrl:`https://docs.gitlab.com/integration/oauth_provider/`,notes:`Major Git hosting platform and natural expansion beyond GitHub.`}),K(50,{slug:`bitbucket`,name:`Bitbucket`,description:`Repositories, pull requests, and Atlassian engineering workflows.`,categories:[`Engineering`,`Source control`],availability:`planned`,appUrl:`https://bitbucket.org`,docsUrl:`https://developer.atlassian.com/cloud/bitbucket/oauth-2/`,notes:`Popular in Atlassian-centric teams and complements Jira/Confluence.`}),K(51,{slug:`elevenlabs`,name:`ElevenLabs`,description:`Text to speech, voices, transcription, audio generation, and agents.`,categories:[`Audio`,`AI`],authStrategy:`api_key`,availability:`manual_token`,managedConnectorSlug:`elevenlabs`,appUrl:`https://elevenlabs.io`,docsUrl:`https://elevenlabs.io/docs/api-reference/introduction`,notes:`Official API-key connector backed by ElevenLabs' published OpenAPI spec.`}),K(52,{slug:`ordinal`,name:`Ordinal`,description:`Social media posts, profiles, analytics, labels, approvals, and engagements.`,categories:[`Social media`,`Marketing`],authStrategy:`bearer`,availability:`manual_token`,managedConnectorSlug:`ordinal`,appUrl:`https://app.tryordinal.com`,docsUrl:`https://docs.tryordinal.com/api/mcp`,notes:`Official MCP server backed by Ordinal's API with API-key (Bearer) auth.`})],Je=()=>q,Ye=[E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie],Xe=e=>{let t=e?.authStrategy??(e?.authorizationUrl||e?.tokenUrl,`oauth2`);return t===`oauth2`?`oauth`:t===`none`?`none`:`api`},Ze=e=>{let t=e.registrationDefaults;if(!t)return null;let n={id:Xe(t),provider:t.provider??(t.serverUrl?`mcp`:`http`),auth:{strategy:t.authStrategy??e.authStrategy??`oauth2`,authModes:t.authModes,credentialLabel:t.credentialLabel,credentialPlaceholder:t.credentialPlaceholder,credentialHelp:t.credentialHelp,apiKeyHeaderName:t.apiKeyHeaderName,oauth:t.authorizationUrl||t.tokenUrl?{authorizationUrl:t.authorizationUrl,tokenUrl:t.tokenUrl,scopes:t.scopes??[],optionalScopes:t.optionalScopes,toolScopes:t.toolScopes,scopeSeparator:t.scopeSeparator,pkce:t.pkce,clientAuthentication:t.clientAuthentication,registrationUrl:t.registrationUrl,additionalAuthorizationParams:t.additionalAuthorizationParams,additionalTokenParams:t.additionalTokenParams}:void 0}};return n.provider===`mcp`?n.transport={kind:`shttp`,url:t.serverUrl}:n.http={apiBaseUrl:t.apiBaseUrl,openApiUrl:t.openApiUrl,defaultTool:t.toolName?{name:t.toolName,description:t.toolDescription,method:t.requestMethod,path:t.requestPath,scopes:t.toolScopes}:void 0},n},Qe=e=>{let t=Ze(e);return{id:e.slug,kind:t?.provider??`http`,name:e.name,description:e.description,categories:e.categories,appUrl:e.appUrl,docsUrl:e.docsUrl,notes:e.notes,catalogStatus:e.availability,managedConnectorSlug:e.managedConnectorSlug,authStrategy:e.authStrategy,popularityRank:e.popularityRank,registrationDefaults:e.registrationDefaults,...t?{defaultConnectionOptionId:t.id,connectionOptions:[t]}:{connectionOptions:[]}}},$e=(e=[],t=[])=>{let n=new Map;for(let t of e)n.set(t.id,t);for(let e of t)n.has(e.id)||n.set(e.id,e);return[...n.values()]},et=(e,t)=>{let n=$e(e.connectionOptions,t.connectionOptions);return{...e,...t,catalogStatus:e.catalogStatus??t.catalogStatus,managedConnectorSlug:e.managedConnectorSlug??t.managedConnectorSlug,authStrategy:e.authStrategy??t.authStrategy,registrationDefaults:e.registrationDefaults??t.registrationDefaults,connectionOptions:n,defaultConnectionOptionId:e.defaultConnectionOptionId??t.defaultConnectionOptionId??n[0]?.id}},J=new Map;for(let e of Je().map(Qe))J.set(e.id,e);for(let e of Ye)J.set(e.id,J.has(e.id)?et(J.get(e.id),e):e);var tt=[...J.values()].sort((e,t)=>(t.popularityRank??0)-(e.popularityRank??0)||e.name.localeCompare(t.name)),Y=e(t(),1),X=`h-5 w-5`,Z=e=>(0,Y.createElement)(e,{className:X}),Q=e=>(0,Y.createElement)(e,{className:X,strokeWidth:2.25}),nt=Q(i),$={github:Z(re),slack:Z(m),tavily:(0,Y.createElement)(ee,{className:X,strokeWidth:2.5}),linear:Z(ie),notion:Z(s),atlassian:Z(de),sentry:Z(f),stripe:Z(ne),paypal:Z(se),"cloudflare-docs":Z(o),"cloudflare-bindings":Z(o),"cloudflare-observability":Z(o),huggingface:Z(le),deepwiki:Z(h),git:Q(a),"brave-search":Z(c),exa:Q(w),firecrawl:Q(y),apify:Q(i),fetch:Q(b),"browser-mcp":Q(S),playwright:Q(T),supabase:Z(p),neon:Q(v),mongodb:Z(ae),redis:Z(oe),filesystem:Q(r),memory:Q(g),"sequential-thinking":Q(x),time:Q(_),everything:Q(C),figma:Z(l),airtable:Z(u),obsidian:Z(ue),elevenlabs:Z(fe),resend:Z(te),"cloudflare-builds":Z(o),"cloudflare-browser-rendering":Z(o),kagi:Z(d),clickhouse:Z(ce)};new Set(Object.keys($));export{$ as n,tt as r,nt as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./react-dom-hVBnwgwZ.js";import{$ as r,B as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,P as m,Q as h,R as g,S as _,U as v,V as y,W as b,X as x,Y as S,Z as C,_ as w,at as T,b as E,c as D,ct as O,d as k,et as A,f as j,g as M,h as N,i as P,it as F,l as I,lt as L,m as R,nt as z,o as B,ot as V,p as H,q as U,rt as W,s as G,st as K,t as q,tt as J,u as Y,ut as ee,v as X,y as te,z as ne}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js";var re=Symbol.for(`react-aria.i18n.locale`),ie=Symbol.for(`react-aria.i18n.strings`),ae=void 0,oe=class e{constructor(e,t=`en-US`){this.strings=Object.fromEntries(Object.entries(e).filter(([,e])=>e)),this.defaultLocale=t}getStringForLocale(e,t){let n=this.getStringsForLocale(t)[e];if(!n)throw Error(`Could not find intl message ${e} in ${t} locale`);return n}getStringsForLocale(e){let t=this.strings[e];return t||(t=se(e,this.strings,this.defaultLocale),this.strings[e]=t),t}static getGlobalDictionaryForPackage(t){if(typeof window>`u`)return null;let n=window[re];if(ae===void 0){let t=window[ie];if(!t)return null;ae={};for(let r in t)ae[r]=new e({[n]:t[r]},n)}let r=ae?.[t];if(!r)throw Error(`Strings for package "${t}" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);return r}};function se(e,t,n=`en-US`){if(t[e])return t[e];let r=ce(e);if(t[r])return t[r];for(let e in t)if(e.startsWith(r+`-`))return t[e];return t[n]}function ce(e){return Intl.Locale?new Intl.Locale(e).language:e.split(`-`)[0]}var le=new Map,ue=new Map,de=class{constructor(e,t){this.locale=e,this.strings=t}format(e,t){let n=this.strings.getStringForLocale(e,this.locale);return typeof n==`function`?n(t,this):n}plural(e,t,n=`cardinal`){let r=t[`=`+e];if(r)return typeof r==`function`?r():r;let i=this.locale+`:`+n,a=le.get(i);return a||(a=new Intl.PluralRules(this.locale,{type:n}),le.set(i,a)),r=t[a.select(e)]||t.other,typeof r==`function`?r():r}number(e){let t=ue.get(this.locale);return t||(t=new Intl.NumberFormat(this.locale),ue.set(this.locale,t)),t.format(e)}select(e,t){let n=e[t]||e.other;return typeof n==`function`?n():n}},Z=e(t(),1),fe=new WeakMap;function pe(e){let t=fe.get(e);return t||(t=new oe(e),fe.set(e,t)),t}function me(e,t){return t&&oe.getGlobalDictionaryForPackage(t)||pe(e)}function he(e,t){let{locale:n}=L(),r=me(e,t);return(0,Z.useMemo)(()=>new de(n,r),[n,r])}function ge(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function _e(e,t,n){ge(e,t),t.set(e,n)}function ve(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=K(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(` `):i&&=i.trim().split(/\s+/).join(` `),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function ye(e,t){let n=(0,Z.useRef)(!0),r=(0,Z.useRef)(null),i=d(e);(0,Z.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]),(0,Z.useEffect)(()=>{let e=r.current;n.current?n.current=!1:(!e||t.some((t,n)=>!Object.is(t,e[n])))&&i(),r.current=t},t)}function be(e,t){let n=(0,Z.useRef)(!0),r=(0,Z.useRef)(null);O(()=>(n.current=!0,()=>{n.current=!1}),[]),O(()=>{n.current?n.current=!1:(!r.current||t.some((e,t)=>!Object.is(e,r[t])))&&e(),r.current=t},t)}function xe(e,t){if(!e)return!1;let n=window.getComputedStyle(e),r=document.scrollingElement||document.documentElement,i=/(auto|scroll)/.test(n.overflow+n.overflowX+n.overflowY);return e===r&&n.overflow!==`hidden`&&(i=!0),i&&t&&(i=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),i}function Se(e,t){let n=e;for(xe(n,t)&&(n=n.parentElement);n&&!xe(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function Ce(e,t){let n=[],r=document.scrollingElement||document.documentElement;do xe(e,t)&&n.push(e),e=e.parentElement;while(e&&e!==r);return n}function we(e){return o()?e.metaKey:e.ctrlKey}var Te=new Set([`checkbox`,`radio`,`range`,`color`,`file`,`image`,`button`,`submit`,`reset`]);function Ee(e){return e instanceof HTMLInputElement&&!Te.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}var De=0,Oe=new Map;function ke(e){let[t,n]=(0,Z.useState)();return O(()=>{if(!e)return;let t=Oe.get(e);if(t)n(t.element.id);else{let r=`react-aria-description-${De++}`;n(r);let i=document.createElement(`div`);i.id=r,i.style.display=`none`,i.textContent=e,document.body.appendChild(i),t={refCount:0,element:i},Oe.set(e,t)}return t.refCount++,()=>{t&&--t.refCount===0&&(t.element.remove(),Oe.delete(e))}},[e]),{"aria-describedby":e?t:void 0}}function Ae(e,t,n,r){let i=d(n),a=n==null;(0,Z.useEffect)(()=>{if(a||!e.current)return;let n=e.current;return n.addEventListener(t,i,r),()=>{n.removeEventListener(t,i,r)}},[e,t,r,a])}function je(e,t,n={}){let{block:r=`nearest`,inline:i=`nearest`}=n;if(e===t)return;let a=e.scrollTop,o=e.scrollLeft,s=t.getBoundingClientRect(),c=e.getBoundingClientRect(),l=window.getComputedStyle(t),u=window.getComputedStyle(e),d=document.scrollingElement||document.documentElement,f=e===d?0:c.top,p=e===d?e.clientHeight:c.bottom,m=e===d?0:c.left,h=e===d?e.clientWidth:c.right,g=parseInt(l.scrollMarginTop,10)||0,_=parseInt(l.scrollMarginBottom,10)||0,v=parseInt(l.scrollMarginLeft,10)||0,y=parseInt(l.scrollMarginRight,10)||0,b=parseInt(u.scrollPaddingTop,10)||0,x=parseInt(u.scrollPaddingBottom,10)||0,S=parseInt(u.scrollPaddingLeft,10)||0,C=parseInt(u.scrollPaddingRight,10)||0,w=parseInt(u.borderTopWidth,10)||0,T=parseInt(u.borderBottomWidth,10)||0,E=parseInt(u.borderLeftWidth,10)||0,D=parseInt(u.borderRightWidth,10)||0,O=s.top-g,k=s.bottom+_,A=s.left-v,j=s.right+y,M=e===d?0:E+D,N=e===d?0:w+T,P=e.offsetWidth-e.clientWidth-M,F=e.offsetHeight-e.clientHeight-N,I=f+w+b,L=p-T-x-F,R=m+E+S,z=h-D-C;u.direction===`rtl`&&!U()?R+=P:z-=P;let B=O<I||k>L,V=A<R||j>z;if(B&&r===`start`)a+=O-I;else if(B&&r===`center`)a+=(O+k)/2-(I+L)/2;else if(B&&r===`end`)a+=k-L;else if(B&&r===`nearest`){let e=O-I,t=k-L;a+=Math.abs(e)<=Math.abs(t)?e:t}if(V&&i===`start`)o+=A-R;else if(V&&i===`center`)o+=(A+j)/2-(R+z)/2;else if(V&&i===`end`)o+=j-z;else if(V&&i===`nearest`){let e=A-R,t=j-z;o+=Math.abs(e)<=Math.abs(t)?e:t}e.scrollTo({left:o,top:a})}function Me(e,t={}){let{containingElement:n}=t;if(e&&e.isConnected){let t=document.scrollingElement||document.documentElement;if(window.getComputedStyle(t).overflow!==`hidden`&&!v()){var r;let{left:t,top:o}=e.getBoundingClientRect();e==null||(r=e.scrollIntoView)==null||r.call(e,{block:`nearest`});let{left:s,top:c}=e.getBoundingClientRect();if(Math.abs(t-s)>1||Math.abs(o-c)>1){var i,a;n==null||(i=n.scrollIntoView)==null||i.call(n,{block:`center`,inline:`center`}),(a=e.scrollIntoView)==null||a.call(e,{block:`nearest`})}}else{let{left:t,top:r}=e.getBoundingClientRect(),i=Ce(e,!0);for(let t of i)je(t,e);let{left:a,top:o}=e.getBoundingClientRect();if(Math.abs(t-a)>1||Math.abs(r-o)>1){i=n?Ce(n,!0):[];for(let e of i)je(e,n,{block:`center`,inline:`center`})}}}}function Ne(e,t,n){let r=d(()=>{n&&n(t)});(0,Z.useEffect)(()=>{let t=e?.current?.form;return t?.addEventListener(`reset`,r),()=>{t?.removeEventListener(`reset`,r)}},[e])}var Pe=`react-aria-clear-focus`,Fe=`react-aria-focus`,Ie=new Map;function Le(e){let{locale:t}=L(),n=t+(e?Object.entries(e).sort((e,t)=>e[0]<t[0]?-1:1).join():``);if(Ie.has(n))return Ie.get(n);let r=new Intl.Collator(t,e);return Ie.set(n,r),r}function Re(e){let t=Le({usage:`search`,...e}),n=(0,Z.useCallback)((e,n)=>n.length===0?!0:(e=e.normalize(`NFC`),n=n.normalize(`NFC`),t.compare(e.slice(0,n.length),n)===0),[t]),r=(0,Z.useCallback)((e,n)=>n.length===0?!0:(e=e.normalize(`NFC`),n=n.normalize(`NFC`),t.compare(e.slice(-n.length),n)===0),[t]),i=(0,Z.useCallback)((e,n)=>{if(n.length===0)return!0;e=e.normalize(`NFC`),n=n.normalize(`NFC`);let r=0,i=n.length;for(;r+i<=e.length;r++){let a=e.slice(r,r+i);if(t.compare(n,a)===0)return!0}return!1},[t]);return(0,Z.useMemo)(()=>({startsWith:n,endsWith:r,contains:i}),[n,r,i])}var ze=`default`,Be=``,Ve=new WeakMap;function He(e){if(U()){if(ze===`default`){let t=W(e);Be=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect=`none`}ze=`disabled`}else if(e instanceof HTMLElement||e instanceof SVGElement){let t=`userSelect`in e.style?`userSelect`:`webkitUserSelect`;Ve.set(e,e.style[t]),e.style[t]=`none`}}function Ue(e){if(U()){if(ze!==`disabled`)return;ze=`restoring`,setTimeout(()=>{ne(()=>{if(ze===`restoring`){let t=W(e);t.documentElement.style.webkitUserSelect===`none`&&(t.documentElement.style.webkitUserSelect=Be||``),Be=``,ze=`default`}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Ve.has(e)){let t=Ve.get(e),n=`userSelect`in e.style?`userSelect`:`webkitUserSelect`;e.style[n]===`none`&&(e.style[n]=t),e.getAttribute(`style`)===``&&e.removeAttribute(`style`),Ve.delete(e)}}var We=Z.createContext({register:()=>{}});We.displayName=`PressResponderContext`;function Ge(e,t){return t.get?t.get.call(e):t.value}function Ke(e,t,n){if(!t.has(e))throw TypeError(`attempted to `+n+` private field on non-instance`);return t.get(e)}function qe(e,t){return Ge(e,Ke(e,t,`get`))}function Je(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw TypeError(`attempted to set read only private field`);t.value=n}}function Ye(e,t,n){return Je(e,Ke(e,t,`set`),n),n}var Xe=e(n(),1);function Ze(e){let t=(0,Z.useContext)(We);if(t){let{register:n,ref:r,...i}=t;e=x(i,e),n()}return c(t,e.ref),e}var Qe=new WeakMap,$e=class{continuePropagation(){Ye(this,Qe,!1)}get shouldStopPropagation(){return qe(this,Qe)}constructor(e,t,n,r){_e(this,Qe,{writable:!0,value:void 0}),Ye(this,Qe,!0);let i=(r?.target??n.currentTarget)?.getBoundingClientRect(),a,o=0,s,c=null;n.clientX!=null&&n.clientY!=null&&(s=n.clientX,c=n.clientY),i&&(s!=null&&c!=null?(a=s-i.left,o=c-i.top):(a=i.width/2,o=i.height/2)),this.type=e,this.pointerType=t,this.target=n.currentTarget,this.shiftKey=n.shiftKey,this.metaKey=n.metaKey,this.ctrlKey=n.ctrlKey,this.altKey=n.altKey,this.x=a,this.y=o,this.key=n.key}},et=Symbol(`linkClicked`),tt=`react-aria-pressable-style`,nt=`data-react-aria-pressable`;function rt(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:s,onClick:c,isDisabled:u,isPressed:f,preventFocusOnPress:p,shouldCancelOnPointerExit:_,allowTextSelectionOnPress:v,ref:b,...S}=Ze(e),[C,w]=(0,Z.useState)(!1),D=(0,Z.useRef)({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:k,removeAllGlobalListeners:A,removeGlobalListener:j}=g(),M=(0,Z.useCallback)((e,t)=>{let i=D.current;if(u||i.didFirePressStart)return!1;let a=!0;if(i.isTriggeringEvent=!0,r){let n=new $e(`pressstart`,t,e);r(n),a=n.shouldStopPropagation}return n&&n(!0),i.isTriggeringEvent=!1,i.didFirePressStart=!0,w(!0),a},[u,r,n]),N=(0,Z.useCallback)((e,r,a=!0)=>{let o=D.current;if(!o.didFirePressStart)return!1;o.didFirePressStart=!1,o.isTriggeringEvent=!0;let s=!0;if(i){let t=new $e(`pressend`,r,e);i(t),s=t.shouldStopPropagation}if(n&&n(!1),w(!1),t&&a&&!u){let n=new $e(`press`,r,e);t(n),s&&=n.shouldStopPropagation}return o.isTriggeringEvent=!1,s},[u,i,n,t]),P=d(N),F=(0,Z.useCallback)((e,t)=>{let n=D.current;if(u)return!1;if(s){n.isTriggeringEvent=!0;let r=new $e(`pressup`,t,e);return s(r),n.isTriggeringEvent=!1,r.shouldStopPropagation}return!0},[u,s]),I=d(F),L=(0,Z.useCallback)(e=>{let t=D.current;if(t.isPressed&&t.target){t.didFirePressStart&&t.pointerType!=null&&N(ot(t.target,e),t.pointerType,!1),t.isPressed=!1,q(null),t.isOverTarget=!1,t.activePointerId=null,t.pointerType=null,A(),v||Ue(t.target);for(let e of t.disposables)e();t.disposables=[]}},[v,A,N]),R=d(L),z=(0,Z.useCallback)(e=>{_&&L(e)},[_,L]),B=(0,Z.useCallback)(e=>{u||c?.(e)},[u,c]),V=(0,Z.useCallback)((e,t)=>{if(!u&&c){let n=new MouseEvent(`click`,e);te(n,t),c(X(n))}},[u,c]),H=d(V),[U,G]=(0,Z.useState)(!1);O(()=>{let e=D.current;if(U){let t=t=>{if(e.isPressed&&e.target&&at(t,e.target)){var n;ct(J(t),t.key)&&t.preventDefault();let r=J(t),i=h(e.target,r);P(ot(e.target,t),`keyboard`,i),i&&H(t,e.target),A(),t.key!==`Enter`&&it(e.target)&&h(e.target,r)&&!t[et]&&(t[et]=!0,y(e.target,t,!1)),e.isPressed=!1,G(!1),(n=e.metaKeyEvents)==null||n.delete(t.key)}else if(t.key===`Meta`&&e.metaKeyEvents?.size){var r;let t=e.metaKeyEvents;e.metaKeyEvents=void 0;for(let n of t.values())(r=e.target)==null||r.dispatchEvent(new KeyboardEvent(`keyup`,n))}},n=e.target,r=T(t=>{n&&at(t,n)&&!t.repeat&&h(n,J(t))&&e.target&&I(ot(e.target,t),`keyboard`)},t);return k(W(e.target),`keyup`,r,!0),()=>{j(W(e.target),`keyup`,r,!0)}}},[U,k,A,j]);let[K,q]=(0,Z.useState)(null);O(()=>{let e=D.current;if(K===`pointer`){let t=t=>{if(t.pointerId===e.activePointerId&&e.isPressed&&t.button===0&&e.target){if(h(e.target,J(t))&&e.pointerType!=null){let n=!1,r=setTimeout(()=>{e.isPressed&&e.target instanceof HTMLElement&&(n?R(t):(l(e.target),e.target.click()))},80);t.currentTarget&&k(t.currentTarget,`click`,()=>n=!0,!0),e.disposables.push(()=>clearTimeout(r))}else R(t);e.isOverTarget=!1}},n=e=>{R(e)};return k(W(e.target),`pointerup`,t,!1),k(W(e.target),`pointercancel`,n,!1),()=>{j(W(e.target),`pointerup`,t,!1),j(W(e.target),`pointercancel`,n,!1)}}},[K,k,j]);let Y=(0,Z.useMemo)(()=>{let e=D.current,t={onKeyDown(t){if(at(t.nativeEvent,t.currentTarget)&&h(t.currentTarget,J(t))){var n;ct(J(t),t.key)&&t.preventDefault();let r=!0;!e.isPressed&&!t.repeat&&(e.target=t.currentTarget,e.isPressed=!0,G(!0),e.pointerType=`keyboard`,r=M(t,`keyboard`)),r&&t.stopPropagation(),t.metaKey&&o()&&((n=e.metaKeyEvents)==null||n.set(t.key,t.nativeEvent))}else t.key===`Meta`&&(e.metaKeyEvents=new Map)},onClick(t){if(!(t&&!h(t.currentTarget,J(t)))&&t&&t.button===0&&!e.isTriggeringEvent&&!y.isOpening){let n=!0;if(u&&t.preventDefault(),!e.ignoreEmulatedMouseEvents&&!e.isPressed&&(e.pointerType===`virtual`||a(t.nativeEvent))){let e=M(t,`virtual`),r=F(t,`virtual`),i=N(t,`virtual`);B(t),n=e&&r&&i}else if(e.isPressed&&e.pointerType!==`keyboard`){let r=e.pointerType||t.nativeEvent.pointerType||`virtual`,i=F(ot(t.currentTarget,t),r),a=N(ot(t.currentTarget,t),r,!0);n=i&&a,e.isOverTarget=!1,B(t),L(t)}e.ignoreEmulatedMouseEvents=!1,n&&t.stopPropagation()}}};return typeof PointerEvent<`u`&&(t.onPointerDown=t=>{if(t.button!==0||!h(t.currentTarget,J(t)))return;if(m(t.nativeEvent)){e.pointerType=`virtual`;return}e.pointerType=t.pointerType;let n=!0;if(!e.isPressed){e.isPressed=!0,q(`pointer`),e.isOverTarget=!0,e.activePointerId=t.pointerId,e.target=t.currentTarget,v||He(e.target),n=M(t,e.pointerType);let r=J(t);`releasePointerCapture`in r&&(`hasPointerCapture`in r?r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId):r.releasePointerCapture(t.pointerId))}n&&t.stopPropagation()},t.onMouseDown=t=>{if(h(t.currentTarget,J(t))&&t.button===0){if(p){let n=E(t.target);n&&e.disposables.push(n)}t.stopPropagation()}},t.onPointerUp=t=>{!h(t.currentTarget,J(t))||e.pointerType===`virtual`||t.button===0&&!e.isPressed&&F(t,e.pointerType||t.pointerType)},t.onPointerEnter=t=>{t.pointerId===e.activePointerId&&e.target&&!e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!0,M(ot(e.target,t),e.pointerType))},t.onPointerLeave=t=>{t.pointerId===e.activePointerId&&e.target&&e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!1,N(ot(e.target,t),e.pointerType,!1),z(t))},t.onDragStart=e=>{h(e.currentTarget,J(e))&&L(e)}),t},[u,p,A,v,L,z,N,M,F,B,V]);return(0,Z.useEffect)(()=>{if(!b)return;let e=W(b.current);if(!e||!e.head||e.getElementById(tt))return;let t=e.createElement(`style`);t.id=tt,t.textContent=`
|
|
1
|
+
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./react-dom-hVBnwgwZ.js";import{$ as r,B as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,P as m,Q as h,R as g,S as _,U as v,V as y,W as b,X as x,Y as S,Z as C,_ as w,at as T,b as E,c as D,ct as O,d as k,et as A,f as j,g as M,h as N,i as P,it as F,l as I,lt as L,m as R,nt as z,o as B,ot as V,p as H,q as U,rt as W,s as G,st as K,t as q,tt as J,u as Y,ut as ee,v as X,y as te,z as ne}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-6Rm8U_Sr.js";var re=Symbol.for(`react-aria.i18n.locale`),ie=Symbol.for(`react-aria.i18n.strings`),ae=void 0,oe=class e{constructor(e,t=`en-US`){this.strings=Object.fromEntries(Object.entries(e).filter(([,e])=>e)),this.defaultLocale=t}getStringForLocale(e,t){let n=this.getStringsForLocale(t)[e];if(!n)throw Error(`Could not find intl message ${e} in ${t} locale`);return n}getStringsForLocale(e){let t=this.strings[e];return t||(t=se(e,this.strings,this.defaultLocale),this.strings[e]=t),t}static getGlobalDictionaryForPackage(t){if(typeof window>`u`)return null;let n=window[re];if(ae===void 0){let t=window[ie];if(!t)return null;ae={};for(let r in t)ae[r]=new e({[n]:t[r]},n)}let r=ae?.[t];if(!r)throw Error(`Strings for package "${t}" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);return r}};function se(e,t,n=`en-US`){if(t[e])return t[e];let r=ce(e);if(t[r])return t[r];for(let e in t)if(e.startsWith(r+`-`))return t[e];return t[n]}function ce(e){return Intl.Locale?new Intl.Locale(e).language:e.split(`-`)[0]}var le=new Map,ue=new Map,de=class{constructor(e,t){this.locale=e,this.strings=t}format(e,t){let n=this.strings.getStringForLocale(e,this.locale);return typeof n==`function`?n(t,this):n}plural(e,t,n=`cardinal`){let r=t[`=`+e];if(r)return typeof r==`function`?r():r;let i=this.locale+`:`+n,a=le.get(i);return a||(a=new Intl.PluralRules(this.locale,{type:n}),le.set(i,a)),r=t[a.select(e)]||t.other,typeof r==`function`?r():r}number(e){let t=ue.get(this.locale);return t||(t=new Intl.NumberFormat(this.locale),ue.set(this.locale,t)),t.format(e)}select(e,t){let n=e[t]||e.other;return typeof n==`function`?n():n}},Z=e(t(),1),fe=new WeakMap;function pe(e){let t=fe.get(e);return t||(t=new oe(e),fe.set(e,t)),t}function me(e,t){return t&&oe.getGlobalDictionaryForPackage(t)||pe(e)}function he(e,t){let{locale:n}=L(),r=me(e,t);return(0,Z.useMemo)(()=>new de(n,r),[n,r])}function ge(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function _e(e,t,n){ge(e,t),t.set(e,n)}function ve(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=K(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(` `):i&&=i.trim().split(/\s+/).join(` `),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function ye(e,t){let n=(0,Z.useRef)(!0),r=(0,Z.useRef)(null),i=d(e);(0,Z.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]),(0,Z.useEffect)(()=>{let e=r.current;n.current?n.current=!1:(!e||t.some((t,n)=>!Object.is(t,e[n])))&&i(),r.current=t},t)}function be(e,t){let n=(0,Z.useRef)(!0),r=(0,Z.useRef)(null);O(()=>(n.current=!0,()=>{n.current=!1}),[]),O(()=>{n.current?n.current=!1:(!r.current||t.some((e,t)=>!Object.is(e,r[t])))&&e(),r.current=t},t)}function xe(e,t){if(!e)return!1;let n=window.getComputedStyle(e),r=document.scrollingElement||document.documentElement,i=/(auto|scroll)/.test(n.overflow+n.overflowX+n.overflowY);return e===r&&n.overflow!==`hidden`&&(i=!0),i&&t&&(i=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),i}function Se(e,t){let n=e;for(xe(n,t)&&(n=n.parentElement);n&&!xe(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function Ce(e,t){let n=[],r=document.scrollingElement||document.documentElement;do xe(e,t)&&n.push(e),e=e.parentElement;while(e&&e!==r);return n}function we(e){return o()?e.metaKey:e.ctrlKey}var Te=new Set([`checkbox`,`radio`,`range`,`color`,`file`,`image`,`button`,`submit`,`reset`]);function Ee(e){return e instanceof HTMLInputElement&&!Te.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}var De=0,Oe=new Map;function ke(e){let[t,n]=(0,Z.useState)();return O(()=>{if(!e)return;let t=Oe.get(e);if(t)n(t.element.id);else{let r=`react-aria-description-${De++}`;n(r);let i=document.createElement(`div`);i.id=r,i.style.display=`none`,i.textContent=e,document.body.appendChild(i),t={refCount:0,element:i},Oe.set(e,t)}return t.refCount++,()=>{t&&--t.refCount===0&&(t.element.remove(),Oe.delete(e))}},[e]),{"aria-describedby":e?t:void 0}}function Ae(e,t,n,r){let i=d(n),a=n==null;(0,Z.useEffect)(()=>{if(a||!e.current)return;let n=e.current;return n.addEventListener(t,i,r),()=>{n.removeEventListener(t,i,r)}},[e,t,r,a])}function je(e,t,n={}){let{block:r=`nearest`,inline:i=`nearest`}=n;if(e===t)return;let a=e.scrollTop,o=e.scrollLeft,s=t.getBoundingClientRect(),c=e.getBoundingClientRect(),l=window.getComputedStyle(t),u=window.getComputedStyle(e),d=document.scrollingElement||document.documentElement,f=e===d?0:c.top,p=e===d?e.clientHeight:c.bottom,m=e===d?0:c.left,h=e===d?e.clientWidth:c.right,g=parseInt(l.scrollMarginTop,10)||0,_=parseInt(l.scrollMarginBottom,10)||0,v=parseInt(l.scrollMarginLeft,10)||0,y=parseInt(l.scrollMarginRight,10)||0,b=parseInt(u.scrollPaddingTop,10)||0,x=parseInt(u.scrollPaddingBottom,10)||0,S=parseInt(u.scrollPaddingLeft,10)||0,C=parseInt(u.scrollPaddingRight,10)||0,w=parseInt(u.borderTopWidth,10)||0,T=parseInt(u.borderBottomWidth,10)||0,E=parseInt(u.borderLeftWidth,10)||0,D=parseInt(u.borderRightWidth,10)||0,O=s.top-g,k=s.bottom+_,A=s.left-v,j=s.right+y,M=e===d?0:E+D,N=e===d?0:w+T,P=e.offsetWidth-e.clientWidth-M,F=e.offsetHeight-e.clientHeight-N,I=f+w+b,L=p-T-x-F,R=m+E+S,z=h-D-C;u.direction===`rtl`&&!U()?R+=P:z-=P;let B=O<I||k>L,V=A<R||j>z;if(B&&r===`start`)a+=O-I;else if(B&&r===`center`)a+=(O+k)/2-(I+L)/2;else if(B&&r===`end`)a+=k-L;else if(B&&r===`nearest`){let e=O-I,t=k-L;a+=Math.abs(e)<=Math.abs(t)?e:t}if(V&&i===`start`)o+=A-R;else if(V&&i===`center`)o+=(A+j)/2-(R+z)/2;else if(V&&i===`end`)o+=j-z;else if(V&&i===`nearest`){let e=A-R,t=j-z;o+=Math.abs(e)<=Math.abs(t)?e:t}e.scrollTo({left:o,top:a})}function Me(e,t={}){let{containingElement:n}=t;if(e&&e.isConnected){let t=document.scrollingElement||document.documentElement;if(window.getComputedStyle(t).overflow!==`hidden`&&!v()){var r;let{left:t,top:o}=e.getBoundingClientRect();e==null||(r=e.scrollIntoView)==null||r.call(e,{block:`nearest`});let{left:s,top:c}=e.getBoundingClientRect();if(Math.abs(t-s)>1||Math.abs(o-c)>1){var i,a;n==null||(i=n.scrollIntoView)==null||i.call(n,{block:`center`,inline:`center`}),(a=e.scrollIntoView)==null||a.call(e,{block:`nearest`})}}else{let{left:t,top:r}=e.getBoundingClientRect(),i=Ce(e,!0);for(let t of i)je(t,e);let{left:a,top:o}=e.getBoundingClientRect();if(Math.abs(t-a)>1||Math.abs(r-o)>1){i=n?Ce(n,!0):[];for(let e of i)je(e,n,{block:`center`,inline:`center`})}}}}function Ne(e,t,n){let r=d(()=>{n&&n(t)});(0,Z.useEffect)(()=>{let t=e?.current?.form;return t?.addEventListener(`reset`,r),()=>{t?.removeEventListener(`reset`,r)}},[e])}var Pe=`react-aria-clear-focus`,Fe=`react-aria-focus`,Ie=new Map;function Le(e){let{locale:t}=L(),n=t+(e?Object.entries(e).sort((e,t)=>e[0]<t[0]?-1:1).join():``);if(Ie.has(n))return Ie.get(n);let r=new Intl.Collator(t,e);return Ie.set(n,r),r}function Re(e){let t=Le({usage:`search`,...e}),n=(0,Z.useCallback)((e,n)=>n.length===0?!0:(e=e.normalize(`NFC`),n=n.normalize(`NFC`),t.compare(e.slice(0,n.length),n)===0),[t]),r=(0,Z.useCallback)((e,n)=>n.length===0?!0:(e=e.normalize(`NFC`),n=n.normalize(`NFC`),t.compare(e.slice(-n.length),n)===0),[t]),i=(0,Z.useCallback)((e,n)=>{if(n.length===0)return!0;e=e.normalize(`NFC`),n=n.normalize(`NFC`);let r=0,i=n.length;for(;r+i<=e.length;r++){let a=e.slice(r,r+i);if(t.compare(n,a)===0)return!0}return!1},[t]);return(0,Z.useMemo)(()=>({startsWith:n,endsWith:r,contains:i}),[n,r,i])}var ze=`default`,Be=``,Ve=new WeakMap;function He(e){if(U()){if(ze===`default`){let t=W(e);Be=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect=`none`}ze=`disabled`}else if(e instanceof HTMLElement||e instanceof SVGElement){let t=`userSelect`in e.style?`userSelect`:`webkitUserSelect`;Ve.set(e,e.style[t]),e.style[t]=`none`}}function Ue(e){if(U()){if(ze!==`disabled`)return;ze=`restoring`,setTimeout(()=>{ne(()=>{if(ze===`restoring`){let t=W(e);t.documentElement.style.webkitUserSelect===`none`&&(t.documentElement.style.webkitUserSelect=Be||``),Be=``,ze=`default`}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Ve.has(e)){let t=Ve.get(e),n=`userSelect`in e.style?`userSelect`:`webkitUserSelect`;e.style[n]===`none`&&(e.style[n]=t),e.getAttribute(`style`)===``&&e.removeAttribute(`style`),Ve.delete(e)}}var We=Z.createContext({register:()=>{}});We.displayName=`PressResponderContext`;function Ge(e,t){return t.get?t.get.call(e):t.value}function Ke(e,t,n){if(!t.has(e))throw TypeError(`attempted to `+n+` private field on non-instance`);return t.get(e)}function qe(e,t){return Ge(e,Ke(e,t,`get`))}function Je(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw TypeError(`attempted to set read only private field`);t.value=n}}function Ye(e,t,n){return Je(e,Ke(e,t,`set`),n),n}var Xe=e(n(),1);function Ze(e){let t=(0,Z.useContext)(We);if(t){let{register:n,ref:r,...i}=t;e=x(i,e),n()}return c(t,e.ref),e}var Qe=new WeakMap,$e=class{continuePropagation(){Ye(this,Qe,!1)}get shouldStopPropagation(){return qe(this,Qe)}constructor(e,t,n,r){_e(this,Qe,{writable:!0,value:void 0}),Ye(this,Qe,!0);let i=(r?.target??n.currentTarget)?.getBoundingClientRect(),a,o=0,s,c=null;n.clientX!=null&&n.clientY!=null&&(s=n.clientX,c=n.clientY),i&&(s!=null&&c!=null?(a=s-i.left,o=c-i.top):(a=i.width/2,o=i.height/2)),this.type=e,this.pointerType=t,this.target=n.currentTarget,this.shiftKey=n.shiftKey,this.metaKey=n.metaKey,this.ctrlKey=n.ctrlKey,this.altKey=n.altKey,this.x=a,this.y=o,this.key=n.key}},et=Symbol(`linkClicked`),tt=`react-aria-pressable-style`,nt=`data-react-aria-pressable`;function rt(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:s,onClick:c,isDisabled:u,isPressed:f,preventFocusOnPress:p,shouldCancelOnPointerExit:_,allowTextSelectionOnPress:v,ref:b,...S}=Ze(e),[C,w]=(0,Z.useState)(!1),D=(0,Z.useRef)({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:k,removeAllGlobalListeners:A,removeGlobalListener:j}=g(),M=(0,Z.useCallback)((e,t)=>{let i=D.current;if(u||i.didFirePressStart)return!1;let a=!0;if(i.isTriggeringEvent=!0,r){let n=new $e(`pressstart`,t,e);r(n),a=n.shouldStopPropagation}return n&&n(!0),i.isTriggeringEvent=!1,i.didFirePressStart=!0,w(!0),a},[u,r,n]),N=(0,Z.useCallback)((e,r,a=!0)=>{let o=D.current;if(!o.didFirePressStart)return!1;o.didFirePressStart=!1,o.isTriggeringEvent=!0;let s=!0;if(i){let t=new $e(`pressend`,r,e);i(t),s=t.shouldStopPropagation}if(n&&n(!1),w(!1),t&&a&&!u){let n=new $e(`press`,r,e);t(n),s&&=n.shouldStopPropagation}return o.isTriggeringEvent=!1,s},[u,i,n,t]),P=d(N),F=(0,Z.useCallback)((e,t)=>{let n=D.current;if(u)return!1;if(s){n.isTriggeringEvent=!0;let r=new $e(`pressup`,t,e);return s(r),n.isTriggeringEvent=!1,r.shouldStopPropagation}return!0},[u,s]),I=d(F),L=(0,Z.useCallback)(e=>{let t=D.current;if(t.isPressed&&t.target){t.didFirePressStart&&t.pointerType!=null&&N(ot(t.target,e),t.pointerType,!1),t.isPressed=!1,q(null),t.isOverTarget=!1,t.activePointerId=null,t.pointerType=null,A(),v||Ue(t.target);for(let e of t.disposables)e();t.disposables=[]}},[v,A,N]),R=d(L),z=(0,Z.useCallback)(e=>{_&&L(e)},[_,L]),B=(0,Z.useCallback)(e=>{u||c?.(e)},[u,c]),V=(0,Z.useCallback)((e,t)=>{if(!u&&c){let n=new MouseEvent(`click`,e);te(n,t),c(X(n))}},[u,c]),H=d(V),[U,G]=(0,Z.useState)(!1);O(()=>{let e=D.current;if(U){let t=t=>{if(e.isPressed&&e.target&&at(t,e.target)){var n;ct(J(t),t.key)&&t.preventDefault();let r=J(t),i=h(e.target,r);P(ot(e.target,t),`keyboard`,i),i&&H(t,e.target),A(),t.key!==`Enter`&&it(e.target)&&h(e.target,r)&&!t[et]&&(t[et]=!0,y(e.target,t,!1)),e.isPressed=!1,G(!1),(n=e.metaKeyEvents)==null||n.delete(t.key)}else if(t.key===`Meta`&&e.metaKeyEvents?.size){var r;let t=e.metaKeyEvents;e.metaKeyEvents=void 0;for(let n of t.values())(r=e.target)==null||r.dispatchEvent(new KeyboardEvent(`keyup`,n))}},n=e.target,r=T(t=>{n&&at(t,n)&&!t.repeat&&h(n,J(t))&&e.target&&I(ot(e.target,t),`keyboard`)},t);return k(W(e.target),`keyup`,r,!0),()=>{j(W(e.target),`keyup`,r,!0)}}},[U,k,A,j]);let[K,q]=(0,Z.useState)(null);O(()=>{let e=D.current;if(K===`pointer`){let t=t=>{if(t.pointerId===e.activePointerId&&e.isPressed&&t.button===0&&e.target){if(h(e.target,J(t))&&e.pointerType!=null){let n=!1,r=setTimeout(()=>{e.isPressed&&e.target instanceof HTMLElement&&(n?R(t):(l(e.target),e.target.click()))},80);t.currentTarget&&k(t.currentTarget,`click`,()=>n=!0,!0),e.disposables.push(()=>clearTimeout(r))}else R(t);e.isOverTarget=!1}},n=e=>{R(e)};return k(W(e.target),`pointerup`,t,!1),k(W(e.target),`pointercancel`,n,!1),()=>{j(W(e.target),`pointerup`,t,!1),j(W(e.target),`pointercancel`,n,!1)}}},[K,k,j]);let Y=(0,Z.useMemo)(()=>{let e=D.current,t={onKeyDown(t){if(at(t.nativeEvent,t.currentTarget)&&h(t.currentTarget,J(t))){var n;ct(J(t),t.key)&&t.preventDefault();let r=!0;!e.isPressed&&!t.repeat&&(e.target=t.currentTarget,e.isPressed=!0,G(!0),e.pointerType=`keyboard`,r=M(t,`keyboard`)),r&&t.stopPropagation(),t.metaKey&&o()&&((n=e.metaKeyEvents)==null||n.set(t.key,t.nativeEvent))}else t.key===`Meta`&&(e.metaKeyEvents=new Map)},onClick(t){if(!(t&&!h(t.currentTarget,J(t)))&&t&&t.button===0&&!e.isTriggeringEvent&&!y.isOpening){let n=!0;if(u&&t.preventDefault(),!e.ignoreEmulatedMouseEvents&&!e.isPressed&&(e.pointerType===`virtual`||a(t.nativeEvent))){let e=M(t,`virtual`),r=F(t,`virtual`),i=N(t,`virtual`);B(t),n=e&&r&&i}else if(e.isPressed&&e.pointerType!==`keyboard`){let r=e.pointerType||t.nativeEvent.pointerType||`virtual`,i=F(ot(t.currentTarget,t),r),a=N(ot(t.currentTarget,t),r,!0);n=i&&a,e.isOverTarget=!1,B(t),L(t)}e.ignoreEmulatedMouseEvents=!1,n&&t.stopPropagation()}}};return typeof PointerEvent<`u`&&(t.onPointerDown=t=>{if(t.button!==0||!h(t.currentTarget,J(t)))return;if(m(t.nativeEvent)){e.pointerType=`virtual`;return}e.pointerType=t.pointerType;let n=!0;if(!e.isPressed){e.isPressed=!0,q(`pointer`),e.isOverTarget=!0,e.activePointerId=t.pointerId,e.target=t.currentTarget,v||He(e.target),n=M(t,e.pointerType);let r=J(t);`releasePointerCapture`in r&&(`hasPointerCapture`in r?r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId):r.releasePointerCapture(t.pointerId))}n&&t.stopPropagation()},t.onMouseDown=t=>{if(h(t.currentTarget,J(t))&&t.button===0){if(p){let n=E(t.target);n&&e.disposables.push(n)}t.stopPropagation()}},t.onPointerUp=t=>{!h(t.currentTarget,J(t))||e.pointerType===`virtual`||t.button===0&&!e.isPressed&&F(t,e.pointerType||t.pointerType)},t.onPointerEnter=t=>{t.pointerId===e.activePointerId&&e.target&&!e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!0,M(ot(e.target,t),e.pointerType))},t.onPointerLeave=t=>{t.pointerId===e.activePointerId&&e.target&&e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!1,N(ot(e.target,t),e.pointerType,!1),z(t))},t.onDragStart=e=>{h(e.currentTarget,J(e))&&L(e)}),t},[u,p,A,v,L,z,N,M,F,B,V]);return(0,Z.useEffect)(()=>{if(!b)return;let e=W(b.current);if(!e||!e.head||e.getElementById(tt))return;let t=e.createElement(`style`);t.id=tt,t.textContent=`
|
|
2
2
|
@layer {
|
|
3
3
|
[${nt}] {
|
|
4
4
|
touch-action: pan-x pan-y pinch-zoom;
|