@mcp-use/inspector 20.0.0-beta.1 → 20.0.0-beta.10

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 (276) hide show
  1. package/README.md +7 -18
  2. package/dist/cdn/{AnimatePresence-B4HhIdgq.js → AnimatePresence-D1bZ5_-l.js} +80 -79
  3. package/dist/cdn/ChatTab-DRn-AnBV.js +6811 -0
  4. package/dist/cdn/{CheckboxIndicator-BF2cKfbA.js → CheckboxIndicator-BjF73mGX.js} +74 -73
  5. package/dist/cdn/ConnectionSettingsForm-CsG61Iyd.js +929 -0
  6. package/dist/cdn/ConnectionSettingsTab-CTJJK4hj.js +151 -0
  7. package/dist/cdn/{ElicitationTab-upPXq2q7.js → ElicitationTab-PEmEDvC5.js} +48 -47
  8. package/dist/cdn/{FormContext-Cl51-7O7.js → FormContext-NtUiZclE.js} +26 -26
  9. package/dist/cdn/{InspectorContext-DzXtgyTx.js → InspectorContext-BBKCdfmK.js} +2 -22
  10. package/dist/cdn/{JSONDisplay-D3RcyO9z.js → JSONDisplay-BJqMz7Ny.js} +23 -23
  11. package/dist/cdn/{ListTabHeader-8lULn-90.js → ListTabHeader-DzmTtN1e.js} +21 -20
  12. package/dist/cdn/{WidgetWrapper-D29YDxIu.js → MCPAppsDebugControls-C5-knSKL.js} +583 -620
  13. package/dist/cdn/{ManufactOAuthCallback-DEM8mhWD.js → ManufactOAuthCallback-ChbbjFIT.js} +3 -3
  14. package/dist/cdn/MarkdownRenderer-uUvyteZT.js +3610 -0
  15. package/dist/cdn/McpAppsViewPanel-Bj-1E9_v.js +56 -0
  16. package/dist/cdn/{NotificationsTab-CWopTIzT.js → NotificationsTab-B7uebqMV.js} +13 -13
  17. package/dist/cdn/{OAuthCallback-k3oeLtIC.js → OAuthCallback-Hdtybeu0.js} +3 -3
  18. package/dist/cdn/PromptsTab-b4UpzPPY.js +902 -0
  19. package/dist/cdn/{ResourcesTab-KfamsM6-.js → ResourcesTab-BCA0_b8c.js} +106 -124
  20. package/dist/cdn/{SamplingTab-vcufuK24.js → SamplingTab-CuPYqFyA.js} +43 -42
  21. package/dist/cdn/{ServerMetadataTab-DS0eiyyD.js → ServerMetadataTab-BM3VhSLf.js} +14 -14
  22. package/dist/cdn/{StatusIcon-BGXOEU2u.js → StatusIcon-Q3n3YRtE.js} +8 -9
  23. package/dist/cdn/{ToolsTab-DRjcZnpu.js → ToolsTab-4lvUZRQq.js} +671 -693
  24. package/dist/cdn/{ViewPreview-B_onhcUB.js → ViewPreview-BGClMNvo.js} +5 -4
  25. package/dist/cdn/{WidgetDebugContext-D4usL_MA.js → WidgetDebugContext-B6yoOVVV.js} +1 -11
  26. package/dist/cdn/WidgetWrapper-BlbQAh_X.js +12 -0
  27. package/dist/cdn/{bell-CGjAO_0s.js → bell-GrTZcnD2.js} +1 -1
  28. package/dist/cdn/{browser-CbQIH4w2.js → browser-DG2Z8392.js} +1 -1
  29. package/dist/cdn/{brush-B_mKhyxG.js → brush-CelVvMGp.js} +1 -1
  30. package/dist/cdn/button-CB4uOoUV.js +2509 -0
  31. package/dist/cdn/{card-DqjqAq0o.js → card-BA-DQk-G.js} +2 -2
  32. package/dist/cdn/{checkbox-B4oUG6Rr.js → checkbox-kwVa4gRX.js} +4 -4
  33. package/dist/cdn/{clock-CmUbSx_B.js → clock-YMF8Gtw5.js} +1 -1
  34. package/dist/cdn/{code-V_0nf5rg.js → code-C8sN2OGR.js} +1 -1
  35. package/dist/cdn/{jsx-runtime-CIxvMpEo.js → createLucideIcon-BONxC1L5.js} +57 -24
  36. package/dist/cdn/{dialog-Dnl-pZsY.js → dialog-CJGnC5Ag.js} +165 -165
  37. package/dist/cdn/{dist-DjXr_YO3.js → dist-CTJnCYmk.js} +1 -1
  38. package/dist/cdn/{dist-mRDqCgKU.js → dist-dw0FdK5Y.js} +116 -114
  39. package/dist/cdn/{external-link-CjmfT6rW.js → external-link-Bo4lQxr1.js} +1 -1
  40. package/dist/cdn/{eye-B7H96av8.js → eye-pSGG7nvf.js} +1 -1
  41. package/dist/cdn/{folder-open-B3lu2rG_.js → folder-open-aM8CPtBO.js} +1 -1
  42. package/dist/cdn/{hash-BVQnWi7q.js → hash-DDs2vE1k.js} +1 -1
  43. package/dist/cdn/{history-Csw4rb44.js → history-BfUFpL1d.js} +1 -1
  44. package/dist/cdn/{index-browser-CVUwR-Bu.js → index-browser-B1xWyLr0.js} +113 -201
  45. package/dist/cdn/{info-CNiOwqkf.js → info-BMkB68mB.js} +1 -1
  46. package/dist/cdn/{input-BLxOA7V-.js → input-BCpgLXU1.js} +3039 -3600
  47. package/dist/cdn/inspector.css +1 -1
  48. package/dist/cdn/inspector.js +7797 -7857
  49. package/dist/cdn/{label-CBvG613A.js → label-A0UGV8FE.js} +8 -8
  50. package/dist/cdn/{loader-circle-BLy9A_pp.js → loader-circle-BKRHJEB7.js} +1 -1
  51. package/dist/cdn/{manufact-auth-0TVxpeTA.js → manufact-auth-BQMHhbLV.js} +142 -106
  52. package/dist/cdn/{maximize-2-CH5Lq90B.js → maximize-2-DdrB_spi.js} +1 -1
  53. package/dist/cdn/{maximize-BALCV_ep.js → maximize-hSOCz133.js} +1 -1
  54. package/dist/cdn/{message-square-BnxdpJxZ.js → message-square-D3tKB3uJ.js} +1 -1
  55. package/dist/cdn/{not-found-BcNNsTjS.js → not-found-BajFyZpp.js} +4 -6
  56. package/dist/cdn/{play-vuZ5PLnI.js → play-B1leulYf.js} +1 -1
  57. package/dist/cdn/providerMeta-CjGU4rID.js +436 -0
  58. package/dist/cdn/{react-BxO-uEDZ.js → react-BoOQpLwo.js} +838 -849
  59. package/dist/cdn/{refresh-cw-BXY-Pa0U.js → refresh-cw-CyvXrS91.js} +1 -1
  60. package/dist/cdn/{save-Tgil_AJZ.js → save-CmdEPUAm.js} +1 -1
  61. package/dist/cdn/{select-BZ_IoKxg.js → select-CCFHjOGk.js} +843 -842
  62. package/dist/cdn/{servers-Dm72iTpY.js → servers-Dd0Vcp81.js} +5 -1
  63. package/dist/cdn/{shared-uMiV6Fx1.js → shared-CJVHJhag.js} +35 -35
  64. package/dist/cdn/sheet-oyq1mIyg.js +2078 -0
  65. package/dist/cdn/{sparkles-BntO2rDR.js → sparkles-CxeZpVtX.js} +1 -1
  66. package/dist/cdn/{spinner-CWcJhIY_.js → spinner-Be1GlSGX.js} +3 -3
  67. package/dist/cdn/{square-check-big-BvwQ17Bl.js → square-check-big-C_4wbfwF.js} +1 -1
  68. package/dist/cdn/{switch-DtQOLb9R.js → switch-DHXEA_N5.js} +211 -210
  69. package/dist/cdn/{tabs-subtle-C5cy35sY.js → tabs-subtle-Dubd6Kj8.js} +259 -258
  70. package/dist/cdn/{telemetry-Ct6pVkM1.js → telemetry-C7bt_ifQ.js} +38 -70
  71. package/dist/cdn/{textarea-Bj-CT7hC.js → textarea-CwmI8_uI.js} +2 -2
  72. package/dist/cdn/{trash-2-RwpJY5SL.js → trash-2-BhumJAFE.js} +1 -1
  73. package/dist/cdn/{useAriaLabelledBy-Bm9qHGK6.js → useAriaLabelledBy-Cra6w3YY.js} +2 -1
  74. package/dist/cdn/{useCompositeItem-CNJ6MXdi.js → useCompositeItem-Dhnm-7el.js} +3 -3
  75. package/dist/cdn/{useConfig-CwxZ6Quj.js → useConfig-DiOY6evp.js} +73 -46
  76. package/dist/cdn/{useSavedRequests-Ci2I919u.js → useSavedRequests-mSIsDd4c.js} +1 -1
  77. package/dist/cdn/{useViewHostProps-Dr6W2ooF.js → useViewHostProps-D1emxC9m.js} +124 -108
  78. package/dist/cdn/{wrench-DzGmCfnb.js → wrench-DvK20LUT.js} +1 -1
  79. package/dist/cdn/{x-C3vRQIYu.js → x-EilKPiCX.js} +1 -1
  80. package/dist/cdn/{zap-Mb-pbw2X.js → zap-0Wr9QO7N.js} +1 -1
  81. package/dist/cli.js +87 -14
  82. package/dist/client/auth/manufact-auth.d.ts +3 -1
  83. package/dist/client/auth/manufact-auth.d.ts.map +1 -1
  84. package/dist/client/components/ChatTab.d.ts +1 -8
  85. package/dist/client/components/ChatTab.d.ts.map +1 -1
  86. package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
  87. package/dist/client/components/ResourcesTab.d.ts.map +1 -1
  88. package/dist/client/components/ToolsTab.d.ts.map +1 -1
  89. package/dist/client/components/chat/ChatHeader.d.ts +7 -2
  90. package/dist/client/components/chat/ChatHeader.d.ts.map +1 -1
  91. package/dist/client/components/chat/ChatLandingForm.d.ts +4 -2
  92. package/dist/client/components/chat/ChatLandingForm.d.ts.map +1 -1
  93. package/dist/client/components/chat/ChatManagedNotice.d.ts +10 -0
  94. package/dist/client/components/chat/ChatManagedNotice.d.ts.map +1 -0
  95. package/dist/client/components/chat/ChatScrollTopFade.d.ts +7 -0
  96. package/dist/client/components/chat/ChatScrollTopFade.d.ts.map +1 -0
  97. package/dist/client/components/chat/ConfigurationDialog.d.ts +11 -9
  98. package/dist/client/components/chat/ConfigurationDialog.d.ts.map +1 -1
  99. package/dist/client/components/chat/ConfigureEmptyState.d.ts +1 -6
  100. package/dist/client/components/chat/ConfigureEmptyState.d.ts.map +1 -1
  101. package/dist/client/components/chat/MessageList.d.ts +1 -0
  102. package/dist/client/components/chat/MessageList.d.ts.map +1 -1
  103. package/dist/client/components/chat/StreamingAssistantContent.d.ts.map +1 -1
  104. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
  105. package/dist/client/components/chat/chatModeStorage.d.ts +11 -0
  106. package/dist/client/components/chat/chatModeStorage.d.ts.map +1 -0
  107. package/dist/client/components/chat/managedChatNotice.d.ts +16 -0
  108. package/dist/client/components/chat/managedChatNotice.d.ts.map +1 -0
  109. package/dist/client/components/chat/partialToolArgs.d.ts +10 -0
  110. package/dist/client/components/chat/partialToolArgs.d.ts.map +1 -0
  111. package/dist/client/components/chat/providerMeta.d.ts +11 -0
  112. package/dist/client/components/chat/providerMeta.d.ts.map +1 -1
  113. package/dist/client/components/chat/types.d.ts +1 -0
  114. package/dist/client/components/chat/types.d.ts.map +1 -1
  115. package/dist/client/components/chat/useChatMessages.d.ts +7 -5
  116. package/dist/client/components/chat/useChatMessages.d.ts.map +1 -1
  117. package/dist/client/components/chat/useChatMessagesClientSide.d.ts +4 -6
  118. package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +1 -1
  119. package/dist/client/components/chat/useChatScrollToBottom.d.ts +1 -0
  120. package/dist/client/components/chat/useChatScrollToBottom.d.ts.map +1 -1
  121. package/dist/client/components/chat/useConfig.d.ts +1 -1
  122. package/dist/client/components/chat/useConfig.d.ts.map +1 -1
  123. package/dist/client/components/chat/useHostedChatMode.d.ts +1 -1
  124. package/dist/client/components/chat/useHostedChatMode.d.ts.map +1 -1
  125. package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts +29 -0
  126. package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts.map +1 -0
  127. package/dist/client/components/shared/MarkdownRenderer.d.ts +2 -1
  128. package/dist/client/components/shared/MarkdownRenderer.d.ts.map +1 -1
  129. package/dist/client/components/tools/ToolExecutionPanel.d.ts.map +1 -1
  130. package/dist/client/components/tools/ToolResultDisplay.d.ts +2 -1
  131. package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
  132. package/dist/client/components/tools/useToolsTabNavigation.d.ts.map +1 -1
  133. package/dist/client/components/ui/MeshGradientCanvas.d.ts +13 -0
  134. package/dist/client/components/ui/MeshGradientCanvas.d.ts.map +1 -0
  135. package/dist/client/components/ui/chat-message.d.ts +1 -1
  136. package/dist/client/components/ui/chat-message.d.ts.map +1 -1
  137. package/dist/client/components/ui/file-thumbnail.d.ts.map +1 -1
  138. package/dist/client/components/ui/mesh-animation-pause.d.ts +14 -0
  139. package/dist/client/components/ui/mesh-animation-pause.d.ts.map +1 -0
  140. package/dist/client/components/ui/mesh-gradient-colors.d.ts +6 -0
  141. package/dist/client/components/ui/mesh-gradient-colors.d.ts.map +1 -0
  142. package/dist/client/components/ui/mesh-tab-background.d.ts +3 -1
  143. package/dist/client/components/ui/mesh-tab-background.d.ts.map +1 -1
  144. package/dist/client/components/ui/not-found.d.ts.map +1 -1
  145. package/dist/client/context/InspectorContext.d.ts.map +1 -1
  146. package/dist/client/context/WidgetDebugContext.d.ts +1 -11
  147. package/dist/client/context/WidgetDebugContext.d.ts.map +1 -1
  148. package/dist/client/hooks/useDeviceViewport.d.ts +1 -5
  149. package/dist/client/hooks/useDeviceViewport.d.ts.map +1 -1
  150. package/dist/client/hooks/useViewHostProps.d.ts +1 -1
  151. package/dist/client/hooks/useViewHostProps.d.ts.map +1 -1
  152. package/dist/client/index.js +4202 -3491
  153. package/dist/client/telemetry/init.d.ts.map +1 -1
  154. package/dist/client/telemetry/utils.d.ts.map +1 -1
  155. package/dist/client/utils/servers.d.ts +5 -0
  156. package/dist/client/utils/servers.d.ts.map +1 -1
  157. package/dist/server/asset-urls.d.ts +4 -0
  158. package/dist/server/asset-urls.d.ts.map +1 -1
  159. package/dist/server/asset-urls.js +7 -3
  160. package/dist/server/cdn-shell.d.ts.map +1 -1
  161. package/dist/server/cdn-shell.js +3 -3
  162. package/dist/server/{chunk-IXYK6ZOY.js → chunk-5XMQ5UJR.js} +2 -2
  163. package/dist/server/{chunk-KBVKS4J5.js → chunk-H6ZCIKBS.js} +10 -0
  164. package/dist/server/{chunk-VDUV6LR6.js → chunk-KTPQKADO.js} +75 -5
  165. package/dist/server/{chunk-Y2GBQOQW.js → chunk-LMLZJR2K.js} +2 -9
  166. package/dist/server/{chunk-K2V2SDQD.js → chunk-OWR2BIBW.js} +1 -1
  167. package/dist/server/{chunk-5B3SXGZP.js → chunk-UJLXHNQP.js} +1 -1
  168. package/dist/server/{chunk-6XWDZEFF.js → chunk-XCNS5CIW.js} +8 -3
  169. package/dist/server/cli.js +5 -5
  170. package/dist/server/create-dev-api-app.js +3 -3
  171. package/dist/server/dev-callback-redirect.d.ts +3 -0
  172. package/dist/server/dev-callback-redirect.d.ts.map +1 -0
  173. package/dist/server/dev-callback-redirect.js +18 -0
  174. package/dist/server/index.js +6 -6
  175. package/dist/server/middleware.js +6 -6
  176. package/dist/server/proxy/index.js +1 -1
  177. package/dist/server/proxy/mcp-proxy.d.ts +2 -0
  178. package/dist/server/proxy/mcp-proxy.d.ts.map +1 -1
  179. package/dist/server/proxy/mcp-proxy.js +3 -1
  180. package/dist/server/proxy-routes.js +2 -2
  181. package/dist/server/server.js +3 -3
  182. package/dist/server/version.js +1 -1
  183. package/dist/server/vite-dev-api-plugin.js +3 -3
  184. package/dist/web/assets/AnimatePresence-FfDQQNFJ.js +9 -0
  185. package/dist/web/assets/ChatTab-x6dg7xyx.js +18 -0
  186. package/dist/web/assets/ConnectionSettingsTab-DUwCNYXJ.js +1 -0
  187. package/dist/web/assets/ElicitationTab-Dk04sjRw.js +1 -0
  188. package/dist/web/assets/FormContext-sV-yByKz.js +1 -0
  189. package/dist/web/assets/ListTabHeader-CrGae306.js +1 -0
  190. package/dist/web/assets/MCPAppsDebugControls-Kh10bYHm.js +34 -0
  191. package/dist/web/assets/{ManufactOAuthCallback-DCLbW-mz.js → ManufactOAuthCallback-Bq00h5wq.js} +1 -1
  192. package/dist/web/assets/MarkdownRenderer--ZbJc80m.js +47 -0
  193. package/dist/web/assets/McpAppsViewPanel-BM7S0O6E.js +1 -0
  194. package/dist/web/assets/{NotificationsTab-JevzvJTg.js → NotificationsTab-DTcas5xQ.js} +1 -1
  195. package/dist/web/assets/{OAuthCallback-BjcRxLh5.js → OAuthCallback-CZ5PbMLP.js} +1 -1
  196. package/dist/web/assets/PromptsTab-Ce9hFDPL.js +15 -0
  197. package/dist/web/assets/ResourcesTab-CfV_CTOT.js +2 -0
  198. package/dist/web/assets/SamplingTab-7FoVfzSl.js +1 -0
  199. package/dist/web/assets/ServerMetadataTab-DfOYnm2P.js +1 -0
  200. package/dist/web/assets/ToolsTab-CeDM6lbc.js +8 -0
  201. package/dist/web/assets/ViewPreview-DMpWAByN.js +1 -0
  202. package/dist/web/assets/WidgetWrapper-cv_BM1bY.js +1 -0
  203. package/dist/web/assets/{brush--0LobUi4.js → brush-DX0UZ_pI.js} +1 -1
  204. package/dist/web/assets/button-C8Xa2k4x.js +1 -0
  205. package/dist/web/assets/checkbox-ocTkuPLe.js +1 -0
  206. package/dist/web/assets/code-B14rVdNt.js +1 -0
  207. package/dist/web/assets/createLucideIcon-BEHeJH0M.js +1 -0
  208. package/dist/web/assets/dist-D6mojCV5.js +21 -0
  209. package/dist/web/assets/index-BfmL5fRO.js +499 -0
  210. package/dist/web/assets/index-bCIH1Sdx.css +1 -0
  211. package/dist/web/assets/input-C0OQCUZy.js +1 -0
  212. package/dist/web/assets/{label-B5Q_Zr8M.js → label-CI7JWQOo.js} +1 -1
  213. package/dist/web/assets/{maximize-2-BTT9QQU9.js → maximize-2-Br1WQzT2.js} +1 -1
  214. package/dist/web/assets/{maximize-_O55kFcr.js → maximize-CJNgRe6S.js} +1 -1
  215. package/dist/web/assets/{refresh-cw-C9wQl8_d.js → refresh-cw-B5iaAZKn.js} +1 -1
  216. package/dist/web/assets/{save-B-MsgxX9.js → save-TM6fvNrt.js} +1 -1
  217. package/dist/web/assets/select-D6jzbLJn.js +1 -0
  218. package/dist/web/assets/shared-BaJnSpaR.js +1 -0
  219. package/dist/web/assets/{sparkles-2OAsc1aP.js → sparkles-BGYTDThM.js} +1 -1
  220. package/dist/web/assets/tabs-subtle-C3U3Xswq.js +1 -0
  221. package/dist/web/assets/textarea-CRTXuRmE.js +1 -0
  222. package/dist/web/assets/useConfig-tIq2w5rV.js +1 -0
  223. package/dist/web/assets/useViewHostProps--1CXsG5i.js +1 -0
  224. package/dist/web/assets/{zap-Du2Uc5pa.js → zap-BDWHCVHU.js} +1 -1
  225. package/dist/web/index.html +10 -11
  226. package/package.json +5 -12
  227. package/dist/cdn/ChatTab-D8uwCHAf.js +0 -13218
  228. package/dist/cdn/ConnectionSettingsForm-BNS6bOMD.js +0 -873
  229. package/dist/cdn/ConnectionSettingsTab-B97gPPJW.js +0 -145
  230. package/dist/cdn/PromptsTab-Cspfnl6n.js +0 -4400
  231. package/dist/cdn/bundle-mjs-B0nmHDtp.js +0 -1953
  232. package/dist/cdn/chunk-BO2N2NFS-Cy167e0X.js +0 -17500
  233. package/dist/cdn/createLucideIcon-C5fZZ6oB.js +0 -38
  234. package/dist/cdn/highlighted-body-OFNGDK62-CoReNbTX.js +0 -36
  235. package/dist/cdn/mermaid-GHXKKRXX-DgVIbk-D.js +0 -2
  236. package/dist/cdn/pdf-CxFT9FER.js +0 -16291
  237. package/dist/cdn/popover-C_SSrXT0.js +0 -2005
  238. package/dist/cdn/sheet-CerCdhxz.js +0 -78
  239. package/dist/cdn/useHostedSession-BA39Aegc.js +0 -153
  240. package/dist/cdn/useMCPPrompts-D3_Hla_z.js +0 -104
  241. package/dist/client/components/chat/streamdown-code-slim.d.ts +0 -4
  242. package/dist/client/components/chat/streamdown-code-slim.d.ts.map +0 -1
  243. package/dist/web/assets/AnimatePresence-CthXziG2.js +0 -9
  244. package/dist/web/assets/ChatTab-Cy8eyFYI.js +0 -460
  245. package/dist/web/assets/ConnectionSettingsTab-sDZGaUJn.js +0 -1
  246. package/dist/web/assets/ElicitationTab-wDKgU1qL.js +0 -1
  247. package/dist/web/assets/FormContext-Cqc_A12u.js +0 -1
  248. package/dist/web/assets/ListTabHeader-G-nQX18m.js +0 -1
  249. package/dist/web/assets/PromptsTab-DsQVOjKH.js +0 -61
  250. package/dist/web/assets/ResourcesTab-Bw8_p6M1.js +0 -2
  251. package/dist/web/assets/SamplingTab-BrcF1zJF.js +0 -1
  252. package/dist/web/assets/ServerMetadataTab-Bydeh1Po.js +0 -1
  253. package/dist/web/assets/ToolsTab-DJWF7Q_x.js +0 -8
  254. package/dist/web/assets/ViewPreview-jgeU7bY9.js +0 -1
  255. package/dist/web/assets/WidgetWrapper-B_vJU9uF.js +0 -34
  256. package/dist/web/assets/bundle-mjs-8puS6ou7.js +0 -1
  257. package/dist/web/assets/checkbox-BA-XURSj.js +0 -1
  258. package/dist/web/assets/chunk-BO2N2NFS-CGbd3eLY.js +0 -131
  259. package/dist/web/assets/code-tME-5H6D.js +0 -1
  260. package/dist/web/assets/createLucideIcon-B3b8EU0b.js +0 -1
  261. package/dist/web/assets/dist-BcAQZluc.js +0 -21
  262. package/dist/web/assets/highlighted-body-OFNGDK62-BBJFbIMp.js +0 -1
  263. package/dist/web/assets/index-BjH-Qp85.css +0 -1
  264. package/dist/web/assets/index-D2UxaT9v.js +0 -475
  265. package/dist/web/assets/input-CjmxOFr6.js +0 -1
  266. package/dist/web/assets/jsx-runtime-Cjj9sGSy.js +0 -1
  267. package/dist/web/assets/mermaid-GHXKKRXX-B4MKVODA.js +0 -1
  268. package/dist/web/assets/pdf-CuwKm9zO.js +0 -54
  269. package/dist/web/assets/select-C0xlfLAa.js +0 -1
  270. package/dist/web/assets/shared-DQE60Op-.js +0 -1
  271. package/dist/web/assets/sheet-7TIkLdpr.js +0 -1
  272. package/dist/web/assets/tabs-subtle-AkJZvdxS.js +0 -1
  273. package/dist/web/assets/textarea-Ci09-en6.js +0 -1
  274. package/dist/web/assets/useConfig-Qglo4xs1.js +0 -1
  275. package/dist/web/assets/useMCPPrompts-USLYc1I4.js +0 -1
  276. package/dist/web/assets/useViewHostProps-DXAD1g7g.js +0 -1
@@ -0,0 +1,929 @@
1
+ import { s as e, t } from "./react-BIs9pQ3H.js";
2
+ import { t as n } from "./input-BCpgLXU1.js";
3
+ import { n as r, t as i } from "./createLucideIcon-BONxC1L5.js";
4
+ import { U as a, t as o } from "./button-CB4uOoUV.js";
5
+ import { t as s } from "./label-A0UGV8FE.js";
6
+ import { a as c, i as l, n as u, r as d, t as f } from "./select-CCFHjOGk.js";
7
+ import { c as p, l as m, n as h, o as g, r as _, t as v, w as y, x as b } from "./dialog-CJGnC5Ag.js";
8
+ import { i as ee, t as te } from "./browser-DG2Z8392.js";
9
+ import { n as x, t as S } from "./eye-pSGG7nvf.js";
10
+ import { t as C } from "./trash-2-BhumJAFE.js";
11
+ import { t as w } from "./react-BoOQpLwo.js";
12
+ import { r as T } from "./basePath-B8HuhIMu.js";
13
+ import { a as ne, i as re } from "./servers-Dd0Vcp81.js";
14
+ import { n as E } from "./dist-CTJnCYmk.js";
15
+ import { a as D, i as O, n as k, r as A, t as j } from "./card-BA-DQk-G.js";
16
+ var ie = i("cog", [
17
+ ["path", {
18
+ d: "M11 10.27 7 3.34",
19
+ key: "16pf9h"
20
+ }],
21
+ ["path", {
22
+ d: "m11 13.73-4 6.93",
23
+ key: "794ttg"
24
+ }],
25
+ ["path", {
26
+ d: "M12 22v-2",
27
+ key: "1osdcq"
28
+ }],
29
+ ["path", {
30
+ d: "M12 2v2",
31
+ key: "tus03m"
32
+ }],
33
+ ["path", {
34
+ d: "M14 12h8",
35
+ key: "4f43i9"
36
+ }],
37
+ ["path", {
38
+ d: "m17 20.66-1-1.73",
39
+ key: "eq3orb"
40
+ }],
41
+ ["path", {
42
+ d: "m17 3.34-1 1.73",
43
+ key: "2wel8s"
44
+ }],
45
+ ["path", {
46
+ d: "M2 12h2",
47
+ key: "1t8f8n"
48
+ }],
49
+ ["path", {
50
+ d: "m20.66 17-1.73-1",
51
+ key: "sg0v6f"
52
+ }],
53
+ ["path", {
54
+ d: "m20.66 7-1.73 1",
55
+ key: "1ow05n"
56
+ }],
57
+ ["path", {
58
+ d: "m3.34 17 1.73-1",
59
+ key: "nuk764"
60
+ }],
61
+ ["path", {
62
+ d: "m3.34 7 1.73 1",
63
+ key: "1ulond"
64
+ }],
65
+ ["circle", {
66
+ cx: "12",
67
+ cy: "12",
68
+ r: "2",
69
+ key: "1c9p78"
70
+ }],
71
+ ["circle", {
72
+ cx: "12",
73
+ cy: "12",
74
+ r: "8",
75
+ key: "46899m"
76
+ }]
77
+ ]), ae = i("file-text", [
78
+ ["path", {
79
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
80
+ key: "1oefj6"
81
+ }],
82
+ ["path", {
83
+ d: "M14 2v5a1 1 0 0 0 1 1h5",
84
+ key: "wfsgrz"
85
+ }],
86
+ ["path", {
87
+ d: "M10 9H8",
88
+ key: "b1mrlr"
89
+ }],
90
+ ["path", {
91
+ d: "M16 13H8",
92
+ key: "t4e002"
93
+ }],
94
+ ["path", {
95
+ d: "M16 17H8",
96
+ key: "z1uh3a"
97
+ }]
98
+ ]), M = /* @__PURE__ */ e(t(), 1), N = r(), P = "2026-07-28";
99
+ function oe(e) {
100
+ switch (e) {
101
+ case "v1": return "legacy";
102
+ case "v2": return { pin: P };
103
+ default: return "auto";
104
+ }
105
+ }
106
+ function F(e) {
107
+ return e === "legacy" ? "v1" : typeof e == "object" && e?.pin ? "v2" : "auto";
108
+ }
109
+ function I() {
110
+ if (typeof window > "u") return "";
111
+ let e = window.__MCP_PROXY_URL__;
112
+ return e === null ? "" : `${window.location.origin}${e || T("proxy")}`;
113
+ }
114
+ function L(e, t, n = !1) {
115
+ return e === "auto" || e === "direct" || e === "proxy" ? e : t === "Via Proxy" ? "proxy" : t === "Direct" ? "auto" : n ? "proxy" : "auto";
116
+ }
117
+ function R(e) {
118
+ return !e || typeof e == "boolean" ? "" : e.proxyAddress?.trim() || "";
119
+ }
120
+ var z = [
121
+ "requestTimeout",
122
+ "resetTimeoutOnProgress",
123
+ "maxTotalTimeout"
124
+ ];
125
+ function B(e) {
126
+ if (!e) return {};
127
+ let t = {};
128
+ for (let n of z) {
129
+ let r = e[n];
130
+ r !== void 0 && (t[n] = r);
131
+ }
132
+ return t;
133
+ }
134
+ function V(e, t) {
135
+ try {
136
+ let n = localStorage.getItem("mcp-inspector-connections"), r = n ? JSON.parse(n) : {};
137
+ r[e] = {
138
+ ...r[e],
139
+ ...t
140
+ }, localStorage.setItem("mcp-inspector-connections", JSON.stringify(r));
141
+ } catch {}
142
+ }
143
+ function H(e, t, n) {
144
+ let r = e.trim(), i = t.trim(), a = n.trim();
145
+ if (!(!r && !a)) return {
146
+ ...r ? { clientId: r } : {},
147
+ ...r && i ? { clientSecret: i } : {},
148
+ ...a ? { scope: a } : {}
149
+ };
150
+ }
151
+ function U(e) {
152
+ let t = e.headers || e.proxyConfig?.headers || e.proxyConfig?.customHeaders;
153
+ return t && Object.keys(t).length > 0 ? t : void 0;
154
+ }
155
+ function W(e) {
156
+ let t = e.proxyConfig, n = e.headers || e.customHeaders, r = t?.headers || t?.customHeaders || void 0, i = n || r, a = t ? {
157
+ ...t,
158
+ ...r ? { headers: r } : {},
159
+ customHeaders: void 0
160
+ } : void 0, { customHeaders: o, connectionType: s, transportType: c, ...l } = e;
161
+ return {
162
+ ...l,
163
+ ...i && !a?.proxyAddress ? { headers: i } : {},
164
+ ...a ? { proxyConfig: a } : {},
165
+ connectionMode: L(e.connectionMode, e.connectionType, !!a?.proxyAddress)
166
+ };
167
+ }
168
+ function G(e) {
169
+ let t = J(e), n = e.proxyConfig?.proxyAddress?.trim() || R(e.autoProxyFallback), r = L(e.connectionMode, e.connectionType, !!n), i = {
170
+ url: e.url,
171
+ displayName: e.name?.trim() || e.url,
172
+ connectionMode: r,
173
+ protocolNegotiation: e.protocolNegotiation ?? "auto",
174
+ ...e.oauth ? { oauth: e.oauth } : {}
175
+ };
176
+ return r === "proxy" && n ? i.proxyConfig = {
177
+ proxyAddress: n,
178
+ ...Object.keys(t).length > 0 ? { headers: t } : {}
179
+ } : Object.keys(t).length > 0 && (i.headers = t), r === "auto" && (i.autoProxyFallback = e.autoProxyFallback ?? (n ? {
180
+ enabled: !0,
181
+ proxyAddress: n
182
+ } : !1)), i;
183
+ }
184
+ function K(e, t) {
185
+ let n = t ? W(t) : e, r = U(e) || {}, i = n.proxyConfig?.proxyAddress?.trim() || R(n.autoProxyFallback);
186
+ return {
187
+ url: e.url || "",
188
+ name: e.displayName || e.url || "",
189
+ transportType: "http",
190
+ connectionMode: L(n.connectionMode, void 0, !!i),
191
+ connectionType: n.connectionMode === "proxy" ? "Via Proxy" : "Direct",
192
+ proxyConfig: n.connectionMode === "proxy" && i ? {
193
+ proxyAddress: i,
194
+ ...Object.keys(r).length > 0 ? { headers: r } : {}
195
+ } : void 0,
196
+ headers: r,
197
+ oauth: n.oauth,
198
+ autoProxyFallback: n.autoProxyFallback,
199
+ protocolNegotiation: n.protocolNegotiation ?? "auto",
200
+ ...B(t)
201
+ };
202
+ }
203
+ function q(e) {
204
+ try {
205
+ let t = localStorage.getItem("mcp-inspector-connections");
206
+ return t && JSON.parse(t)[e] || null;
207
+ } catch {
208
+ return null;
209
+ }
210
+ }
211
+ function J(e) {
212
+ let t = e.proxyConfig?.headers || e.proxyConfig?.customHeaders || e.headers || e.customHeaders || {};
213
+ return Object.fromEntries(Object.entries(t).filter(([e, t]) => e && t).map(([e, t]) => [e, String(t)]).sort(([e], [t]) => e.localeCompare(t)));
214
+ }
215
+ function Y(e) {
216
+ let t = e.url?.trim() || "", n = e.proxyConfig?.proxyAddress?.trim() || R(e.autoProxyFallback);
217
+ return {
218
+ url: t,
219
+ name: e.name?.trim() || t,
220
+ transportType: e.transportType || "http",
221
+ proxyAddress: n,
222
+ connectionMode: L(e.connectionMode, e.connectionType, !!n),
223
+ headers: J(e),
224
+ oauthClientId: e.oauth?.clientId?.trim() || "",
225
+ oauthClientSecret: e.oauth?.clientSecret?.trim() || "",
226
+ oauthScope: e.oauth?.scope?.trim() || "",
227
+ requestTimeout: "requestTimeout" in e ? e.requestTimeout : void 0,
228
+ resetTimeoutOnProgress: "resetTimeoutOnProgress" in e ? e.resetTimeoutOnProgress : void 0,
229
+ maxTotalTimeout: "maxTotalTimeout" in e ? e.maxTotalTimeout : void 0,
230
+ protocolMode: F(e.protocolNegotiation)
231
+ };
232
+ }
233
+ function X(e, t) {
234
+ let n = Y(e), r = Y(t);
235
+ return n.url === r.url && n.transportType === r.transportType && n.proxyAddress === r.proxyAddress && n.connectionMode === r.connectionMode && JSON.stringify(n.headers) === JSON.stringify(r.headers) && n.oauthClientId === r.oauthClientId && n.oauthClientSecret === r.oauthClientSecret && n.oauthScope === r.oauthScope && n.requestTimeout === r.requestTimeout && n.resetTimeoutOnProgress === r.resetTimeoutOnProgress && n.maxTotalTimeout === r.maxTotalTimeout && n.protocolMode === r.protocolMode && n.name !== r.name;
236
+ }
237
+ var se = class extends w {
238
+ setServers(e) {
239
+ let t = this.readRawStoredServers(), n = Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
240
+ ...B(t[e]),
241
+ ...n,
242
+ ...re(e) && typeof n.url == "string" && ne(n.url) ? { url: e } : {}
243
+ }]));
244
+ super.setServers(n);
245
+ }
246
+ setServer(e, t) {
247
+ let n = this.getServers();
248
+ n[e] = {
249
+ ...B(this.readRawStoredServers()[e]),
250
+ ...t
251
+ }, this.setServers(n);
252
+ }
253
+ readRawStoredServers() {
254
+ try {
255
+ let e = localStorage.getItem("mcp-inspector-connections");
256
+ return e ? JSON.parse(e) : {};
257
+ } catch {
258
+ return {};
259
+ }
260
+ }
261
+ };
262
+ //#endregion
263
+ //#region src/client/components/CustomHeadersEditor.tsx
264
+ function ce({ headers: e, onChange: t, onSave: r, className: i, title: c = "Custom Headers", description: l = "Headers with both name and value will be sent", maxHeaders: u = 50 }) {
265
+ let [d, f] = (0, M.useState)({}), [p, m] = (0, M.useState)(null), h = (0, M.useRef)({});
266
+ (0, M.useEffect)(() => {
267
+ p && h.current[p] && (h.current[p]?.focus(), m(null));
268
+ }, [p, e]);
269
+ let g = () => Math.random().toString(36).slice(2, 11), _ = () => {
270
+ if (e.length >= u) return;
271
+ let n = {
272
+ id: g(),
273
+ name: "",
274
+ value: ""
275
+ };
276
+ t([...e, n]);
277
+ }, v = (n) => {
278
+ t(e.filter((e) => e.id !== n));
279
+ }, b = (n, r, i) => {
280
+ t(e.map((e) => e.id === n ? {
281
+ ...e,
282
+ [r]: i
283
+ } : e));
284
+ }, ee = (e) => {
285
+ f((t) => ({
286
+ ...t,
287
+ [e]: !t[e]
288
+ }));
289
+ };
290
+ return /* @__PURE__ */ (0, N.jsxs)("div", {
291
+ className: a("space-y-3", i),
292
+ children: [
293
+ /* @__PURE__ */ (0, N.jsxs)("div", {
294
+ className: "space-y-2",
295
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
296
+ className: "text-base font-medium",
297
+ children: c
298
+ }), /* @__PURE__ */ (0, N.jsx)("p", {
299
+ className: "text-sm text-muted-foreground",
300
+ children: l
301
+ })]
302
+ }),
303
+ /* @__PURE__ */ (0, N.jsxs)("div", {
304
+ className: "space-y-2",
305
+ children: [
306
+ /* @__PURE__ */ (0, N.jsxs)("div", {
307
+ className: "grid grid-cols-[1fr_1fr] gap-4 text-sm font-medium text-muted-foreground",
308
+ children: [/* @__PURE__ */ (0, N.jsx)("div", { children: "Name" }), /* @__PURE__ */ (0, N.jsx)("div", { children: "Value" })]
309
+ }),
310
+ e.length === 0 ? /* @__PURE__ */ (0, N.jsxs)("div", {
311
+ className: "grid grid-cols-[1fr_1fr] gap-4 items-center",
312
+ children: [/* @__PURE__ */ (0, N.jsx)(n, {
313
+ placeholder: "Authorization",
314
+ value: "",
315
+ onChange: (e) => {
316
+ if (e.target.value.trim()) {
317
+ let n = g();
318
+ t([{
319
+ id: n,
320
+ name: e.target.value,
321
+ value: ""
322
+ }]), m(n);
323
+ }
324
+ },
325
+ className: "text-sm",
326
+ autoComplete: "off"
327
+ }), /* @__PURE__ */ (0, N.jsxs)("div", {
328
+ className: "flex items-center gap-2",
329
+ children: [
330
+ /* @__PURE__ */ (0, N.jsx)(n, {
331
+ placeholder: "Bearer token...",
332
+ value: "",
333
+ onChange: () => {},
334
+ type: "password",
335
+ className: "font-mono text-sm",
336
+ autoComplete: "off",
337
+ disabled: !0
338
+ }),
339
+ /* @__PURE__ */ (0, N.jsx)(o, {
340
+ type: "button",
341
+ variant: "ghost",
342
+ size: "icon-sm",
343
+ className: "h-8 w-8 p-0",
344
+ disabled: !0,
345
+ children: /* @__PURE__ */ (0, N.jsx)(S, { className: "h-4 w-4" })
346
+ }),
347
+ /* @__PURE__ */ (0, N.jsx)(o, {
348
+ type: "button",
349
+ variant: "ghost",
350
+ size: "icon-sm",
351
+ className: "h-8 w-8 p-0",
352
+ disabled: !0,
353
+ children: /* @__PURE__ */ (0, N.jsx)(C, { className: "h-4 w-4" })
354
+ })
355
+ ]
356
+ })]
357
+ }) : e.map((e) => /* @__PURE__ */ (0, N.jsxs)("div", {
358
+ className: "grid grid-cols-[1fr_1fr] gap-4 items-center",
359
+ children: [/* @__PURE__ */ (0, N.jsx)(n, {
360
+ ref: (t) => {
361
+ h.current[e.id] = t;
362
+ },
363
+ placeholder: "Authorization",
364
+ value: e.name,
365
+ onChange: (t) => b(e.id, "name", t.target.value),
366
+ className: "text-sm",
367
+ autoComplete: "off"
368
+ }), /* @__PURE__ */ (0, N.jsxs)("div", {
369
+ className: "flex items-center gap-2",
370
+ children: [
371
+ /* @__PURE__ */ (0, N.jsx)(n, {
372
+ placeholder: "",
373
+ value: e.value,
374
+ onChange: (t) => b(e.id, "value", t.target.value),
375
+ type: d[e.id] ? "text" : "password",
376
+ className: "font-mono text-sm",
377
+ autoComplete: "off"
378
+ }),
379
+ /* @__PURE__ */ (0, N.jsx)(o, {
380
+ type: "button",
381
+ variant: "ghost",
382
+ size: "icon-sm",
383
+ onClick: () => ee(e.id),
384
+ className: "h-8 w-8 p-0",
385
+ children: d[e.id] ? /* @__PURE__ */ (0, N.jsx)(x, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, N.jsx)(S, { className: "h-4 w-4" })
386
+ }),
387
+ /* @__PURE__ */ (0, N.jsx)(o, {
388
+ type: "button",
389
+ variant: "ghost",
390
+ size: "icon-sm",
391
+ onClick: () => v(e.id),
392
+ className: "h-8 w-8 p-0",
393
+ children: /* @__PURE__ */ (0, N.jsx)(C, { className: "h-4 w-4" })
394
+ })
395
+ ]
396
+ })]
397
+ }, e.id)),
398
+ /* @__PURE__ */ (0, N.jsx)("div", {
399
+ className: "flex justify-start mt-4",
400
+ children: /* @__PURE__ */ (0, N.jsxs)(o, {
401
+ type: "button",
402
+ variant: "outline",
403
+ size: "sm",
404
+ onClick: _,
405
+ disabled: e.length >= u,
406
+ className: "flex items-center gap-2",
407
+ children: [/* @__PURE__ */ (0, N.jsx)(y, { className: "h-4 w-4" }), "Add"]
408
+ })
409
+ })
410
+ ]
411
+ }),
412
+ r && /* @__PURE__ */ (0, N.jsx)("div", {
413
+ className: "flex justify-end",
414
+ children: /* @__PURE__ */ (0, N.jsx)(o, {
415
+ type: "button",
416
+ onClick: r,
417
+ className: "bg-black text-white hover:bg-gray-800",
418
+ children: "Save"
419
+ })
420
+ })
421
+ ]
422
+ });
423
+ }
424
+ //#endregion
425
+ //#region src/client/components/ConnectionSettingsForm.tsx
426
+ function le({ alias: e, setAlias: t, url: r, setUrl: i, connectionMode: y, setConnectionMode: x, protocolMode: S, setProtocolMode: C, customHeaders: w, setCustomHeaders: T, requestTimeout: ne, setRequestTimeout: re, resetTimeoutOnProgress: P, setResetTimeoutOnProgress: I, maxTotalTimeout: R, setMaxTotalTimeout: z, proxyAddress: B, setProxyAddress: V, clientId: H, setClientId: U, clientSecret: W, setClientSecret: G, scope: K, setScope: q, onConnect: J, onSave: Y, onCancel: X, variant: se = "default", showConnectButton: le = !1, showSaveButton: ue = !1, showExportButton: de = !1, isConnecting: fe = !1, inlineSections: Z = !1, cardSections: Q = !1 }) {
427
+ let [pe, me] = (0, M.useState)(!1), [he, ge] = (0, M.useState)(!1), [_e, ve] = (0, M.useState)(!1), ye = (0, M.useRef)(!1), be = async () => {
428
+ if (!r.trim()) {
429
+ E.error("Please enter a URL first");
430
+ return;
431
+ }
432
+ let t = {
433
+ url: r,
434
+ ...e.trim() ? { name: e.trim() } : {},
435
+ transportType: "http",
436
+ connectionMode: y,
437
+ protocolNegotiation: oe(S),
438
+ connectionType: y === "proxy" ? "Via Proxy" : "Direct",
439
+ proxyConfig: y === "proxy" && B.trim() ? {
440
+ proxyAddress: B.trim(),
441
+ customHeaders: w.reduce((e, t) => (t.name && t.value && (e[t.name] = t.value), e), {})
442
+ } : void 0,
443
+ autoProxyFallback: y === "auto" && B.trim() ? {
444
+ enabled: !0,
445
+ proxyAddress: B.trim()
446
+ } : void 0,
447
+ customHeaders: w.reduce((e, t) => (t.name && t.value && (e[t.name] = t.value), e), {}),
448
+ requestTimeout: Number.parseInt(ne, 10),
449
+ resetTimeoutOnProgress: P === "True",
450
+ maxTotalTimeout: Number.parseInt(R, 10),
451
+ oauth: H || K ? {
452
+ clientId: H,
453
+ ...H && W ? { clientSecret: W } : {},
454
+ scope: K
455
+ } : void 0
456
+ };
457
+ try {
458
+ await te(JSON.stringify(t, null, 2)), E.success("Configuration copied to clipboard");
459
+ } catch {
460
+ E.error("Failed to copy configuration to clipboard");
461
+ }
462
+ }, $ = se === "styled", xe = $ ? "bg-white/10 border-white/20 text-white placeholder:text-white/50" : "", Se = $ ? "text-white/90" : "", Ce = $ ? "bg-white/10 border-white/20 text-white hover:bg-white/20" : "", we = async (e) => {
463
+ let n = e.clipboardData.getData("text");
464
+ try {
465
+ let r = JSON.parse(n);
466
+ if (r.url && typeof r.url == "string") {
467
+ e.preventDefault(), i(r.url), t(typeof r.name == "string" && r.name !== r.url ? r.name : "");
468
+ let n = r.proxyConfig?.proxyAddress || (typeof r.autoProxyFallback == "object" ? r.autoProxyFallback.proxyAddress : void 0);
469
+ x(L(r.connectionMode, r.connectionType, !!n)), C(F(r.protocolNegotiation)), n && V(n);
470
+ let a = r.proxyConfig?.customHeaders || r.proxyConfig?.headers || r.customHeaders || r.headers || {};
471
+ Object.keys(a).length > 0 && T(Object.entries(a).map(([e, t], n) => ({
472
+ id: `header-${n}`,
473
+ name: e,
474
+ value: String(t)
475
+ }))), r.requestTimeout && re(String(r.requestTimeout)), r.resetTimeoutOnProgress !== void 0 && I(r.resetTimeoutOnProgress ? "True" : "False"), r.maxTotalTimeout && z(String(r.maxTotalTimeout)), r.oauth && (U(r.oauth.clientId || ""), G(r.oauth.clientSecret || ""), q(r.oauth.scope || "")), E.success("Configuration pasted and form populated");
476
+ }
477
+ } catch {}
478
+ }, Te = (e) => {
479
+ ye.current || e.nativeEvent.isComposing || e.keyCode === 229 || e.key === "Enter" && !e.shiftKey && !e.metaKey && !e.ctrlKey && e.target.tagName !== "TEXTAREA" && (e.preventDefault(), J && r.trim() && J());
480
+ }, Ee = /* @__PURE__ */ (0, N.jsxs)("div", {
481
+ className: "grid gap-4 sm:grid-cols-2",
482
+ children: [
483
+ !Q && /* @__PURE__ */ (0, N.jsx)("h4", {
484
+ className: "text-sm font-medium sm:col-span-2",
485
+ children: "OAuth 2.0"
486
+ }),
487
+ /* @__PURE__ */ (0, N.jsxs)("div", {
488
+ className: "space-y-2",
489
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
490
+ className: "text-sm",
491
+ children: "Client ID"
492
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
493
+ "data-testid": "auth-dialog-client-id-input",
494
+ placeholder: "Client ID",
495
+ value: H,
496
+ onChange: (e) => U(e.target.value)
497
+ })]
498
+ }),
499
+ /* @__PURE__ */ (0, N.jsxs)("div", {
500
+ className: "space-y-2",
501
+ children: [
502
+ /* @__PURE__ */ (0, N.jsx)(s, {
503
+ className: "text-sm",
504
+ children: "Client Secret"
505
+ }),
506
+ /* @__PURE__ */ (0, N.jsx)(n, {
507
+ "data-testid": "auth-dialog-client-secret-input",
508
+ type: "password",
509
+ placeholder: "Client Secret (optional)",
510
+ value: W,
511
+ onChange: (e) => G(e.target.value)
512
+ }),
513
+ /* @__PURE__ */ (0, N.jsx)("p", {
514
+ className: "text-xs text-muted-foreground",
515
+ children: "Stored in your browser's localStorage."
516
+ })
517
+ ]
518
+ }),
519
+ /* @__PURE__ */ (0, N.jsxs)("div", {
520
+ className: "space-y-2 sm:col-span-2",
521
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
522
+ className: "text-sm",
523
+ children: "Scope"
524
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
525
+ "data-testid": "auth-dialog-scope-input",
526
+ placeholder: "Scope (space-separated)",
527
+ value: K,
528
+ onChange: (e) => q(e.target.value)
529
+ })]
530
+ })
531
+ ]
532
+ }), De = /* @__PURE__ */ (0, N.jsx)(ce, {
533
+ title: /* @__PURE__ */ (0, N.jsx)(N.Fragment, {}),
534
+ headers: w,
535
+ onChange: T
536
+ }), Oe = /* @__PURE__ */ (0, N.jsxs)("div", {
537
+ className: "grid gap-4 sm:grid-cols-2",
538
+ children: [
539
+ /* @__PURE__ */ (0, N.jsxs)("div", {
540
+ className: "space-y-2",
541
+ children: [
542
+ /* @__PURE__ */ (0, N.jsx)(s, {
543
+ className: "text-sm",
544
+ children: "Connection Mode"
545
+ }),
546
+ /* @__PURE__ */ (0, N.jsxs)(f, {
547
+ value: y,
548
+ onValueChange: (e) => x(e),
549
+ children: [/* @__PURE__ */ (0, N.jsx)(l, {
550
+ className: "w-full",
551
+ "data-testid": "config-dialog-connection-mode-select",
552
+ children: /* @__PURE__ */ (0, N.jsx)(c, {})
553
+ }), /* @__PURE__ */ (0, N.jsxs)(u, { children: [
554
+ /* @__PURE__ */ (0, N.jsx)(d, {
555
+ value: "auto",
556
+ children: "Auto"
557
+ }),
558
+ /* @__PURE__ */ (0, N.jsx)(d, {
559
+ value: "direct",
560
+ children: "Direct"
561
+ }),
562
+ /* @__PURE__ */ (0, N.jsx)(d, {
563
+ value: "proxy",
564
+ children: "Proxy"
565
+ })
566
+ ] })]
567
+ }),
568
+ /* @__PURE__ */ (0, N.jsx)("p", {
569
+ className: "text-xs text-muted-foreground",
570
+ children: "Auto tries a direct connection first and falls back to the proxy. Direct bypasses the proxy; Proxy always routes through it."
571
+ })
572
+ ]
573
+ }),
574
+ /* @__PURE__ */ (0, N.jsxs)("div", {
575
+ className: "space-y-2",
576
+ children: [
577
+ /* @__PURE__ */ (0, N.jsx)(s, {
578
+ className: "text-sm",
579
+ children: "Protocol"
580
+ }),
581
+ /* @__PURE__ */ (0, N.jsxs)(f, {
582
+ value: S,
583
+ onValueChange: (e) => C(e),
584
+ children: [/* @__PURE__ */ (0, N.jsx)(l, {
585
+ className: "w-full",
586
+ "data-testid": "config-dialog-protocol-mode-select",
587
+ children: /* @__PURE__ */ (0, N.jsx)(c, {})
588
+ }), /* @__PURE__ */ (0, N.jsxs)(u, { children: [
589
+ /* @__PURE__ */ (0, N.jsx)(d, {
590
+ value: "auto",
591
+ children: "Auto (recommended)"
592
+ }),
593
+ /* @__PURE__ */ (0, N.jsx)(d, {
594
+ value: "v1",
595
+ children: "Force v1 (2024/2025)"
596
+ }),
597
+ /* @__PURE__ */ (0, N.jsx)(d, {
598
+ value: "v2",
599
+ children: "Force v2 (2026-07-28)"
600
+ })
601
+ ] })]
602
+ }),
603
+ /* @__PURE__ */ (0, N.jsx)("p", {
604
+ className: "text-xs text-muted-foreground",
605
+ children: "Auto probes for v2 and falls back to the legacy v1 initialize flow. Forced modes fail when the server is incompatible."
606
+ })
607
+ ]
608
+ }),
609
+ /* @__PURE__ */ (0, N.jsxs)("div", {
610
+ className: "space-y-2",
611
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
612
+ className: "text-sm",
613
+ children: "Proxy Endpoint"
614
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
615
+ "data-testid": "config-dialog-proxy-address-input",
616
+ value: B,
617
+ onChange: (e) => V(e.target.value)
618
+ })]
619
+ }),
620
+ /* @__PURE__ */ (0, N.jsxs)("div", {
621
+ className: "space-y-2",
622
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
623
+ className: "text-sm",
624
+ children: "Request Timeout"
625
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
626
+ "data-testid": "config-dialog-request-timeout-input",
627
+ type: "number",
628
+ value: ne,
629
+ onChange: (e) => re(e.target.value)
630
+ })]
631
+ }),
632
+ /* @__PURE__ */ (0, N.jsxs)("div", {
633
+ className: "space-y-2",
634
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
635
+ className: "text-sm",
636
+ children: "Maximum Total Timeout"
637
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
638
+ "data-testid": "config-dialog-max-timeout-input",
639
+ type: "number",
640
+ value: R,
641
+ onChange: (e) => z(e.target.value)
642
+ })]
643
+ }),
644
+ /* @__PURE__ */ (0, N.jsxs)("div", {
645
+ className: "space-y-2",
646
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
647
+ className: "text-sm",
648
+ children: "Reset Timeout on Progress"
649
+ }), /* @__PURE__ */ (0, N.jsxs)(f, {
650
+ value: P,
651
+ onValueChange: I,
652
+ children: [/* @__PURE__ */ (0, N.jsx)(l, {
653
+ className: "w-full",
654
+ "data-testid": "config-dialog-reset-timeout-select",
655
+ children: /* @__PURE__ */ (0, N.jsx)(c, {})
656
+ }), /* @__PURE__ */ (0, N.jsxs)(u, { children: [/* @__PURE__ */ (0, N.jsx)(d, {
657
+ value: "True",
658
+ children: "True"
659
+ }), /* @__PURE__ */ (0, N.jsx)(d, {
660
+ value: "False",
661
+ children: "False"
662
+ })] })]
663
+ })]
664
+ })
665
+ ]
666
+ }), ke = /* @__PURE__ */ (0, N.jsxs)("div", {
667
+ className: Z || Q ? "grid gap-4 sm:grid-cols-2" : "space-y-4",
668
+ children: [/* @__PURE__ */ (0, N.jsxs)("div", {
669
+ className: "space-y-2",
670
+ children: [/* @__PURE__ */ (0, N.jsx)(s, {
671
+ className: Se,
672
+ children: "Alias"
673
+ }), /* @__PURE__ */ (0, N.jsx)(n, {
674
+ "data-testid": "connection-form-alias-input",
675
+ placeholder: "Optional server alias",
676
+ value: e,
677
+ onChange: (e) => t(e.target.value),
678
+ className: xe
679
+ })]
680
+ }), /* @__PURE__ */ (0, N.jsxs)("div", {
681
+ className: "space-y-2",
682
+ children: [
683
+ /* @__PURE__ */ (0, N.jsx)(s, {
684
+ className: Se,
685
+ children: "URL"
686
+ }),
687
+ /* @__PURE__ */ (0, N.jsx)(n, {
688
+ "data-testid": "connection-form-url-input",
689
+ placeholder: "http://localhost:3000",
690
+ value: r,
691
+ onChange: (e) => i(e.target.value),
692
+ onPaste: we,
693
+ className: xe
694
+ }),
695
+ /* @__PURE__ */ (0, N.jsx)("p", {
696
+ className: a("text-xs text-muted-foreground", $ ? "text-white/60" : ""),
697
+ children: "Tip: You can paste a copied connection config (JSON) to auto-populate the form"
698
+ })
699
+ ]
700
+ })]
701
+ }), Ae = {
702
+ onCompositionStart: () => {
703
+ ye.current = !0;
704
+ },
705
+ onCompositionEnd: () => {
706
+ ye.current = !1;
707
+ },
708
+ onKeyDown: Te
709
+ }, je = de ? /* @__PURE__ */ (0, N.jsxs)(o, {
710
+ "data-testid": "connection-form-copy-config-button",
711
+ variant: "ghost",
712
+ onClick: be,
713
+ className: a($ ? "absolute top-0 right-0 z-10 text-white hover:bg-white/20 dark:hover:bg-white/20" : "w-full", !$ && "mb-2"),
714
+ children: [/* @__PURE__ */ (0, N.jsx)(ee, { className: "mr-2 h-4 w-4" }), "Copy Config"]
715
+ }) : null;
716
+ return Z && Q ? /* @__PURE__ */ (0, N.jsxs)("div", {
717
+ className: "relative space-y-6 @container",
718
+ ...Ae,
719
+ children: [
720
+ je,
721
+ /* @__PURE__ */ (0, N.jsxs)(j, {
722
+ className: "border",
723
+ children: [/* @__PURE__ */ (0, N.jsxs)(O, { children: [/* @__PURE__ */ (0, N.jsx)(D, {
724
+ className: "text-base font-medium",
725
+ children: "Endpoint"
726
+ }), /* @__PURE__ */ (0, N.jsx)(A, { children: "MCP server URL and display alias" })] }), /* @__PURE__ */ (0, N.jsx)(k, {
727
+ className: "pt-0",
728
+ children: ke
729
+ })]
730
+ }),
731
+ /* @__PURE__ */ (0, N.jsxs)(j, {
732
+ className: "border",
733
+ children: [/* @__PURE__ */ (0, N.jsxs)(O, { children: [/* @__PURE__ */ (0, N.jsx)(D, {
734
+ className: "text-base font-medium",
735
+ children: "Authentication"
736
+ }), /* @__PURE__ */ (0, N.jsx)(A, { children: "OAuth 2.0 client credentials" })] }), /* @__PURE__ */ (0, N.jsx)(k, {
737
+ className: "pt-0",
738
+ children: Ee
739
+ })]
740
+ }),
741
+ /* @__PURE__ */ (0, N.jsxs)(j, {
742
+ className: "border",
743
+ children: [/* @__PURE__ */ (0, N.jsxs)(O, { children: [/* @__PURE__ */ (0, N.jsx)(D, {
744
+ className: "text-base font-medium",
745
+ children: "Custom Headers"
746
+ }), /* @__PURE__ */ (0, N.jsx)(A, { children: "Extra HTTP headers sent with MCP requests" })] }), /* @__PURE__ */ (0, N.jsx)(k, {
747
+ className: "pt-0",
748
+ children: De
749
+ })]
750
+ }),
751
+ /* @__PURE__ */ (0, N.jsxs)(j, {
752
+ className: "border",
753
+ children: [/* @__PURE__ */ (0, N.jsxs)(O, { children: [/* @__PURE__ */ (0, N.jsx)(D, {
754
+ className: "text-base font-medium",
755
+ children: "Configuration"
756
+ }), /* @__PURE__ */ (0, N.jsx)(A, { children: "Connection mode, proxy, and request timeouts" })] }), /* @__PURE__ */ (0, N.jsx)(k, {
757
+ className: "pt-0",
758
+ children: Oe
759
+ })]
760
+ })
761
+ ]
762
+ }) : /* @__PURE__ */ (0, N.jsxs)("div", {
763
+ className: "relative space-y-4 @container",
764
+ ...Ae,
765
+ children: [
766
+ !Z && /* @__PURE__ */ (0, N.jsx)("h3", {
767
+ className: "mb-4 text-xl font-semibold text-white",
768
+ children: "Connect"
769
+ }),
770
+ je,
771
+ ke,
772
+ Z && !Q && /* @__PURE__ */ (0, N.jsxs)("div", {
773
+ className: "space-y-8 pt-2",
774
+ children: [
775
+ /* @__PURE__ */ (0, N.jsxs)("section", {
776
+ className: "space-y-4",
777
+ children: [/* @__PURE__ */ (0, N.jsx)("h3", {
778
+ className: "text-xs font-medium uppercase tracking-wide text-muted-foreground",
779
+ children: "Authentication"
780
+ }), Ee]
781
+ }),
782
+ /* @__PURE__ */ (0, N.jsxs)("section", {
783
+ className: "space-y-4",
784
+ children: [/* @__PURE__ */ (0, N.jsx)("h3", {
785
+ className: "text-xs font-medium uppercase tracking-wide text-muted-foreground",
786
+ children: "Custom Headers"
787
+ }), De]
788
+ }),
789
+ /* @__PURE__ */ (0, N.jsxs)("section", {
790
+ className: "space-y-4",
791
+ children: [/* @__PURE__ */ (0, N.jsx)("h3", {
792
+ className: "text-xs font-medium uppercase tracking-wide text-muted-foreground",
793
+ children: "Configuration"
794
+ }), Oe]
795
+ })
796
+ ]
797
+ }),
798
+ !Z && /* @__PURE__ */ (0, N.jsxs)("div", {
799
+ className: "flex flex-row gap-3 @lg:flex-col",
800
+ children: [
801
+ /* @__PURE__ */ (0, N.jsxs)(v, {
802
+ open: he,
803
+ onOpenChange: ge,
804
+ children: [/* @__PURE__ */ (0, N.jsx)(m, {
805
+ render: /* @__PURE__ */ (0, N.jsx)("div", {
806
+ className: "relative flex-1 ",
807
+ children: /* @__PURE__ */ (0, N.jsxs)(o, {
808
+ "data-testid": "connection-form-auth-button",
809
+ variant: "outline",
810
+ className: a((H || W || K) && "border-2", "w-full justify-center hover:text-white cursor-pointer", Ce),
811
+ children: [/* @__PURE__ */ (0, N.jsx)(b, { className: "w-4 h-4 mr-0" }), "Authentication"]
812
+ })
813
+ }),
814
+ nativeButton: !1
815
+ }), /* @__PURE__ */ (0, N.jsxs)(_, {
816
+ scrollable: !0,
817
+ className: "w-[calc(100vw-2rem)] sm:w-full max-w-2xl max-h-[80vh]",
818
+ children: [/* @__PURE__ */ (0, N.jsx)(g, { children: /* @__PURE__ */ (0, N.jsx)(p, { children: "Authentication" }) }), /* @__PURE__ */ (0, N.jsxs)(h, {
819
+ className: "space-y-4",
820
+ children: [Ee, /* @__PURE__ */ (0, N.jsx)("div", {
821
+ className: "flex justify-end",
822
+ children: /* @__PURE__ */ (0, N.jsx)(o, {
823
+ onClick: () => ge(!1),
824
+ children: "Save"
825
+ })
826
+ })]
827
+ })]
828
+ })]
829
+ }),
830
+ /* @__PURE__ */ (0, N.jsxs)(v, {
831
+ open: pe,
832
+ onOpenChange: me,
833
+ children: [/* @__PURE__ */ (0, N.jsx)(m, {
834
+ render: /* @__PURE__ */ (0, N.jsx)("div", {
835
+ className: "relative flex-1 ",
836
+ children: /* @__PURE__ */ (0, N.jsxs)(o, {
837
+ "data-testid": "connection-form-headers-button",
838
+ variant: "outline",
839
+ className: a("w-full justify-center hover:text-white cursor-pointer", Ce),
840
+ children: [/* @__PURE__ */ (0, N.jsx)(ae, { className: "w-4 h-4" }), "Custom Headers"]
841
+ })
842
+ }),
843
+ nativeButton: !1
844
+ }), /* @__PURE__ */ (0, N.jsxs)(_, {
845
+ scrollable: !0,
846
+ className: "w-full max-w-2xl max-h-[80vh]",
847
+ children: [/* @__PURE__ */ (0, N.jsx)(g, { children: /* @__PURE__ */ (0, N.jsx)(p, { children: "Custom Headers" }) }), /* @__PURE__ */ (0, N.jsx)(h, { children: /* @__PURE__ */ (0, N.jsx)(ce, {
848
+ title: /* @__PURE__ */ (0, N.jsx)(N.Fragment, {}),
849
+ headers: w,
850
+ onChange: T,
851
+ onSave: () => me(!1)
852
+ }) })]
853
+ })]
854
+ }),
855
+ /* @__PURE__ */ (0, N.jsxs)(v, {
856
+ open: _e,
857
+ onOpenChange: ve,
858
+ children: [/* @__PURE__ */ (0, N.jsx)(m, {
859
+ render: /* @__PURE__ */ (0, N.jsxs)(o, {
860
+ "data-testid": "connection-form-config-button",
861
+ variant: "outline",
862
+ className: a("flex-1 justify-center hover:text-white cursor-pointer", Ce),
863
+ children: [/* @__PURE__ */ (0, N.jsx)(ie, { className: "w-4 h-4" }), "Configuration"]
864
+ }),
865
+ nativeButton: !0
866
+ }), /* @__PURE__ */ (0, N.jsxs)(_, {
867
+ scrollable: !0,
868
+ className: "w-full max-w-2xl max-h-[80vh]",
869
+ children: [/* @__PURE__ */ (0, N.jsx)(g, { children: /* @__PURE__ */ (0, N.jsx)(p, { children: "Configuration" }) }), /* @__PURE__ */ (0, N.jsxs)(h, {
870
+ className: "space-y-4",
871
+ children: [Oe, /* @__PURE__ */ (0, N.jsx)("div", {
872
+ className: "flex justify-end",
873
+ children: /* @__PURE__ */ (0, N.jsx)(o, {
874
+ onClick: () => ve(!1),
875
+ children: "Save"
876
+ })
877
+ })]
878
+ })]
879
+ })]
880
+ })
881
+ ]
882
+ }),
883
+ le && /* @__PURE__ */ (0, N.jsx)(o, {
884
+ "data-testid": "connection-form-connect-button",
885
+ onClick: J,
886
+ disabled: !r.trim() || fe,
887
+ size: $ ? "lg" : void 0,
888
+ className: a("w-full font-semibold", $ ? "rounded-full text-black [&_[aria-hidden]]:bg-white hover:[&_[aria-hidden]]:bg-white/90 group-active:[&_[aria-hidden]]:bg-white/80" : ""),
889
+ children: fe ? /* @__PURE__ */ (0, N.jsxs)(N.Fragment, { children: [/* @__PURE__ */ (0, N.jsx)("svg", {
890
+ className: "w-4 h-4 mr-2 animate-spin",
891
+ fill: "none",
892
+ stroke: "currentColor",
893
+ viewBox: "0 0 24 24",
894
+ children: /* @__PURE__ */ (0, N.jsx)("path", {
895
+ strokeLinecap: "round",
896
+ strokeLinejoin: "round",
897
+ strokeWidth: 2,
898
+ d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
899
+ })
900
+ }), "Connecting..."] }) : /* @__PURE__ */ (0, N.jsxs)(N.Fragment, { children: [/* @__PURE__ */ (0, N.jsx)("svg", {
901
+ className: "w-4 h-4 mr-2",
902
+ fill: "none",
903
+ stroke: "currentColor",
904
+ viewBox: "0 0 24 24",
905
+ children: /* @__PURE__ */ (0, N.jsx)("path", {
906
+ strokeLinecap: "round",
907
+ strokeLinejoin: "round",
908
+ strokeWidth: 2,
909
+ d: "M13 10V3L4 14h7v7l9-11h-7z"
910
+ })
911
+ }), "Connect"] })
912
+ }),
913
+ ue && /* @__PURE__ */ (0, N.jsxs)("div", {
914
+ className: "flex justify-end gap-2",
915
+ children: [X && /* @__PURE__ */ (0, N.jsx)(o, {
916
+ variant: "outline",
917
+ onClick: X,
918
+ children: "Cancel"
919
+ }), /* @__PURE__ */ (0, N.jsx)(o, {
920
+ "data-testid": "connection-form-save-button",
921
+ onClick: Y,
922
+ children: "Save Connection Options"
923
+ })]
924
+ })
925
+ ]
926
+ });
927
+ }
928
+ //#endregion
929
+ export { U as a, L as c, V as d, K as f, I as i, F as l, ae as m, se as n, q as o, G as p, H as r, X as s, le as t, oe as u };