@openhands/agent-canvas 1.0.0-beta.9 → 1.0.0-rc.2

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.
Files changed (405) hide show
  1. package/README.md +2 -2
  2. package/README.windows.md +2 -2
  3. package/build/assets/{QueryClientProvider-w1cZWY41.js → QueryClientProvider-7oLZ1RtQ.js} +1 -1
  4. package/build/assets/{Trans-BJeYqz2A.js → Trans-rF21Jwln.js} +1 -1
  5. package/build/assets/{acp-providers-DJr8DlNG.js → acp-providers-DZEi8wDz.js} +1 -1
  6. package/build/assets/active-backend-context-CQTk4wD8.js +1 -0
  7. package/build/assets/add-backend-modal-CIfhseZn.js +1 -0
  8. package/build/assets/agent-server-client-options-Dvgeb3x4.js +1 -0
  9. package/build/assets/agent-server-compatibility-BANjmMTo.js +1 -0
  10. package/build/assets/agent-server-conversation-service.api-B82pNNTm.js +5 -0
  11. package/build/assets/{agent-settings-BXBaybB_.js → agent-settings-B6htMeS2.js} +1 -1
  12. package/build/assets/{alert-banner-NeUl1-PQ.js → alert-banner-D41ZKDZT.js} +1 -1
  13. package/build/assets/{analytics-consent-form-modal-CmWcFlc6.js → analytics-consent-form-modal-TINgM_jV.js} +1 -1
  14. package/build/assets/api-key-entry-screen-Di1vHgIU.js +1 -0
  15. package/build/assets/{app-settings-C-U6jONZ.js → app-settings-CjCa1MOB.js} +1 -1
  16. package/build/assets/automation-detail-DPoxzTdV.js +1 -0
  17. package/build/assets/{automations-list-BLJzAd-p.js → automations-list-DwUEe2Ea.js} +1 -1
  18. package/build/assets/{back-nav-button-DgkK0Ka6.js → back-nav-button-BDM9vr_o.js} +1 -1
  19. package/build/assets/backend-form-modal-B6q897ZX.js +1 -0
  20. package/build/assets/{backend-synced-settings-badge-BktJcGgH.js → backend-synced-settings-badge-BwTawSCE.js} +1 -1
  21. package/build/assets/{base-modal-DZCNv0A4.js → base-modal-Ba5WcNb6.js} +1 -1
  22. package/build/assets/{brand-button-LBFNic99.js → brand-button-BoiPxAGm.js} +1 -1
  23. package/build/assets/{browser-D08Sp3ZY.js → browser-DTei6kki.js} +1 -1
  24. package/build/assets/browser-store-BjhV_9wS.js +1 -0
  25. package/build/assets/{browser-tab-be3QvXg9.js → browser-tab-DiRTKik8.js} +1 -1
  26. package/build/assets/chat-send-button-06dIuWXm.js +1 -0
  27. package/build/assets/check-BDAbW7je.js +1 -0
  28. package/build/assets/{checkmark-Rmpruj7q.js → checkmark-BB7QCG5T.js} +1 -1
  29. package/build/assets/{chevron-down-KhWYEjeW.js → chevron-down-DUxWwzTm.js} +1 -1
  30. package/build/assets/{chevron-left-small-6nyFCWVQ.js → chevron-left-small-CuuwpRi9.js} +1 -1
  31. package/build/assets/{circle-plus-check-toggle-DquBwJ_6.js → circle-plus-check-toggle-B3_W6-nt.js} +1 -1
  32. package/build/assets/{close-D_o3d8QM.js → close-Cz0OAgTy.js} +1 -1
  33. package/build/assets/{code-tag-DhsjDB-v.js → code-tag-Cz9AIz-X.js} +1 -1
  34. package/build/assets/{color-themes-0biOprdo.js → color-themes-B9n7pBQl.js} +1 -1
  35. package/build/assets/{combobox-caret-CO7eozIY.js → combobox-caret-DwMmhrrA.js} +1 -1
  36. package/build/assets/{command-store-UzKGSUC2.js → command-store-DAd3K0d_.js} +1 -1
  37. package/build/assets/{condenser-settings-BulzYEuW.js → condenser-settings-DczjwkIp.js} +1 -1
  38. package/build/assets/{confirmation-modal-CMAtd9R0.js → confirmation-modal-C_lds1Tb.js} +1 -1
  39. package/build/assets/{context-menu-list-item-D0swnhFt.js → context-menu-list-item-DhG1Ln5m.js} +1 -1
  40. package/build/assets/conversation-CBlJiDaV.js +19 -0
  41. package/build/assets/conversation-Dss8XCN_.js +1 -0
  42. package/build/assets/conversation-panel-B5sVpsz5.js +1 -0
  43. package/build/assets/conversation-service.api-B4s-xIOK.js +1 -0
  44. package/build/assets/conversation-state-store-BUU90dVq.js +1 -0
  45. package/build/assets/{conversation-store-CC-isCnP.js → conversation-store-kHcewy1E.js} +1 -1
  46. package/build/assets/{conversation-tab-empty-state-DYjKsg_c.js → conversation-tab-empty-state-5bW9CQke.js} +1 -1
  47. package/build/assets/conversation-websocket-context-C2yKCqvj.js +3 -0
  48. package/build/assets/{copy-BM0RpLez.js → copy-CA1Dblua.js} +1 -1
  49. package/build/assets/{custom-toast-handlers-BohXx7uh.js → custom-toast-handlers-fgD4IYsu.js} +1 -1
  50. package/build/assets/{declaration-DaUdB2Wg.js → declaration-IA661TBv.js} +1 -1
  51. package/build/assets/{device-verify-DiEJqpJb.js → device-verify-BVl4GEvt.js} +1 -1
  52. package/build/assets/{dist-xtCm0O6P.js → dist-B-SKiGDl.js} +1 -1
  53. package/build/assets/dist-CBUfAk0Z.js +1 -0
  54. package/build/assets/{dropdown-classes-Vqz86I0R.js → dropdown-classes-lT1LUsbO.js} +1 -1
  55. package/build/assets/edit-automation-modal-kc_FzbzK.js +1 -0
  56. package/build/assets/ellipsis-button-DRRmCrWi.js +1 -0
  57. package/build/assets/{entry.client-BvKgdCQ9.js → entry.client-CWkbusD1.js} +2 -2
  58. package/build/assets/{enum-filter-dropdown-DdFgk0EM.js → enum-filter-dropdown-DlY0Q3fj.js} +1 -1
  59. package/build/assets/{environment-switch-overlay-CuBuZOaa.js → environment-switch-overlay-BrHKX6_Z.js} +1 -1
  60. package/build/assets/{extensions-hub-Dayqvv0n.js → extensions-hub-NbQnt-cn.js} +1 -1
  61. package/build/assets/extensions-navigation-oOk5yl8X.js +1 -0
  62. package/build/assets/{file-DwHCkWZT.js → file-DM0ihEsO.js} +1 -1
  63. package/build/assets/files-tab-mK7Mdyuf.js +1 -0
  64. package/build/assets/files-tab-store-QlUCuW8b.js +1 -0
  65. package/build/assets/{folder-2h1hR1Qb.js → folder-UGYUKpqb.js} +1 -1
  66. package/build/assets/git-control-bar-branch-button-C1qmab0K.js +27 -0
  67. package/build/assets/{globe-qFjFNG6J.js → globe-2otpEmVh.js} +1 -1
  68. package/build/assets/home-ChuA06Hv.js +1 -0
  69. package/build/assets/{i18n-zDndR1Ne.js → i18n-CyvU1o95.js} +1 -1
  70. package/build/assets/install-server-modal--lZ1HSHB.js +1 -0
  71. package/build/assets/{launch-I00QV8YT.js → launch-BADsYeGp.js} +1 -1
  72. package/build/assets/{lesson-plan-C18uB_56.js → lesson-plan-5O2tVbD1.js} +1 -1
  73. package/build/assets/{link-external-DtcdPFbw.js → link-external-kU6aFXU6.js} +1 -1
  74. package/build/assets/llm-client-BnqeDPua.js +1 -0
  75. package/build/assets/llm-settings-D477P0Lg.js +1 -0
  76. package/build/assets/llm-settings-DtlQ7i4C.js +1 -0
  77. package/build/assets/{loading-spinner-DNwR4--Z.js → loading-spinner-CFuA0UNt.js} +1 -1
  78. package/build/assets/manage-backends-modal-sH7l5NgI.js +1 -0
  79. package/build/assets/manifest-17af0b17.js +1 -0
  80. package/build/assets/{markdown-renderer-D6B-u2nM.js → markdown-renderer-CZq_UdmE.js} +1 -1
  81. package/build/assets/mcp-DdQ72_AO.js +9 -0
  82. package/build/assets/mcp-client-xEdbDxOL.js +1 -0
  83. package/build/assets/{messages-Bz9TWjlh.js → messages-luW9zf1w.js} +1 -1
  84. package/build/assets/{modal-backdrop-BDqI1zBV.js → modal-backdrop-B1si6TUd.js} +1 -1
  85. package/build/assets/{modal-body-CCLCqX1J.js → modal-body-2Po2nl1e.js} +1 -1
  86. package/build/assets/{modal-classes-DwTdT3IK.js → modal-classes-9XTtWCtF.js} +1 -1
  87. package/build/assets/{modal-close-button-gQgKqUf-.js → modal-close-button-BCvw9IUN.js} +1 -1
  88. package/build/assets/model-selector-DzQRgNGZ.js +1 -0
  89. package/build/assets/{navigation-context-aNGUUtdq.js → navigation-context-CszaA-CJ.js} +1 -1
  90. package/build/assets/{navigation-link-CYkF2y3K.js → navigation-link-DXg4oo29.js} +1 -1
  91. package/build/assets/onboarding-DCL9stdH.js +1 -0
  92. package/build/assets/{openhands-logo-CHmtDV-t.js → openhands-logo-B-IDE1ER.js} +1 -1
  93. package/build/assets/{option-service.api-CGNANEcT.js → option-service.api-DHOGfYKh.js} +1 -1
  94. package/build/assets/organization-service.api-D79cdERN.js +1 -0
  95. package/build/assets/path-utils-CNd_jqv_.js +1 -0
  96. package/build/assets/{pencil-Dr0b2jL1.js → pencil-COslZGUC.js} +1 -1
  97. package/build/assets/{plan-components--aLlpASH.js → plan-components-BRiIX8Wn.js} +1 -1
  98. package/build/assets/{planner-tab-B-5EeCEm.js → planner-tab-QBnZgIXd.js} +1 -1
  99. package/build/assets/plus-D8aJZRkD.js +1 -0
  100. package/build/assets/profiles-client-CesbAK-7.js +1 -0
  101. package/build/assets/{providers-DknP6O2g.js → providers-Bpq3xFRA.js} +1 -1
  102. package/build/assets/proxy-wIasY2Po.js +1 -0
  103. package/build/assets/{query-client-config-CWWGQWvw.js → query-client-config-CITeuHD7.js} +1 -1
  104. package/build/assets/{recommended-automations-launcher-BIul0osB.js → recommended-automations-launcher-B01jchhe.js} +1 -1
  105. package/build/assets/root-BBV8Ew9E.js +2 -0
  106. package/build/assets/root-layout-pQASEqtQ.js +2 -0
  107. package/build/assets/{sdk-section-page-VmtJWH3A.js → sdk-section-page-BQKe3asw.js} +1 -1
  108. package/build/assets/{sdk-settings-schema-DFievvEK.js → sdk-settings-schema-DoRnefvb.js} +1 -1
  109. package/build/assets/{search-BeVRXvX7.js → search-Cbh-hHBu.js} +1 -1
  110. package/build/assets/secrets-service-DEIB-Cfk.js +1 -0
  111. package/build/assets/{secrets-settings-BLMvCkKm.js → secrets-settings-D2EfzdpC.js} +1 -1
  112. package/build/assets/server-client-Cz8PyIbN.js +1 -0
  113. package/build/assets/settings-B7jVceyu.js +1 -0
  114. package/build/assets/settings-client-BUlG0Gzq.js +1 -0
  115. package/build/assets/{settings-dropdown-input-DA_pzHWE.js → settings-dropdown-input-BD7ziSoR.js} +1 -1
  116. package/build/assets/{settings-gear-aNebYlCy.js → settings-gear-xGs_SPgZ.js} +1 -1
  117. package/build/assets/{settings-index-CycvkOoq.js → settings-index-Xj0v9Oas.js} +1 -1
  118. package/build/assets/{settings-input-8y5p4kze.js → settings-input-CPr7vX81.js} +1 -1
  119. package/build/assets/{settings-list-classes-Qk7zl0Wu.js → settings-list-classes-CYDn4jUg.js} +1 -1
  120. package/build/assets/{settings-modal-nJYxCsyp.js → settings-modal-CDBy1S9S.js} +1 -1
  121. package/build/assets/{settings-section-header-context-B77tsYlx.js → settings-section-header-context-aD2iq1gD.js} +1 -1
  122. package/build/assets/settings-service.api-CTQ-LpAA.js +1 -0
  123. package/build/assets/{settings-switch-ba4DuiNO.js → settings-switch-CSHSqH99.js} +1 -1
  124. package/build/assets/{settings-utils-BxzHqLmZ.js → settings-utils-BCbzc6-u.js} +1 -1
  125. package/build/assets/shared-conversation-BHEbOdHj.js +1 -0
  126. package/build/assets/{sidebar-mobile-menu-toggle-C0mmabKj.js → sidebar-mobile-menu-toggle-YYPXGikp.js} +1 -1
  127. package/build/assets/{sidebar-nav-link-BsYdDFfb.js → sidebar-nav-link-CiXbBMQx.js} +1 -1
  128. package/build/assets/{sidebar-store-DnQAJAE5.js → sidebar-store-B76R2gP8.js} +1 -1
  129. package/build/assets/{skill-card-pill-row-BhUlGcYB.js → skill-card-pill-row-BXILn-GK.js} +1 -1
  130. package/build/assets/{skills-TYjOUQ2d.js → skills-CCaEu1KQ.js} +1 -1
  131. package/build/assets/skills-client-Cr9F5306.js +1 -0
  132. package/build/assets/{skills-plugins-D0pdqgKa.js → skills-plugins-Bs5HiF1O.js} +1 -1
  133. package/build/assets/{skills-settings-VqKTkmVl.js → skills-settings-CQYxMmWf.js} +1 -1
  134. package/build/assets/{styled-tooltip-TCp7svY3.js → styled-tooltip-DEr7oa0m.js} +1 -1
  135. package/build/assets/suspense-C9MBE_9N.js +1 -0
  136. package/build/assets/{switch-skeleton-cKrdaYGj.js → switch-skeleton-C87Tx3Tc.js} +1 -1
  137. package/build/assets/{task-list-tab-BiizRsY3.js → task-list-tab-R9N3Wd-U.js} +1 -1
  138. package/build/assets/telemetry-DCrd7gnV.js +2 -0
  139. package/build/assets/{terminal-CpgZx6go.js → terminal-BTM3UFcQ.js} +1 -1
  140. package/build/assets/{terminal-BSYITdM0.js → terminal-DQJ6IJUd.js} +1 -1
  141. package/build/assets/{toggle-switch-CUgOZqZu.js → toggle-switch-C-7juZ1u.js} +1 -1
  142. package/build/assets/{trash-2-CbVljPko.js → trash-2-DAKXV2Wm.js} +1 -1
  143. package/build/assets/{typography-Bvw0IxaN.js → typography-U1gkzkXo.js} +1 -1
  144. package/build/assets/{u-check-circle-half-DjpjzWu3.js → u-check-circle-half-CirnoxXG.js} +1 -1
  145. package/build/assets/{u-check-circle-u9QiS4Fr.js → u-check-circle-lbkXL2z4.js} +1 -1
  146. package/build/assets/{u-circuit-DlBlOwx9.js → u-circuit-Danff2ks.js} +1 -1
  147. package/build/assets/{u-edit-BIYzjs3v.js → u-edit-CH5nNya1.js} +1 -1
  148. package/build/assets/{use-active-conversation-q1wT8LI5.js → use-active-conversation-BY5F6A1G.js} +1 -1
  149. package/build/assets/use-agent-settings-schema-CsuMq16G.js +1 -0
  150. package/build/assets/{use-agent-state-CCHlVqvY.js → use-agent-state-DX5NKEa_.js} +1 -1
  151. package/build/assets/{use-cloud-current-user-id-BAKf91Zx.js → use-cloud-current-user-id-e1Pk7NxQ.js} +1 -1
  152. package/build/assets/use-config-DSzkljTq.js +1 -0
  153. package/build/assets/use-create-conversation-4iJytCT1.js +1 -0
  154. package/build/assets/{use-event-store-Cxqc45Sw.js → use-event-store-Rw1YbvLm.js} +1 -1
  155. package/build/assets/use-get-secrets-BMnFFBUx.js +1 -0
  156. package/build/assets/{use-handle-plan-click-Bfl0zIBr.js → use-handle-plan-click-DYd5a6zN.js} +1 -1
  157. package/build/assets/use-is-authed-DrocXcet.js +1 -0
  158. package/build/assets/{use-launch-skill-in-chat-3ydwpi_M.js → use-launch-skill-in-chat-BoqKmEHC.js} +1 -1
  159. package/build/assets/use-llm-profiles-BhZRf-NX.js +1 -0
  160. package/build/assets/use-runtime-is-ready-DP-KKHO6.js +1 -0
  161. package/build/assets/{use-save-settings-rE9aA29R.js → use-save-settings-hK6LYt0s.js} +1 -1
  162. package/build/assets/use-settings-Clf0Y_P3.js +1 -0
  163. package/build/assets/{use-settings-nav-items-C7MOWj09.js → use-settings-nav-items-oZ-BlOWX.js} +1 -1
  164. package/build/assets/use-skills-v8pQ02ze.js +1 -0
  165. package/build/assets/{use-task-list-YMkSzdDv.js → use-task-list-DydbuRFM.js} +1 -1
  166. package/build/assets/{use-tracking-DQYdZpxi.js → use-tracking-DQU60djN.js} +1 -1
  167. package/build/assets/use-unified-vscode-url-D2Buvmxj.js +1 -0
  168. package/build/assets/use-user-conversation-DwOGM1lc.js +1 -0
  169. package/build/assets/{useMutation-DDo48A8t.js → useMutation-7hG0GuPx.js} +1 -1
  170. package/build/assets/useQuery-JDs8UaWj.js +1 -0
  171. package/build/assets/{useTranslation-CEcjrme-.js → useTranslation-CbJtty1g.js} +1 -1
  172. package/build/assets/{utils-CdgBzLA7.js → utils-CVcuFUYj.js} +1 -1
  173. package/build/assets/{vendor~browser-DWk6fNtJ.js → vendor~browser-3J6WDaAB.js} +1 -1
  174. package/build/assets/{vendor~browser-tab-NZdVoI2Z.js → vendor~browser-tab-DYZ-OmbT.js} +1 -1
  175. package/build/assets/{vendor~conversation-panel~conversation-gp03cWZW.js → vendor~conversation-panel~conversation-DYHL7QoY.js} +1 -1
  176. package/build/assets/{vendor~conversation-panel~conversation~index-BZ5C6Xpz.js → vendor~conversation-panel~conversation~index-Be58Romv.js} +1 -1
  177. package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~oli4dvxu-BodGsxSf.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~oli4dvxu-CBEOG8NF.js} +1 -1
  178. package/build/assets/{vendor~files-tab-Buz36Y-q.js → vendor~files-tab-Diy4WrQz.js} +1 -1
  179. package/build/assets/{vendor~home~conversation-panel~conversation-DG0H5SkJ.js → vendor~home~conversation-panel~conversation-DZ-F7J6T.js} +1 -1
  180. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Ceeqkj0k.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BighOCzm.js} +1 -1
  181. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9Il_wz8U.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CWwn0K2j.js} +1 -1
  182. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CXivI4Ym.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Cntsv2EN.js} +1 -1
  183. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B7I1ZxCx.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D13hiNGV.js} +1 -1
  184. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-1pTajrpX.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-dZ3D8RVL.js} +1 -1
  185. package/build/assets/{vendor~launch-DXL78kBf.js → vendor~launch-D65Vw0VZ.js} +1 -1
  186. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-CfAc3nMS.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-BJPgfJoU.js} +1 -1
  187. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-DkwcKRtv.js → vendor~root-layout~home~conversation-panel~conversation-Cg0nXqVs.js} +1 -1
  188. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DSqEbr0N.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~bok0tgtf-Dr8Ly0at.js} +1 -1
  189. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BC9XTECT.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~bok0tgtf-DveauQfg.js} +1 -1
  190. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-D0XUSHNN.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~jpfhx3ls-BkicN-14.js} +2 -2
  191. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~jxrvuot9-Cwz6a1DC.js +48 -0
  192. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CcFtthyg.js → vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-C37jLHRk.js} +1 -1
  193. package/build/assets/{vendor~root-layout~home~mcp~automations-list-BnIlGhjl.js → vendor~root-layout~home~mcp~automations-list-BTTZ58Mb.js} +1 -1
  194. package/build/assets/{vendor~root-layout~home~mcp~automations-list-cNHi83v_.js → vendor~root-layout~home~mcp~automations-list-JQ-neDIa.js} +1 -1
  195. package/build/assets/{vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~o7tv66sg-BGWUbqUq.js → vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~o7tv66sg-CbuXadI-.js} +1 -1
  196. package/build/assets/{vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~o7tv66sg-BuCSnjsW.js → vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~o7tv66sg-UYEKKX0Y.js} +2 -2
  197. package/build/assets/{verification-settings-CIqtxWat.js → verification-settings-Rabe5TpK.js} +1 -1
  198. package/build/assets/{vscode-tab-DEt72yJX.js → vscode-tab-zLD5Z-PP.js} +1 -1
  199. package/build/assets/{waiting-for-runtime-message-DSjJfeoj.js → waiting-for-runtime-message-B1Dzhtj5.js} +1 -1
  200. package/build/assets/x-8AbJWTbX.js +1 -0
  201. package/build/assets/{x-mark-DsJ9tDD0.js → x-mark-CmcVOTk2.js} +1 -1
  202. package/build/index.html +4 -4
  203. package/build/locales/ar/openhands.json +1 -0
  204. package/build/locales/ca/openhands.json +1 -0
  205. package/build/locales/de/openhands.json +1 -0
  206. package/build/locales/en/openhands.json +1 -0
  207. package/build/locales/es/openhands.json +1 -0
  208. package/build/locales/fr/openhands.json +1 -0
  209. package/build/locales/it/openhands.json +1 -0
  210. package/build/locales/ja/openhands.json +1 -0
  211. package/build/locales/ko-KR/openhands.json +1 -0
  212. package/build/locales/no/openhands.json +1 -0
  213. package/build/locales/pt/openhands.json +1 -0
  214. package/build/locales/tr/openhands.json +1 -0
  215. package/build/locales/uk/openhands.json +1 -0
  216. package/build/locales/zh-CN/openhands.json +1 -0
  217. package/build/locales/zh-TW/openhands.json +1 -0
  218. package/dist/api/agent-server-adapter.cjs +2 -2
  219. package/dist/api/agent-server-adapter.cjs.map +1 -1
  220. package/dist/api/agent-server-adapter.js +6 -3
  221. package/dist/api/agent-server-adapter.js.map +1 -1
  222. package/dist/api/cloud/proxy.cjs +1 -1
  223. package/dist/api/cloud/proxy.cjs.map +1 -1
  224. package/dist/api/cloud/proxy.d.ts +18 -6
  225. package/dist/api/cloud/proxy.js +1 -1
  226. package/dist/api/cloud/proxy.js.map +1 -1
  227. package/dist/api/config-service/config-service.api.cjs +1 -1
  228. package/dist/api/config-service/config-service.api.cjs.map +1 -1
  229. package/dist/api/config-service/config-service.api.d.ts +12 -0
  230. package/dist/api/config-service/config-service.api.js +55 -18
  231. package/dist/api/config-service/config-service.api.js.map +1 -1
  232. package/dist/api/conversation-metadata-store.cjs.map +1 -1
  233. package/dist/api/conversation-metadata-store.d.ts +8 -0
  234. package/dist/api/conversation-metadata-store.js.map +1 -1
  235. package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +9 -0
  236. package/dist/components/features/chat/switch-profile-button.cjs +1 -1
  237. package/dist/components/features/chat/switch-profile-button.cjs.map +1 -1
  238. package/dist/components/features/chat/switch-profile-button.js +5 -5
  239. package/dist/components/features/chat/switch-profile-button.js.map +1 -1
  240. package/dist/components/features/conversation-panel/skills-modal.cjs +1 -1
  241. package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
  242. package/dist/components/features/conversation-panel/skills-modal.js +34 -37
  243. package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
  244. package/dist/components/features/settings/llm-profiles/profile-actions-menu.cjs +1 -1
  245. package/dist/components/features/settings/llm-profiles/profile-actions-menu.js +1 -0
  246. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  247. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  248. package/dist/components/features/skills/extensions-navigation.d.ts +0 -8
  249. package/dist/components/features/skills/extensions-navigation.js +34 -51
  250. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  251. package/dist/constants/acp-providers.cjs +1 -1
  252. package/dist/constants/acp-providers.js +1 -1
  253. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  254. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  255. package/dist/hooks/mutation/use-create-conversation.js +26 -14
  256. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  257. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs +1 -1
  258. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs.map +1 -1
  259. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js +26 -15
  260. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js.map +1 -1
  261. package/dist/hooks/query/use-verified-models.cjs +1 -1
  262. package/dist/hooks/query/use-verified-models.cjs.map +1 -1
  263. package/dist/hooks/query/use-verified-models.js +7 -6
  264. package/dist/hooks/query/use-verified-models.js.map +1 -1
  265. package/dist/i18n/declaration.cjs +1 -1
  266. package/dist/i18n/declaration.cjs.map +1 -1
  267. package/dist/i18n/declaration.d.ts +1 -0
  268. package/dist/i18n/declaration.js +1 -1
  269. package/dist/i18n/declaration.js.map +1 -1
  270. package/dist/i18n/translation.cjs +1 -1
  271. package/dist/i18n/translation.cjs.map +1 -1
  272. package/dist/i18n/translation.js +17 -0
  273. package/dist/i18n/translation.js.map +1 -1
  274. package/dist/index.cjs +1 -1
  275. package/dist/index.js +10 -10
  276. package/dist/lib/index.cjs +1 -1
  277. package/dist/lib/index.js +1 -1
  278. package/dist/locales/ar/openhands.json +1 -0
  279. package/dist/locales/ca/openhands.json +1 -0
  280. package/dist/locales/de/openhands.json +1 -0
  281. package/dist/locales/en/openhands.json +1 -0
  282. package/dist/locales/es/openhands.json +1 -0
  283. package/dist/locales/fr/openhands.json +1 -0
  284. package/dist/locales/it/openhands.json +1 -0
  285. package/dist/locales/ja/openhands.json +1 -0
  286. package/dist/locales/ko-KR/openhands.json +1 -0
  287. package/dist/locales/no/openhands.json +1 -0
  288. package/dist/locales/pt/openhands.json +1 -0
  289. package/dist/locales/tr/openhands.json +1 -0
  290. package/dist/locales/uk/openhands.json +1 -0
  291. package/dist/locales/zh-CN/openhands.json +1 -0
  292. package/dist/locales/zh-TW/openhands.json +1 -0
  293. package/dist/package.cjs +1 -1
  294. package/dist/package.cjs.map +1 -1
  295. package/dist/package.js +1 -1
  296. package/dist/package.js.map +1 -1
  297. package/dist/routes/mcp.cjs +1 -1
  298. package/dist/routes/mcp.cjs.map +1 -1
  299. package/dist/routes/mcp.d.ts +0 -1
  300. package/dist/routes/mcp.js +0 -1
  301. package/dist/routes/mcp.js.map +1 -1
  302. package/package.json +1 -1
  303. package/scripts/dev-safe.mjs +18 -2
  304. package/build/assets/acp-route-guard-A__sWgbc.js +0 -1
  305. package/build/assets/active-backend-context-I2w666XY.js +0 -1
  306. package/build/assets/add-backend-modal-BDBDBXsJ.js +0 -1
  307. package/build/assets/agent-server-client-options-9agOSarV.js +0 -1
  308. package/build/assets/agent-server-compatibility-B7QStIcH.js +0 -1
  309. package/build/assets/agent-server-conversation-service.api-Cagoqq1V.js +0 -5
  310. package/build/assets/api-key-entry-screen-ByXA4hXH.js +0 -1
  311. package/build/assets/automation-detail-Dbmgt974.js +0 -1
  312. package/build/assets/backend-form-modal-CeB983Sj.js +0 -1
  313. package/build/assets/browser-store-JRrcGdlk.js +0 -1
  314. package/build/assets/chat-send-button-5qz0zj6R.js +0 -1
  315. package/build/assets/check-CZhEL6rP.js +0 -1
  316. package/build/assets/conversation-BrjF2-Ky.js +0 -1
  317. package/build/assets/conversation-HgR_TTPE.js +0 -19
  318. package/build/assets/conversation-panel-BlRcO5AC.js +0 -1
  319. package/build/assets/conversation-service.api-B_Pdmwsa.js +0 -1
  320. package/build/assets/conversation-state-store-D-w0uurj.js +0 -1
  321. package/build/assets/conversation-websocket-context-G95yfL81.js +0 -3
  322. package/build/assets/dist-Bl-1K5Tv.js +0 -1
  323. package/build/assets/edit-automation-modal-CNZgSSiH.js +0 -1
  324. package/build/assets/extensions-navigation-yFLAU06N.js +0 -1
  325. package/build/assets/files-tab-CMredyYX.js +0 -1
  326. package/build/assets/files-tab-store-DLU28g8C.js +0 -1
  327. package/build/assets/git-control-bar-branch-button-D8blTNXh.js +0 -27
  328. package/build/assets/home-TrU0fLgG.js +0 -1
  329. package/build/assets/install-server-modal-D8Q0xZcN.js +0 -1
  330. package/build/assets/llm-client-BqyLKgUN.js +0 -1
  331. package/build/assets/llm-settings-C4R4HMUO.js +0 -1
  332. package/build/assets/llm-settings-Dq3w2cob.js +0 -1
  333. package/build/assets/manage-backends-modal-Ceo_SOcf.js +0 -1
  334. package/build/assets/manifest-8c2efa8a.js +0 -1
  335. package/build/assets/mcp-EvrLVTla.js +0 -9
  336. package/build/assets/model-selector-DoL0CL0_.js +0 -1
  337. package/build/assets/onboarding-DLr9jbKH.js +0 -1
  338. package/build/assets/organization-service.api-Dn74hBTH.js +0 -1
  339. package/build/assets/path-utils-BjxzIGLp.js +0 -1
  340. package/build/assets/plus-DT-M0FA1.js +0 -1
  341. package/build/assets/profiles-client-BrqNmaDV.js +0 -1
  342. package/build/assets/proxy-sRh0WKI7.js +0 -1
  343. package/build/assets/root-BietmyRa.js +0 -2
  344. package/build/assets/root-layout-BgPi-t57.js +0 -2
  345. package/build/assets/secrets-service-DVtlLWY8.js +0 -1
  346. package/build/assets/server-client-DYv_GHPl.js +0 -1
  347. package/build/assets/settings-CXvJUx_j.js +0 -1
  348. package/build/assets/settings-service.api-DxIEtvx6.js +0 -1
  349. package/build/assets/shared-conversation-x41nZQi7.js +0 -1
  350. package/build/assets/telemetry-3piyXm5H.js +0 -2
  351. package/build/assets/use-agent-settings-schema-Yxf7KGyG.js +0 -1
  352. package/build/assets/use-config-DwfigQ_Y.js +0 -1
  353. package/build/assets/use-create-conversation-BEzddjXn.js +0 -1
  354. package/build/assets/use-get-secrets-BlO1BfUo.js +0 -1
  355. package/build/assets/use-is-authed-hHndEep7.js +0 -1
  356. package/build/assets/use-llm-profiles-E-jjZMZw.js +0 -1
  357. package/build/assets/use-runtime-is-ready-DBWzvAmc.js +0 -1
  358. package/build/assets/use-settings-BPTbE7lg.js +0 -1
  359. package/build/assets/use-skills-QhoaIYGF.js +0 -1
  360. package/build/assets/use-unified-vscode-url-DFtNIC1Q.js +0 -1
  361. package/build/assets/use-user-conversation-BRAseenw.js +0 -1
  362. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-D8soyAAx.js +0 -48
  363. package/build/assets/vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~jaomi49z-Cw89stA6.js +0 -1
  364. package/build/assets/x-JOBEVLW0.js +0 -1
  365. package/dist/components/features/conversation-panel/skills-runtime-waiting-state.cjs +0 -2
  366. package/dist/components/features/conversation-panel/skills-runtime-waiting-state.cjs.map +0 -1
  367. package/dist/components/features/conversation-panel/skills-runtime-waiting-state.d.ts +0 -1
  368. package/dist/components/features/conversation-panel/skills-runtime-waiting-state.js +0 -21
  369. package/dist/components/features/conversation-panel/skills-runtime-waiting-state.js.map +0 -1
  370. package/dist/utils/acp-route-guard.cjs +0 -1
  371. package/dist/utils/acp-route-guard.d.ts +0 -26
  372. package/dist/utils/acp-route-guard.js +0 -4
  373. /package/build/assets/{agent-server-ui-style-scope-BwIZYdC1.js → agent-server-ui-style-scope-Bhc5vpWO.js} +0 -0
  374. /package/build/assets/{automation-DJ_3GeXD.js → automation-LZB0MjdV.js} +0 -0
  375. /package/build/assets/{common-DqjLSBOt.js → common-Cfviy7yT.js} +0 -0
  376. /package/build/assets/{context-CEQZwATj.js → context-BBqptpXX.js} +0 -0
  377. /package/build/assets/{conversation-local-storage-YmOVXxxW.js → conversation-local-storage-D5Tre_GA.js} +0 -0
  378. /package/build/assets/{createLucideIcon-Ddu8jDOQ.js → createLucideIcon-C9OEnwvX.js} +0 -0
  379. /package/build/assets/{environment-switch-store-CiurvTtK.js → environment-switch-store-BpKxp6Xq.js} +0 -0
  380. /package/build/assets/{git-status-mapper-DnL9OC8_.js → git-status-mapper-N4-7eaeC.js} +0 -0
  381. /package/build/assets/{handle-capture-consent-3XrjZ8wi.js → handle-capture-consent-OitMkDHc.js} +0 -0
  382. /package/build/assets/{health-store-B5f0S2FY.js → health-store-d-d2ssv4.js} +0 -0
  383. /package/build/assets/{iconBase-BVhFI-0E.js → iconBase-B_5IRYeZ.js} +0 -0
  384. /package/build/assets/{map-provider-C3Z5Dx2J.js → map-provider-BHow6ugd.js} +0 -0
  385. /package/build/assets/{middleware-CfatjPYZ.js → middleware-B5rcobhi.js} +0 -0
  386. /package/build/assets/{objectWithoutPropertiesLoose-DSQKyRhw.js → objectWithoutPropertiesLoose-B-IA9dU9.js} +0 -0
  387. /package/build/assets/{query-keys-tAsQcc_9.js → query-keys-CQaji0wJ.js} +0 -0
  388. /package/build/assets/{react-Dy05vyj5.js → react-CuAHzoGi.js} +0 -0
  389. /package/build/assets/{retrieve-axios-error-message-BY-yIkIq.js → retrieve-axios-error-message-DbnSBc_1.js} +0 -0
  390. /package/build/assets/{sdk-settings-field-metadata-C6KMD-jZ.js → sdk-settings-field-metadata-CtO73dY6.js} +0 -0
  391. /package/build/assets/{settings-DGY6n4J2.js → settings-KgLvVrSm.js} +0 -0
  392. /package/build/assets/{settings-like-page-layout-classes-DNg2vKSM.js → settings-like-page-layout-classes-GknosJgv.js} +0 -0
  393. /package/build/assets/{use-breakpoint-DpxHDmuH.js → use-breakpoint-2sN462wJ.js} +0 -0
  394. /package/build/assets/{use-click-outside-element-DhxCUyWl.js → use-click-outside-element-_vianyPb.js} +0 -0
  395. /package/build/assets/{v4-khGvL7i2.js → v4-BMWDcIWQ.js} +0 -0
  396. /package/build/assets/{vendor~browser-BDNLFng6.js → vendor~browser-C3GKF4mj.js} +0 -0
  397. /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-D_hRW_zc.js → vendor~conversation-panel~conversation~alert-banner-DMcFTqbt.js} +0 -0
  398. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~j8sdb9mk-OFpe9fX_.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~j8sdb9mk-oCzr0-9g.js} +0 -0
  399. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~lpdshwee-BPuuVEqr.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~lpdshwee-CTmh4bwd.js} +0 -0
  400. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~skills-settings~m~o9nrx3fm-D44TR8hL.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~skills-settings~m~o9nrx3fm-87v-LliW.js} +0 -0
  401. /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Dr3Ow7Ms.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTosGXG7.js} +0 -0
  402. /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-B1TKKuuH.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ntycl9e1-DspdqGPW.js} +0 -0
  403. /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~e9ykmtgh-Fa-nXZ4M.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~e9ykmtgh-DMH1jSwL.js} +0 -0
  404. /package/build/assets/{vendor~terminal-0ObOedYm.js → vendor~terminal-CnKZILnC.js} +0 -0
  405. /package/build/assets/{vscode-url-helper-BMq8JBhB.js → vscode-url-helper-CwQPl6QN.js} +0 -0
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-Bl-1K5Tv.js","assets/vendor~conversation-panel~conversation~index-BZ5C6Xpz.js","assets/rolldown-runtime-BFRubm34.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-B1TKKuuH.js","assets/react-CM_dJw1Z.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./preload-helper-CT1Z6Pdu.js";import{t as r}from"./react-dom-hVBnwgwZ.js";import{o as i}from"./declaration-DaUdB2Wg.js";import{A as a,D as o,N as s,O as c,P as l,_ as u,a as d,b as f,g as p,h as m,n as h,o as g,p as _,r as v,s as y,t as b,w as x}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BC9XTECT.js";import{C as S,D as C,O as w,X as T,Y as E,d as D,g as O,i as k,l as A,m as j,st as M,t as ee,ut as te,x as ne}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DSqEbr0N.js";function re(e,t){if(e!=null){if(o(e)){e(t);return}try{e.current=t}catch{throw Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function ie(...e){return t=>{e.forEach(e=>re(e,t))}}var N=e(t(),1),P=e(r(),1),F=N.createContext(null);function I(e){let{children:t}=e,n=(0,N.useContext)(F),[r,i]=(0,N.useState)(0),a=(0,N.useMemo)(()=>({parent:n,modalCount:r,addModal(){i(e=>e+1),n&&n.addModal()},removeModal(){i(e=>e-1),n&&n.removeModal()}}),[n,r]);return N.createElement(F.Provider,{value:a},t)}function L(){let e=(0,N.useContext)(F);return{modalProviderProps:{"aria-hidden":e&&e.modalCount>0?!0:void 0}}}function R(e){let{modalProviderProps:t}=L();return N.createElement(`div`,{"data-overlay-container":!0,...e,...t})}function z(e){return N.createElement(I,null,N.createElement(R,e))}function B(e){let t=te(),{portalContainer:n=t?null:document.body,...r}=e,{getContainer:i}=k();if(!e.portalContainer&&i&&(n=i()),N.useEffect(()=>{if(n?.closest(`[data-overlay-container]`))throw Error(`An OverlayContainer must not be inside another container. Please change the portalContainer prop.`)},[n]),!n)return null;let a=N.createElement(z,r);return P.createPortal(a,n)}var V=1500,H=500,U={},W=0,G=!1,K=null,q=null;function ae(e={}){let{delay:t=V,closeDelay:n=H}=e,{isOpen:r,open:i,close:a}=ee(e),o=(0,N.useMemo)(()=>`${++W}`,[]),s=(0,N.useRef)(null),c=(0,N.useRef)(a),l=()=>{U[o]=f},u=()=>{for(let e in U)e!==o&&(U[e](!0),delete U[e])},d=()=>{s.current&&clearTimeout(s.current),s.current=null,u(),l(),G=!0,i(),K&&=(clearTimeout(K),null),q&&=(clearTimeout(q),null)},f=e=>{e||n<=0?(s.current&&clearTimeout(s.current),s.current=null,c.current()):s.current||=setTimeout(()=>{s.current=null,c.current()},n),K&&=(clearTimeout(K),null),G&&(q&&clearTimeout(q),q=setTimeout(()=>{delete U[o],q=null,G=!1},Math.max(H,n)))},p=()=>{u(),l(),!r&&!G?(K&&clearTimeout(K),K=setTimeout(()=>{K=null,G=!0,d()},t)):r||d()};return(0,N.useEffect)(()=>{c.current=a},[a]),(0,N.useEffect)(()=>()=>{s.current&&clearTimeout(s.current),U[o]&&delete U[o]},[o]),{isOpen:r,open:e=>{!e&&t>0&&!s.current?p():d()},close:f}}function oe(e,t){let n=E(e,{labelable:!0}),{hoverProps:r}=A({onHoverStart:()=>t?.open(!0),onHoverEnd:()=>t?.close()});return{tooltipProps:T(n,r,{role:`tooltip`})}}function se(e,t,n){let{isDisabled:r,trigger:i,shouldCloseOnPress:a=!0}=e,o=M(),s=(0,N.useRef)(!1),c=(0,N.useRef)(!1),l=()=>{(s.current||c.current)&&t.open(c.current)},u=e=>{!s.current&&!c.current&&t.close(e)};(0,N.useEffect)(()=>{let e=e=>{n&&n.current&&e.key===`Escape`&&(e.stopPropagation(),t.close(!0))};if(t.isOpen)return document.addEventListener(`keydown`,e,!0),()=>{document.removeEventListener(`keydown`,e,!0)}},[n,t]);let d=()=>{i!==`focus`&&(j()===`pointer`?s.current=!0:s.current=!1,l())},f=()=>{i!==`focus`&&(c.current=!1,s.current=!1,u())},p=()=>{a&&(c.current=!1,s.current=!1,u(!0))},m=()=>{O()&&(c.current=!0,l())},h=()=>{c.current=!1,s.current=!1,u(!0)},{hoverProps:g}=A({isDisabled:r,onHoverStart:d,onHoverEnd:f}),{focusableProps:_}=D({isDisabled:r,onFocus:m,onBlur:h},n);return{triggerProps:{"aria-describedby":t.isOpen?o:void 0,...T(_,g,{onPointerDown:p,onKeyDown:p}),tabIndex:void 0},tooltipProps:{id:o}}}function J(e){let t=f(),[n,r]=u(e,_.variantKeys),{ref:i,as:o,isOpen:s,content:d,children:p,defaultOpen:y,onOpenChange:S,isDisabled:C,trigger:w,shouldFlip:T=!0,containerPadding:E=12,placement:D=`top`,delay:O=0,closeDelay:k=500,showArrow:A=!1,offset:j=7,crossOffset:M=0,isDismissable:ee,shouldCloseOnBlur:te=!0,portalContainer:re,isKeyboardDismissDisabled:P=!1,updatePositionDeps:F=[],shouldCloseOnInteractOutside:I,className:L,onClose:R,motionProps:z,classNames:B,...V}=n,H=o||`div`,U=e?.disableAnimation??t?.disableAnimation??!1,W=ae({delay:O,closeDelay:k,isDisabled:C,defaultOpen:y,isOpen:s,onOpenChange:e=>{S?.(e),e||R?.()}}),G=(0,N.useRef)(null),K=(0,N.useRef)(null),q=(0,N.useId)(),J=W.isOpen&&!C;(0,N.useImperativeHandle)(i,()=>l(K));let{triggerProps:Y,tooltipProps:ce}=se({isDisabled:C,trigger:w},W,G),{tooltipProps:X}=oe({isOpen:J,...c(n,ce)},W),{overlayProps:Z,placement:Q,updatePosition:le}=ne({isOpen:J,targetRef:G,placement:g(D),overlayRef:K,offset:A?j+3:j,crossOffset:M,shouldFlip:T,containerPadding:E});h(()=>{F.length&&le()},F);let{overlayProps:ue}=b({isOpen:J,onClose:W.close,isDismissable:ee,shouldCloseOnBlur:te,isKeyboardDismissDisabled:P,shouldCloseOnInteractOutside:I},K),$=(0,N.useMemo)(()=>_({...r,disableAnimation:U,radius:e?.radius??`md`,size:e?.size??`md`,shadow:e?.shadow??`sm`}),[a(r),U,e?.radius,e?.size,e?.shadow]),de=(0,N.useCallback)((e={},t=null)=>({...c(Y,e),ref:ie(t,G),"aria-describedby":J?q:void 0}),[Y,J,q,W]),fe=(0,N.useCallback)(()=>({ref:K,"data-slot":`base`,"data-open":x(J),"data-arrow":x(A),"data-disabled":x(C),"data-placement":v(Q||`top`,D),...c(X,ue,V),style:c(Z.style,V.style,n.style),className:$.base({class:B?.base}),id:q}),[$,J,A,C,Q,D,X,ue,V,Z,n,q]);return{Component:H,content:d,children:p,isOpen:J,triggerRef:G,showArrow:A,portalContainer:re,placement:D,disableAnimation:U,isDisabled:C,motionProps:z,getTooltipContentProps:(0,N.useCallback)(()=>({"data-slot":`content`,"data-open":x(J),"data-arrow":x(A),"data-disabled":x(C),"data-placement":v(Q||`top`,D),className:$.content({class:m(B?.content,L)})}),[$,J,A,C,Q,D,B]),getTriggerProps:de,getTooltipProps:fe}}var Y=i(),ce=()=>n(()=>import(`./dist-Bl-1K5Tv.js`).then(e=>e.default),__vite__mapDeps([0,1,2,3,4])),X=p((e,t)=>{let{Component:n,children:r,content:i,isOpen:a,portalContainer:o,placement:l,disableAnimation:u,motionProps:f,getTriggerProps:p,getTooltipProps:m,getTooltipContentProps:h}=J({...e,ref:t}),g;try{if(N.Children.count(r)!==1)throw Error();if(!(0,N.isValidElement)(r))g=(0,Y.jsx)(`p`,{...p(),children:r});else{let e=r,t=e.props.ref??e.ref;g=(0,N.cloneElement)(e,p(e.props,t))}}catch{g=(0,Y.jsx)(`span`,{}),s(`Tooltip must have only one child node. Please, check your code.`)}let{ref:_,id:v,style:b,...x}=m(),T=(0,Y.jsx)(`div`,{ref:_,id:v,style:b,children:(0,Y.jsx)(S.div,{animate:`enter`,exit:`exit`,initial:`exit`,variants:y.scaleSpring,...c(f,x),style:{...d(l)},children:(0,Y.jsx)(n,{...h(),children:i})},`${v}-tooltip-inner`)},`${v}-tooltip-content`);return(0,Y.jsxs)(Y.Fragment,{children:[g,u?a&&(0,Y.jsx)(B,{portalContainer:o,children:(0,Y.jsx)(`div`,{ref:_,id:v,style:b,...x,children:(0,Y.jsx)(n,{...h(),children:i})})}):(0,Y.jsx)(C,{features:ce,children:(0,Y.jsx)(w,{children:a&&(0,Y.jsx)(B,{portalContainer:o,children:T})})})]})});X.displayName=`HeroUI.Tooltip`;var Z=X;export{Z as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-CBUfAk0Z.js","assets/vendor~conversation-panel~conversation~index-Be58Romv.js","assets/rolldown-runtime-BFRubm34.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ntycl9e1-DspdqGPW.js","assets/react-CM_dJw1Z.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./preload-helper-CT1Z6Pdu.js";import{t as r}from"./react-dom-hVBnwgwZ.js";import{o as i}from"./declaration-IA661TBv.js";import{A as a,D as o,N as s,O as c,P as l,_ as u,a as d,b as f,g as p,h as m,n as h,o as g,p as _,r as v,s as y,t as b,w as x}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~bok0tgtf-DveauQfg.js";import{C as S,D as C,O as w,X as T,Y as E,d as D,g as O,i as k,l as A,m as j,st as M,t as ee,ut as te,x as ne}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~bok0tgtf-Dr8Ly0at.js";function re(e,t){if(e!=null){if(o(e)){e(t);return}try{e.current=t}catch{throw Error(`Cannot assign value '${t}' to ref '${e}'`)}}}function ie(...e){return t=>{e.forEach(e=>re(e,t))}}var N=e(t(),1),P=e(r(),1),F=N.createContext(null);function I(e){let{children:t}=e,n=(0,N.useContext)(F),[r,i]=(0,N.useState)(0),a=(0,N.useMemo)(()=>({parent:n,modalCount:r,addModal(){i(e=>e+1),n&&n.addModal()},removeModal(){i(e=>e-1),n&&n.removeModal()}}),[n,r]);return N.createElement(F.Provider,{value:a},t)}function L(){let e=(0,N.useContext)(F);return{modalProviderProps:{"aria-hidden":e&&e.modalCount>0?!0:void 0}}}function R(e){let{modalProviderProps:t}=L();return N.createElement(`div`,{"data-overlay-container":!0,...e,...t})}function z(e){return N.createElement(I,null,N.createElement(R,e))}function B(e){let t=te(),{portalContainer:n=t?null:document.body,...r}=e,{getContainer:i}=k();if(!e.portalContainer&&i&&(n=i()),N.useEffect(()=>{if(n?.closest(`[data-overlay-container]`))throw Error(`An OverlayContainer must not be inside another container. Please change the portalContainer prop.`)},[n]),!n)return null;let a=N.createElement(z,r);return P.createPortal(a,n)}var V=1500,H=500,U={},W=0,G=!1,K=null,q=null;function ae(e={}){let{delay:t=V,closeDelay:n=H}=e,{isOpen:r,open:i,close:a}=ee(e),o=(0,N.useMemo)(()=>`${++W}`,[]),s=(0,N.useRef)(null),c=(0,N.useRef)(a),l=()=>{U[o]=f},u=()=>{for(let e in U)e!==o&&(U[e](!0),delete U[e])},d=()=>{s.current&&clearTimeout(s.current),s.current=null,u(),l(),G=!0,i(),K&&=(clearTimeout(K),null),q&&=(clearTimeout(q),null)},f=e=>{e||n<=0?(s.current&&clearTimeout(s.current),s.current=null,c.current()):s.current||=setTimeout(()=>{s.current=null,c.current()},n),K&&=(clearTimeout(K),null),G&&(q&&clearTimeout(q),q=setTimeout(()=>{delete U[o],q=null,G=!1},Math.max(H,n)))},p=()=>{u(),l(),!r&&!G?(K&&clearTimeout(K),K=setTimeout(()=>{K=null,G=!0,d()},t)):r||d()};return(0,N.useEffect)(()=>{c.current=a},[a]),(0,N.useEffect)(()=>()=>{s.current&&clearTimeout(s.current),U[o]&&delete U[o]},[o]),{isOpen:r,open:e=>{!e&&t>0&&!s.current?p():d()},close:f}}function oe(e,t){let n=E(e,{labelable:!0}),{hoverProps:r}=A({onHoverStart:()=>t?.open(!0),onHoverEnd:()=>t?.close()});return{tooltipProps:T(n,r,{role:`tooltip`})}}function se(e,t,n){let{isDisabled:r,trigger:i,shouldCloseOnPress:a=!0}=e,o=M(),s=(0,N.useRef)(!1),c=(0,N.useRef)(!1),l=()=>{(s.current||c.current)&&t.open(c.current)},u=e=>{!s.current&&!c.current&&t.close(e)};(0,N.useEffect)(()=>{let e=e=>{n&&n.current&&e.key===`Escape`&&(e.stopPropagation(),t.close(!0))};if(t.isOpen)return document.addEventListener(`keydown`,e,!0),()=>{document.removeEventListener(`keydown`,e,!0)}},[n,t]);let d=()=>{i!==`focus`&&(j()===`pointer`?s.current=!0:s.current=!1,l())},f=()=>{i!==`focus`&&(c.current=!1,s.current=!1,u())},p=()=>{a&&(c.current=!1,s.current=!1,u(!0))},m=()=>{O()&&(c.current=!0,l())},h=()=>{c.current=!1,s.current=!1,u(!0)},{hoverProps:g}=A({isDisabled:r,onHoverStart:d,onHoverEnd:f}),{focusableProps:_}=D({isDisabled:r,onFocus:m,onBlur:h},n);return{triggerProps:{"aria-describedby":t.isOpen?o:void 0,...T(_,g,{onPointerDown:p,onKeyDown:p}),tabIndex:void 0},tooltipProps:{id:o}}}function J(e){let t=f(),[n,r]=u(e,_.variantKeys),{ref:i,as:o,isOpen:s,content:d,children:p,defaultOpen:y,onOpenChange:S,isDisabled:C,trigger:w,shouldFlip:T=!0,containerPadding:E=12,placement:D=`top`,delay:O=0,closeDelay:k=500,showArrow:A=!1,offset:j=7,crossOffset:M=0,isDismissable:ee,shouldCloseOnBlur:te=!0,portalContainer:re,isKeyboardDismissDisabled:P=!1,updatePositionDeps:F=[],shouldCloseOnInteractOutside:I,className:L,onClose:R,motionProps:z,classNames:B,...V}=n,H=o||`div`,U=e?.disableAnimation??t?.disableAnimation??!1,W=ae({delay:O,closeDelay:k,isDisabled:C,defaultOpen:y,isOpen:s,onOpenChange:e=>{S?.(e),e||R?.()}}),G=(0,N.useRef)(null),K=(0,N.useRef)(null),q=(0,N.useId)(),J=W.isOpen&&!C;(0,N.useImperativeHandle)(i,()=>l(K));let{triggerProps:Y,tooltipProps:ce}=se({isDisabled:C,trigger:w},W,G),{tooltipProps:X}=oe({isOpen:J,...c(n,ce)},W),{overlayProps:Z,placement:Q,updatePosition:le}=ne({isOpen:J,targetRef:G,placement:g(D),overlayRef:K,offset:A?j+3:j,crossOffset:M,shouldFlip:T,containerPadding:E});h(()=>{F.length&&le()},F);let{overlayProps:ue}=b({isOpen:J,onClose:W.close,isDismissable:ee,shouldCloseOnBlur:te,isKeyboardDismissDisabled:P,shouldCloseOnInteractOutside:I},K),$=(0,N.useMemo)(()=>_({...r,disableAnimation:U,radius:e?.radius??`md`,size:e?.size??`md`,shadow:e?.shadow??`sm`}),[a(r),U,e?.radius,e?.size,e?.shadow]),de=(0,N.useCallback)((e={},t=null)=>({...c(Y,e),ref:ie(t,G),"aria-describedby":J?q:void 0}),[Y,J,q,W]),fe=(0,N.useCallback)(()=>({ref:K,"data-slot":`base`,"data-open":x(J),"data-arrow":x(A),"data-disabled":x(C),"data-placement":v(Q||`top`,D),...c(X,ue,V),style:c(Z.style,V.style,n.style),className:$.base({class:B?.base}),id:q}),[$,J,A,C,Q,D,X,ue,V,Z,n,q]);return{Component:H,content:d,children:p,isOpen:J,triggerRef:G,showArrow:A,portalContainer:re,placement:D,disableAnimation:U,isDisabled:C,motionProps:z,getTooltipContentProps:(0,N.useCallback)(()=>({"data-slot":`content`,"data-open":x(J),"data-arrow":x(A),"data-disabled":x(C),"data-placement":v(Q||`top`,D),className:$.content({class:m(B?.content,L)})}),[$,J,A,C,Q,D,B]),getTriggerProps:de,getTooltipProps:fe}}var Y=i(),ce=()=>n(()=>import(`./dist-CBUfAk0Z.js`).then(e=>e.default),__vite__mapDeps([0,1,2,3,4])),X=p((e,t)=>{let{Component:n,children:r,content:i,isOpen:a,portalContainer:o,placement:l,disableAnimation:u,motionProps:f,getTriggerProps:p,getTooltipProps:m,getTooltipContentProps:h}=J({...e,ref:t}),g;try{if(N.Children.count(r)!==1)throw Error();if(!(0,N.isValidElement)(r))g=(0,Y.jsx)(`p`,{...p(),children:r});else{let e=r,t=e.props.ref??e.ref;g=(0,N.cloneElement)(e,p(e.props,t))}}catch{g=(0,Y.jsx)(`span`,{}),s(`Tooltip must have only one child node. Please, check your code.`)}let{ref:_,id:v,style:b,...x}=m(),T=(0,Y.jsx)(`div`,{ref:_,id:v,style:b,children:(0,Y.jsx)(S.div,{animate:`enter`,exit:`exit`,initial:`exit`,variants:y.scaleSpring,...c(f,x),style:{...d(l)},children:(0,Y.jsx)(n,{...h(),children:i})},`${v}-tooltip-inner`)},`${v}-tooltip-content`);return(0,Y.jsxs)(Y.Fragment,{children:[g,u?a&&(0,Y.jsx)(B,{portalContainer:o,children:(0,Y.jsx)(`div`,{ref:_,id:v,style:b,...x,children:(0,Y.jsx)(n,{...h(),children:i})})}):(0,Y.jsx)(C,{features:ce,children:(0,Y.jsx)(w,{children:a&&(0,Y.jsx)(B,{portalContainer:o,children:T})})})]})});X.displayName=`HeroUI.Tooltip`;var Z=X;export{Z as t};
@@ -0,0 +1,48 @@
1
+ import{t as e}from"./rolldown-runtime-BFRubm34.js";import{n as t,r as n}from"./settings-client-BUlG0Gzq.js";import{n as r,r as i}from"./mcp-client-xEdbDxOL.js";var a=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchEvents(e={}){return(await this.client.get(`/api/bash/bash_events/search`,{params:e})).data}async getEvent(e){return(await this.client.get(`/api/bash/bash_events/${e}`)).data}async getEvents(e){return Promise.all(e.map(async e=>{try{return await this.getEvent(e)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async startCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/start_bash_command`,r)).data}async executeCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:((r.timeout||30)+10)*1e3})).data}async clearEvents(){return(await this.client.delete(`/api/bash/bash_events`)).data}close(){this.client.close()}normalizeRequest(e,t,n){return typeof e==`string`?{command:e,...t?{cwd:t}:{},...n===void 0?{}:{timeout:Math.floor(n)}}:{...e,...e.timeout===void 0?{}:{timeout:Math.floor(e.timeout)}}}},o=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchSubdirectories(e,t={}){return(await this.client.get(`/api/file/search_subdirs`,{params:{path:e,page_id:t.pageId,limit:t.limit}})).data}async getHome(){return(await this.client.get(`/api/file/home`)).data}async downloadFile(e){return(await this.client.get(`/api/file/download`,{params:{path:e},responseType:`arrayBuffer`})).data}async downloadTextFile(e){return new TextDecoder().decode(await this.downloadFile(e))}async uploadFile(e,t,n){let r=new FormData,i=typeof File>`u`?void 0:File;return i&&e instanceof i?r.append(`file`,e,n||e.name):e instanceof Blob?r.append(`file`,e,n||`blob-file`):r.append(`file`,new Blob([e],{type:`text/plain`}),n||`text-file.txt`),(await this.client.post(`/api/file/upload`,r,{params:{path:t}})).data}async uploadTextFile(e,t,n){return this.uploadFile(e,t,n)}async downloadTrajectory(e){return(await this.client.get(`/api/file/download-trajectory/${encodeURIComponent(e)}`,{responseType:`blob`})).data}close(){this.client.close()}},s=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getUrl(e={}){return(await this.client.get(`/api/vscode/url`,{params:{...e.baseUrl?{base_url:e.baseUrl}:{},...e.workspaceDir?{workspace_dir:e.workspaceDir}:{}}})).data.url}async getStatus(){return(await this.client.get(`/api/vscode/status`)).data}close(){this.client.close()}},c=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSharedConversations(e){return(await this.client.get(`/api/shared-conversations`,{params:{ids:e}})).data}async getSharedConversation(e){return(await this.getSharedConversations([e]))[0]??null}async searchSharedEvents(e){return(await this.client.get(`/api/shared-events/search`,{params:{conversation_id:e.conversationId,limit:e.limit,page_id:e.pageId}})).data}close(){this.client.close()}},l=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listWorkspaces(){return await this.ensureWorkspacesSupported(),(await this.client.get(`/api/workspaces`)).data}async addWorkspaces(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces`,{workspaces:e})).data}async deleteWorkspace(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces`,{params:{path:e}})).data}async addWorkspaceParents(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces/parents`,{parents:e})).data}async deleteWorkspaceParent(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces/parents`,{params:{path:e}})).data}close(){this.client.close()}async ensureWorkspacesSupported(){await i(this.client,r.workspaces)}},u=e(((e,t)=>{t.exports=function(){throw Error(`ws does not work in the browser. Browser clients must use the native WebSocket object`)}}));if(typeof window<`u`&&window.WebSocket)window.WebSocket;else try{u()}catch{}var d=class{constructor(e,n){this.cachedEvents=[],this.cachedEventIds=new Set,this.client=e instanceof t?e:new t(e),this.conversationId=n}async search(e={}){let t={limit:e.limit??100};return e.page_id&&(t.page_id=e.page_id),e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.sort_order&&(t.sort_order=e.sort_order),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:t})).data}async count(e={}){let t={};return e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/count`,{params:t})).data}async getEventById(e){return(await this.client.get(`/api/conversations/${this.conversationId}/events/${e}`)).data}async getEventsById(e){return Promise.all(e.map(async e=>{try{return await this.getEventById(e)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async addEvent(e){this.cachedEventIds.has(e.id)||(this.cachedEvents.push(e),this.cachedEventIds.add(e.id))}async append(e){await this.addEvent(e)}createDefaultCallback(e){return t=>{this.addEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error adding event to cache: ${t}`))})}}async length(){return this.cachedEvents.length}async getEvent(e){return this.cachedEvents[e]}async getEvents(e,t){let n=[],r;for(;;){let e={limit:100};r&&(e.page_id=r);let t=(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:e})).data;if(n.push(...t.items),!t.next_page_id)break;r=t.next_page_id}let i=new Set(n.map(e=>e.id)),a=[...n,...this.cachedEvents.filter(e=>!i.has(e.id))];return e===void 0&&t===void 0?a:a.slice(e,t)}async*[Symbol.asyncIterator](){let e=await this.getEvents();for(let t of e)yield t}},f=`__full_state__`,p=class e{constructor(e,t){this.cachedState=null,this.cachedAt=0,this.lock=new m,this.client=e,this.conversationId=t,this._events=new d(e,t)}async getConversationInfo(){return await this.lock.acquire(async()=>{if(this.cachedState!==null&&Date.now()-this.cachedAt<e.CACHE_TTL_MS)return this.cachedState;let t=await this.client.get(`/api/conversations/${this.conversationId}`),n;return n=t.data.full_state?t.data.full_state:t.data,this.cachedState=n,this.cachedAt=Date.now(),n})}async refresh(){return this.cachedState=null,this.getConversationInfo()}async updateStateFromEvent(e){await this.lock.acquire(async()=>{if(e.key===f){this.cachedState===null&&(this.cachedState={});let t=e.value?.full_state??e.value;Object.assign(this.cachedState,t)}else this.cachedState===null&&(this.cachedState={}),this.cachedState[e.key]=e.value;this.cachedAt=Date.now()})}createStateUpdateCallback(e){return t=>{t.kind===`ConversationStateUpdateEvent`&&this.updateStateFromEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error updating state from event: ${t}`))})}}get events(){return this._events}get id(){return this.conversationId}unwrapState(e){return e.full_state??e}async getExecutionStatus(){let e=await this.getConversationInfo(),t=this.unwrapState(e),n=t.execution_status??t.agent_status;if(n==null)throw Error(`execution_status missing in conversation info: ${JSON.stringify(e)}`);return n}async getAgentStatus(){return this.getExecutionStatus()}async setAgentStatus(e){throw Error(`Setting execution_status on RemoteState has no effect. Remote execution status is managed server-side. Attempted to set: ${e}`)}async getConfirmationPolicy(){let e=await this.getConversationInfo(),t=this.unwrapState(e).confirmation_policy;if(t==null)throw Error(`confirmation_policy missing in conversation info: ${JSON.stringify(e)}`);return t}async getActivatedKnowledgeSkills(){let e=await this.getConversationInfo();return this.unwrapState(e).activated_knowledge_skills||[]}async getAgent(){let e=await this.getConversationInfo(),t=this.unwrapState(e).agent;if(t==null)throw Error(`agent missing in conversation info: ${JSON.stringify(e)}`);return t}async getWorkspace(){let e=await this.getConversationInfo(),t=this.unwrapState(e).workspace;if(t==null)throw Error(`workspace missing in conversation info: ${JSON.stringify(e)}`);return t}async getPersistenceDir(){let e=await this.getConversationInfo(),t=this.unwrapState(e).persistence_dir;if(t==null)throw Error(`persistence_dir missing in conversation info: ${JSON.stringify(e)}`);return t}async modelDump(){let e=await this.getConversationInfo();return this.unwrapState(e)}async modelDumpJson(){let e=await this.modelDump();return JSON.stringify(e)}};p.CACHE_TTL_MS=2e3;var m=class{constructor(){this.locked=!1,this.queue=[]}async acquire(e){return new Promise((t,n)=>{let r=async()=>{try{t(await e())}catch(e){n(e)}finally{this.locked=!1;let e=this.queue.shift();e&&e()}};this.locked?this.queue.push(r):(this.locked=!0,r())})}},h=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.workingDir=e.workingDir,this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:6e4}),this.bash=new a({host:this.host,...this.apiKey?{apiKey:this.apiKey}:{}})}async startWorkspaceSession(e){return await this.client.post(`/api/auth/workspace-session`,void 0,{credentials:`include`}),`${this.host}/api/conversations/${e}/workspace/`}async deleteWorkspaceSession(){await this.client.delete(`/api/auth/workspace-session`,{credentials:`include`,acceptableStatusCodes:new Set([204])})}async executeCommand(e,t,n=30){let r={command:e,timeout:Math.floor(n)};t&&(r.cwd=t);let i=(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:(n+10)*1e3})).data;return{command:e,exit_code:i.exit_code??0,stdout:i.stdout||``,stderr:i.stderr||``,timeout_occurred:!1}}async fileUpload(e,t,n){let r=new FormData,i,a;e instanceof File?(i=e,a=n||e.name):e instanceof Blob?(i=e,a=n||`blob-file`):(i=new Blob([e],{type:`text/plain`}),a=n||`text-file.txt`),r.append(`file`,i,a);let o=(await this.client.request({method:`POST`,url:`/api/file/upload`,params:{path:t},data:r,timeout:6e4})).data;return{success:o.success??!0,source_path:a,destination_path:t,file_size:o.file_size,error:o.error}}async fileDownload(e){let t=await this.client.get(`/api/file/download`,{params:{path:e},timeout:6e4}),n,r;if(typeof t.data==`string`)n=t.data,r=new Blob([t.data]).size;else if(t.data instanceof ArrayBuffer)n=new Blob([t.data]),r=t.data.byteLength;else if(t.data instanceof Blob)n=t.data,r=t.data.size;else{let e=JSON.stringify(t.data);n=e,r=new Blob([e]).size}return{success:!0,source_path:e,content:n,file_size:r}}async gitChanges(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/changes`,{params:n})).data}catch(e){throw Error(`Failed to get git changes: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async gitDiff(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/diff`,{params:n})).data}catch(e){throw Error(`Failed to get git diff: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async uploadText(e,t,n){return this.fileUpload(e,t,n)}async uploadFileObject(e,t){return this.fileUpload(e,t)}async downloadAsText(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return typeof t.content==`string`?t.content:t.content instanceof Blob?await t.content.text():``}async downloadAsBlob(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return t.content instanceof Blob?t.content:typeof t.content==`string`?new Blob([t.content],{type:`text/plain`}):new Blob}async downloadAndSave(e,t){let n=await this.downloadAsBlob(e),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t||e.split(`/`).pop()||`download`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}close(){this.bash.close(),this.client.close()}},g={execute_command:`Execute a bash command in the terminal within a persistent shell session.
2
+
3
+ ### Command Execution
4
+ * One command at a time: You can only execute one bash command at a time. If you need to run multiple commands sequentially, use \`&&\` or \`;\` to chain them together.
5
+ * Persistent session: Commands execute in a persistent shell session where environment variables, virtual environments, and working directory persist between commands.
6
+
7
+ ### Best Practices
8
+ * Directory verification: Before creating new directories or files, first verify the parent directory exists and is the correct location.
9
+ * Directory management: Try to maintain working directory by using absolute paths and avoiding excessive use of \`cd\`.
10
+
11
+ ### Output Handling
12
+ * Output truncation: If the output exceeds a maximum length, it will be truncated before being returned.`,read_file:`Read the contents of a file from the workspace.
13
+
14
+ Custom editing tool for viewing, creating and editing files in plain-text format.
15
+ * If \`path\` is a text file, returns the file contents with line numbers
16
+ * If \`path\` is a directory, lists non-hidden files and directories up to 2 levels deep
17
+
18
+ Best practices:
19
+ * Use this tool to understand the file's contents and context before making edits
20
+ * Verify the directory path is correct when working with files`,write_file:`Write content to a file in the workspace. Creates the file if it does not exist.
21
+
22
+ When making edits:
23
+ * Ensure the edit results in idiomatic, correct code
24
+ * Do not leave the code in a broken state
25
+ * Always use absolute file paths (starting with /)
26
+
27
+ CRITICAL REQUIREMENTS:
28
+ * The content should be the complete file content, not a diff or patch
29
+ * Ensure proper formatting and indentation`,think:`Use the tool to think about something. It will not obtain new information or make any changes to the repository, but just log the thought. Use it when complex reasoning or brainstorming is needed.
30
+
31
+ Common use cases:
32
+ 1. When exploring a repository and discovering the source of a bug, call this tool to brainstorm several unique ways of fixing the bug, and assess which change(s) are likely to be simplest and most effective.
33
+ 2. After receiving test results, use this tool to brainstorm ways to fix failing tests.
34
+ 3. When planning a complex refactoring, use this tool to outline different approaches and their tradeoffs.
35
+ 4. When designing a new feature, use this tool to think through architecture decisions and implementation details.
36
+ 5. When debugging a complex issue, use this tool to organize your thoughts and hypotheses.
37
+
38
+ The tool simply logs your thought process for better transparency and does not execute any code or make changes.`,finish:`Signals the completion of the current task or conversation.
39
+
40
+ Use this tool when:
41
+ - You have successfully completed the user's requested task
42
+ - You cannot proceed further due to technical limitations or missing information
43
+
44
+ The message should include:
45
+ - A clear summary of actions taken and their results
46
+ - Any next steps for the user
47
+ - Explanation if you're unable to complete the task
48
+ - Any follow-up questions if more information is needed`};g.execute_command,g.read_file,g.write_file,g.think,g.finish;var _;(function(e){e.PRE_TOOL_USE=`PreToolUse`,e.POST_TOOL_USE=`PostToolUse`,e.USER_PROMPT_SUBMIT=`UserPromptSubmit`,e.SESSION_START=`SessionStart`,e.SESSION_END=`SessionEnd`,e.STOP=`Stop`})(_||={});var v;(function(e){e.COMMAND=`command`,e.PROMPT=`prompt`})(v||={});var y;if((function(e){e.ALLOW=`allow`,e.DENY=`deny`})(y||={}),new Set(`|.*+?[]()^$\\`.split(``)),typeof window<`u`&&window.WebSocket)window.WebSocket;else try{u()}catch{}var b;(function(e){e.TIMESTAMP=`TIMESTAMP`,e.TIMESTAMP_DESC=`TIMESTAMP_DESC`})(b||={}),(function(e){e.REVERSE_TIMESTAMP=`TIMESTAMP_DESC`})(b||={});var x;(function(e){e.IDLE=`idle`,e.RUNNING=`running`,e.PAUSED=`paused`,e.WAITING_FOR_CONFIRMATION=`waiting_for_confirmation`,e.FINISHED=`finished`,e.ERROR=`error`,e.STUCK=`stuck`,e.DELETING=`deleting`})(x||={});var S;(function(e){e.CREATED_AT=`CREATED_AT`,e.UPDATED_AT=`UPDATED_AT`,e.CREATED_AT_DESC=`CREATED_AT_DESC`,e.UPDATED_AT_DESC=`UPDATED_AT_DESC`})(S||={});var C={"claude-code":{key:`claude-code`,display_name:`Claude Code`,default_command:[`npx`,`-y`,`@agentclientprotocol/claude-agent-acp`],api_key_env_var:`ANTHROPIC_API_KEY`,base_url_env_var:`ANTHROPIC_BASE_URL`,default_session_mode:`bypassPermissions`,agent_name_patterns:[`claude-agent`],supports_set_session_model:!1,supports_runtime_model_switch:!0,session_meta_key:`claudeCode`,available_models:[{id:`claude-opus-4-7`,label:`Claude Opus 4.7`},{id:`claude-opus-4-6`,label:`Claude Opus 4.6`},{id:`opus[1m]`,label:`Claude Opus (1M)`},{id:`claude-opus-4-5`,label:`Claude Opus 4.5`},{id:`claude-opus-4-1-20250805`,label:`Claude Opus 4.1`},{id:`claude-sonnet-4-6`,label:`Claude Sonnet 4.6`},{id:`sonnet[1m]`,label:`Claude Sonnet (1M)`},{id:`claude-sonnet-4-5`,label:`Claude Sonnet 4.5`},{id:`claude-haiku-4-5`,label:`Claude Haiku 4.5`},{id:`opusplan`,label:`Opus (plan) + Sonnet (execute)`}],default_model:`claude-opus-4-7`},codex:{key:`codex`,display_name:`Codex`,default_command:[`npx`,`-y`,`@zed-industries/codex-acp`],api_key_env_var:`OPENAI_API_KEY`,base_url_env_var:`OPENAI_BASE_URL`,default_session_mode:`full-access`,agent_name_patterns:[`codex-acp`],supports_set_session_model:!0,supports_runtime_model_switch:!0,session_meta_key:null,available_models:[{id:`gpt-5.5/low`,label:`GPT-5.5 (low)`},{id:`gpt-5.5/medium`,label:`GPT-5.5 (medium)`},{id:`gpt-5.5/high`,label:`GPT-5.5 (high)`},{id:`gpt-5.5/xhigh`,label:`GPT-5.5 (xhigh)`},{id:`gpt-5.4/low`,label:`GPT-5.4 (low)`},{id:`gpt-5.4/medium`,label:`GPT-5.4 (medium)`},{id:`gpt-5.4/high`,label:`GPT-5.4 (high)`},{id:`gpt-5.4/xhigh`,label:`GPT-5.4 (xhigh)`},{id:`gpt-5.4-mini/low`,label:`GPT-5.4 Mini (low)`},{id:`gpt-5.4-mini/medium`,label:`GPT-5.4 Mini (medium)`},{id:`gpt-5.4-mini/high`,label:`GPT-5.4 Mini (high)`},{id:`gpt-5.4-mini/xhigh`,label:`GPT-5.4 Mini (xhigh)`},{id:`gpt-5.3-codex/low`,label:`GPT-5.3 Codex (low)`},{id:`gpt-5.3-codex/medium`,label:`GPT-5.3 Codex (medium)`},{id:`gpt-5.3-codex/high`,label:`GPT-5.3 Codex (high)`},{id:`gpt-5.3-codex/xhigh`,label:`GPT-5.3 Codex (xhigh)`},{id:`gpt-5.2/low`,label:`GPT-5.2 (low)`},{id:`gpt-5.2/medium`,label:`GPT-5.2 (medium)`},{id:`gpt-5.2/high`,label:`GPT-5.2 (high)`},{id:`gpt-5.2/xhigh`,label:`GPT-5.2 (xhigh)`}],default_model:`gpt-5.5/medium`},"gemini-cli":{key:`gemini-cli`,display_name:`Gemini CLI`,default_command:[`npx`,`-y`,`@google/gemini-cli`,`--acp`],api_key_env_var:`GEMINI_API_KEY`,base_url_env_var:`GEMINI_BASE_URL`,default_session_mode:`yolo`,agent_name_patterns:[`gemini-cli`],supports_set_session_model:!0,supports_runtime_model_switch:!0,session_meta_key:null,available_models:[{id:`auto-gemini-3`,label:`Auto (Gemini 3)`},{id:`auto-gemini-2.5`,label:`Auto (Gemini 2.5)`},{id:`gemini-3.1-pro-preview`,label:`Gemini 3.1 Pro (preview)`},{id:`gemini-3-flash-preview`,label:`Gemini 3 Flash (preview)`},{id:`gemini-3.1-flash-lite-preview`,label:`Gemini 3.1 Flash Lite (preview)`},{id:`gemini-2.5-pro`,label:`Gemini 2.5 Pro`},{id:`gemini-2.5-flash`,label:`Gemini 2.5 Flash`},{id:`gemini-2.5-flash-lite`,label:`Gemini 2.5 Flash Lite`}],default_model:`auto-gemini-2.5`}};function w(e){return e?C[e]??null:null}export{l as a,o as c,d as i,a as l,S as n,c as o,h as r,s,w as t};
@@ -1 +1 @@
1
- import{t as e}from"./iconBase-BVhFI-0E.js";function t(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z`},child:[]}]})(t)}function n(t){return e({tag:`svg`,attr:{viewBox:`0 0 496 512`},child:[{tag:`path`,attr:{d:`M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z`},child:[]}]})(t)}function r(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z`},child:[]}]})(t)}function i(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z`},child:[]}]})(t)}function a(t){return e({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z`},child:[]}]})(t)}function o(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z`},child:[]}]})(t)}function s(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z`},child:[]}]})(t)}function c(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z`},child:[]}]})(t)}function l(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z`},child:[]}]})(t)}export{o as a,a as c,s as i,i as l,l as n,n as o,c as r,t as s,r as t};
1
+ import{t as e}from"./iconBase-B_5IRYeZ.js";function t(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z`},child:[]}]})(t)}function n(t){return e({tag:`svg`,attr:{viewBox:`0 0 496 512`},child:[{tag:`path`,attr:{d:`M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z`},child:[]}]})(t)}function r(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z`},child:[]}]})(t)}function i(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z`},child:[]}]})(t)}function a(t){return e({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z`},child:[]}]})(t)}function o(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z`},child:[]}]})(t)}function s(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z`},child:[]}]})(t)}function c(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z`},child:[]}]})(t)}function l(t){return e({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z`},child:[]}]})(t)}export{o as a,a as c,s as i,i as l,l as n,n as o,c as r,t as s,r as t};
@@ -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{l as r}from"./circle-plus-check-toggle-DquBwJ_6.js";import{_ as i,a,b as o,c as s,d as c,f as ee,g as te,h as ne,i as re,l as ie,m as ae,n as oe,o as se,p as ce,r as le,s as ue,t as de,u as fe,v as l,x as u,y as d}from"./vendor~root-layout~home~mcp~automations-list-cNHi83v_.js";var f=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`}]]),p=n(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),m=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`}]]),h=n(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),g=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`}]]),_=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`}]]),v=n(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),y=n(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),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(p),$={github:Z(s),slack:Z(d),tavily:(0,Y.createElement)(r,{className:X,strokeWidth:2.5}),linear:Z(c),notion:Z(ce),atlassian:Z(oe),sentry:Z(l),stripe:Z(o),paypal:Z(ne),"cloudflare-docs":Z(a),"cloudflare-bindings":Z(a),"cloudflare-observability":Z(a),huggingface:Z(ie),deepwiki:Z(f),git:Q(y),"brave-search":Z(le),exa:Q(w),firecrawl:Q(_),apify:Q(p),fetch:Q(b),"browser-mcp":Q(S),playwright:Q(T),supabase:Z(u),neon:Q(g),mongodb:Z(ee),redis:Z(te),filesystem:Q(v),memory:Q(m),"sequential-thinking":Q(x),time:Q(h),everything:Q(C),figma:Z(ue),airtable:Z(de),obsidian:Z(ae),elevenlabs:Z(se),resend:Z(i),"cloudflare-builds":Z(a),"cloudflare-browser-rendering":Z(a),kagi:Z(fe),clickhouse:Z(re)};new Set(Object.keys($));export{v as a,y as i,$ as n,p as o,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-C9OEnwvX.js";import{l as r}from"./circle-plus-check-toggle-B3_W6-nt.js";import{_ as i,a,b as o,c as s,d as c,f as ee,g as te,h as ne,i as re,l as ie,m as ae,n as oe,o as se,p as ce,r as le,s as ue,t as de,u as fe,v as l,x as u,y as d}from"./vendor~root-layout~home~mcp~automations-list-JQ-neDIa.js";var f=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`}]]),p=n(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),m=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`}]]),h=n(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),g=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`}]]),_=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`}]]),v=n(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),y=n(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),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(p),$={github:Z(s),slack:Z(d),tavily:(0,Y.createElement)(r,{className:X,strokeWidth:2.5}),linear:Z(c),notion:Z(ce),atlassian:Z(oe),sentry:Z(l),stripe:Z(o),paypal:Z(ne),"cloudflare-docs":Z(a),"cloudflare-bindings":Z(a),"cloudflare-observability":Z(a),huggingface:Z(ie),deepwiki:Z(f),git:Q(y),"brave-search":Z(le),exa:Q(w),firecrawl:Q(_),apify:Q(p),fetch:Q(b),"browser-mcp":Q(S),playwright:Q(T),supabase:Z(u),neon:Q(g),mongodb:Z(ee),redis:Z(te),filesystem:Q(v),memory:Q(m),"sequential-thinking":Q(x),time:Q(h),everything:Q(C),figma:Z(ue),airtable:Z(de),obsidian:Z(ae),elevenlabs:Z(se),resend:Z(i),"cloudflare-builds":Z(a),"cloudflare-browser-rendering":Z(a),kagi:Z(fe),clickhouse:Z(re)};new Set(Object.keys($));export{v as a,y as i,$ as n,p as o,tt as r,nt as t};