@mcp-use/inspector 12.0.4-canary.0 → 20.0.0-beta.0

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 (816) hide show
  1. package/README.md +39 -6
  2. package/dist/cdn/AnimatePresence-B4HhIdgq.js +393 -0
  3. package/dist/cdn/ChatTab-5ya_YTFV.js +13218 -0
  4. package/dist/cdn/CheckboxIndicator-BF2cKfbA.js +251 -0
  5. package/dist/cdn/ConnectionSettingsForm-iwNW86ZU.js +873 -0
  6. package/dist/cdn/ConnectionSettingsTab-CeK83dxn.js +145 -0
  7. package/dist/cdn/ElicitationTab-upPXq2q7.js +654 -0
  8. package/dist/cdn/FormContext-Cl51-7O7.js +135 -0
  9. package/dist/cdn/InspectorContext-DzXtgyTx.js +143 -0
  10. package/dist/cdn/JSONDisplay-D3RcyO9z.js +324 -0
  11. package/dist/cdn/ListTabHeader-8lULn-90.js +88 -0
  12. package/dist/cdn/ManufactOAuthCallback-DEM8mhWD.js +31 -0
  13. package/dist/cdn/NotificationsTab-CWopTIzT.js +290 -0
  14. package/dist/cdn/OAuthCallback-BxuOVgdb.js +58 -0
  15. package/dist/cdn/PromptsTab-Cspfnl6n.js +4400 -0
  16. package/dist/cdn/ResourcesTab-BczUMFil.js +584 -0
  17. package/dist/cdn/SamplingTab-6u5s845G.js +658 -0
  18. package/dist/cdn/ServerMetadataTab-DS0eiyyD.js +244 -0
  19. package/dist/cdn/StatusIcon-BGXOEU2u.js +66 -0
  20. package/dist/cdn/ToolsTab-CUhwP4rZ.js +2067 -0
  21. package/dist/cdn/ViewPreview-CxJc1Kht.js +237 -0
  22. package/dist/cdn/WidgetDebugContext-D4usL_MA.js +324 -0
  23. package/dist/cdn/WidgetWrapper-BJJtLqMb.js +2211 -0
  24. package/dist/cdn/apple-touch-icon.png +0 -0
  25. package/dist/cdn/basePath-B8HuhIMu.js +25 -0
  26. package/dist/cdn/bell-CGjAO_0s.js +10 -0
  27. package/dist/cdn/browser-CbQIH4w2.js +42 -0
  28. package/dist/cdn/brush-B_mKhyxG.js +17 -0
  29. package/dist/cdn/bundle-mjs-B0nmHDtp.js +1953 -0
  30. package/dist/cdn/card-DqjqAq0o.js +41 -0
  31. package/dist/cdn/cfWorker-Bxcs9rNe.js +10799 -0
  32. package/dist/cdn/checkbox-B4oUG6Rr.js +20 -0
  33. package/dist/cdn/chunk-BO2N2NFS-Cy167e0X.js +17500 -0
  34. package/dist/cdn/chunk-QUQL4437-XnDcYQEx.js +1508 -0
  35. package/dist/cdn/clock-CmUbSx_B.js +12 -0
  36. package/dist/cdn/code-V_0nf5rg.js +10 -0
  37. package/dist/cdn/createLucideIcon-C5fZZ6oB.js +38 -0
  38. package/dist/cdn/dialog-Dnl-pZsY.js +1028 -0
  39. package/dist/cdn/dist-DjXr_YO3.js +616 -0
  40. package/dist/cdn/dist-mRDqCgKU.js +2305 -0
  41. package/dist/cdn/external-link-CjmfT6rW.js +17 -0
  42. package/dist/cdn/eye-B7H96av8.js +29 -0
  43. package/dist/cdn/favicon-96x96.png +0 -0
  44. package/dist/cdn/favicon-black.svg +5 -8
  45. package/dist/cdn/favicon-white.svg +4 -7
  46. package/dist/cdn/favicon.ico +0 -0
  47. package/dist/cdn/favicon.svg +5 -0
  48. package/dist/cdn/folder-open-B3lu2rG_.js +7 -0
  49. package/dist/cdn/hash-BVQnWi7q.js +33 -0
  50. package/dist/cdn/highlighted-body-OFNGDK62-CoReNbTX.js +36 -0
  51. package/dist/cdn/history-Csw4rb44.js +17 -0
  52. package/dist/cdn/index-browser-CVUwR-Bu.js +1934 -0
  53. package/dist/cdn/info-CNiOwqkf.js +19 -0
  54. package/dist/cdn/input-BLxOA7V-.js +10215 -0
  55. package/dist/cdn/inspector-settings-layout-0VDsjeqb.js +4 -0
  56. package/dist/cdn/inspector.css +1 -2
  57. package/dist/cdn/inspector.js +10854 -133726
  58. package/dist/cdn/jsx-runtime-CIxvMpEo.js +180 -0
  59. package/dist/cdn/label-CBvG613A.js +60 -0
  60. package/dist/cdn/loader-circle-BLy9A_pp.js +7 -0
  61. package/dist/cdn/manufact-auth-0TVxpeTA.js +387 -0
  62. package/dist/cdn/maximize-2-CH5Lq90B.js +21 -0
  63. package/dist/cdn/maximize-BALCV_ep.js +21 -0
  64. package/dist/cdn/mermaid-GHXKKRXX-DgVIbk-D.js +2 -0
  65. package/dist/cdn/message-square-BnxdpJxZ.js +7 -0
  66. package/dist/cdn/not-found-BcNNsTjS.js +34 -0
  67. package/dist/cdn/pdf-CxFT9FER.js +16291 -0
  68. package/dist/cdn/play-vuZ5PLnI.js +7 -0
  69. package/dist/cdn/popover-C_SSrXT0.js +2005 -0
  70. package/dist/cdn/react-BIs9pQ3H.js +926 -0
  71. package/dist/cdn/react-yUi9mVK4.js +5411 -0
  72. package/dist/cdn/refresh-cw-BXY-Pa0U.js +21 -0
  73. package/dist/cdn/save-Tgil_AJZ.js +34 -0
  74. package/dist/cdn/schemaHelpers-DTV38jGq.js +16 -0
  75. package/dist/cdn/select-BZ_IoKxg.js +2594 -0
  76. package/dist/cdn/servers-Dm72iTpY.js +26 -0
  77. package/dist/cdn/shared-uMiV6Fx1.js +1700 -0
  78. package/dist/cdn/sheet-CerCdhxz.js +78 -0
  79. package/dist/cdn/site.webmanifest +21 -0
  80. package/dist/cdn/sparkles-BntO2rDR.js +23 -0
  81. package/dist/cdn/spinner-CWcJhIY_.js +15 -0
  82. package/dist/cdn/square-check-big-BvwQ17Bl.js +10 -0
  83. package/dist/cdn/switch-DtQOLb9R.js +664 -0
  84. package/dist/cdn/tabs-subtle-C5cy35sY.js +787 -0
  85. package/dist/cdn/telemetry-Ct6pVkM1.js +240 -0
  86. package/dist/cdn/textarea-Bj-CT7hC.js +14 -0
  87. package/dist/cdn/trash-2-RwpJY5SL.js +25 -0
  88. package/dist/cdn/useAriaLabelledBy-Bm9qHGK6.js +29 -0
  89. package/dist/cdn/useCompositeItem-CNJ6MXdi.js +26 -0
  90. package/dist/cdn/useConfig-CwxZ6Quj.js +208 -0
  91. package/dist/cdn/useHostedSession-BA39Aegc.js +153 -0
  92. package/dist/cdn/useMCPPrompts-D3_Hla_z.js +104 -0
  93. package/dist/cdn/useSavedRequests-Ci2I919u.js +51 -0
  94. package/dist/cdn/useViewHostProps-C7vjco2m.js +348 -0
  95. package/dist/cdn/web-app-manifest-192x192.png +0 -0
  96. package/dist/cdn/web-app-manifest-512x512.png +0 -0
  97. package/dist/cdn/wrench-DzGmCfnb.js +7 -0
  98. package/dist/cdn/x-C3vRQIYu.js +10 -0
  99. package/dist/cdn/zap-Mb-pbw2X.js +10 -0
  100. package/dist/cli.js +1060 -3601
  101. package/dist/client/auth/manufact-auth.d.ts +30 -0
  102. package/dist/client/auth/manufact-auth.d.ts.map +1 -0
  103. package/dist/client/chat-history/ChatHistoryHeader.d.ts +4 -0
  104. package/dist/client/chat-history/ChatHistoryHeader.d.ts.map +1 -0
  105. package/dist/client/chat-history/ChatHistoryPanel.d.ts +28 -0
  106. package/dist/client/chat-history/ChatHistoryPanel.d.ts.map +1 -0
  107. package/dist/client/chat-history/ChatHistoryRail.d.ts +5 -0
  108. package/dist/client/chat-history/ChatHistoryRail.d.ts.map +1 -0
  109. package/dist/client/chat-history/ChatList.d.ts +18 -0
  110. package/dist/client/chat-history/ChatList.d.ts.map +1 -0
  111. package/dist/client/chat-history/ChatTitleReveal.d.ts +10 -0
  112. package/dist/client/chat-history/ChatTitleReveal.d.ts.map +1 -0
  113. package/dist/client/chat-history/chat-events-to-inspector-messages.d.ts +13 -0
  114. package/dist/client/chat-history/chat-events-to-inspector-messages.d.ts.map +1 -0
  115. package/dist/client/chat-history/chat-title.d.ts +10 -0
  116. package/dist/client/chat-history/chat-title.d.ts.map +1 -0
  117. package/dist/client/chat-history/providers/local-storage.d.ts +21 -0
  118. package/dist/client/chat-history/providers/local-storage.d.ts.map +1 -0
  119. package/dist/client/chat-history/types.d.ts +39 -0
  120. package/dist/client/chat-history/types.d.ts.map +1 -0
  121. package/dist/client/chat-history/useChatHistory.d.ts +20 -0
  122. package/dist/client/chat-history/useChatHistory.d.ts.map +1 -0
  123. package/dist/client/chat-history/useChatTitleGeneration.d.ts +17 -0
  124. package/dist/client/chat-history/useChatTitleGeneration.d.ts.map +1 -0
  125. package/dist/client/components/AddToClientDropdown.d.ts.map +1 -1
  126. package/dist/client/components/ChatTab.d.ts +28 -3
  127. package/dist/client/components/ChatTab.d.ts.map +1 -1
  128. package/dist/client/components/IframeConsole.d.ts.map +1 -1
  129. package/dist/client/components/MCPAppsDebugControls.d.ts +2 -18
  130. package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
  131. package/dist/client/components/PromptsTab.d.ts +1 -1
  132. package/dist/client/components/PromptsTab.d.ts.map +1 -1
  133. package/dist/client/components/ResourcesTab.d.ts +1 -1
  134. package/dist/client/components/ResourcesTab.d.ts.map +1 -1
  135. package/dist/client/components/ToolsTab.d.ts +3 -3
  136. package/dist/client/components/ToolsTab.d.ts.map +1 -1
  137. package/dist/client/components/chat/AssistantMessage.d.ts +2 -1
  138. package/dist/client/components/chat/AssistantMessage.d.ts.map +1 -1
  139. package/dist/client/components/chat/ChatHeader.d.ts +20 -2
  140. package/dist/client/components/chat/ChatHeader.d.ts.map +1 -1
  141. package/dist/client/components/chat/ChatInput.d.ts +6 -2
  142. package/dist/client/components/chat/ChatInput.d.ts.map +1 -1
  143. package/dist/client/components/chat/ChatInputArea.d.ts +31 -3
  144. package/dist/client/components/chat/ChatInputArea.d.ts.map +1 -1
  145. package/dist/client/components/chat/ChatLandingForm.d.ts +5 -42
  146. package/dist/client/components/chat/ChatLandingForm.d.ts.map +1 -1
  147. package/dist/client/components/chat/ChatScrollToBottomButton.d.ts +7 -0
  148. package/dist/client/components/chat/ChatScrollToBottomButton.d.ts.map +1 -0
  149. package/dist/client/components/chat/ChatTraceView.d.ts +7 -0
  150. package/dist/client/components/chat/ChatTraceView.d.ts.map +1 -0
  151. package/dist/client/components/chat/ConfigurationDialog.d.ts +12 -2
  152. package/dist/client/components/chat/ConfigurationDialog.d.ts.map +1 -1
  153. package/dist/client/components/chat/ConfigureEmptyState.d.ts +2 -5
  154. package/dist/client/components/chat/ConfigureEmptyState.d.ts.map +1 -1
  155. package/dist/client/components/chat/CopyButton.d.ts.map +1 -1
  156. package/dist/client/components/chat/FloatingChatElicitation.d.ts +10 -0
  157. package/dist/client/components/chat/FloatingChatElicitation.d.ts.map +1 -0
  158. package/dist/client/components/chat/MessageList.d.ts +6 -11
  159. package/dist/client/components/chat/MessageList.d.ts.map +1 -1
  160. package/dist/client/components/chat/MessageMetaActions.d.ts +7 -0
  161. package/dist/client/components/chat/MessageMetaActions.d.ts.map +1 -0
  162. package/dist/client/components/chat/PromptsDropdown.d.ts +1 -1
  163. package/dist/client/components/chat/PromptsDropdown.d.ts.map +1 -1
  164. package/dist/client/components/chat/StreamingAssistantContent.d.ts +7 -0
  165. package/dist/client/components/chat/StreamingAssistantContent.d.ts.map +1 -0
  166. package/dist/client/components/chat/SystemPromptButton.d.ts +11 -0
  167. package/dist/client/components/chat/SystemPromptButton.d.ts.map +1 -0
  168. package/dist/client/components/chat/ToolCallDisplay.d.ts.map +1 -1
  169. package/dist/client/components/chat/ToolResultRenderer.d.ts +2 -9
  170. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
  171. package/dist/client/components/chat/ToolSelector.d.ts.map +1 -1
  172. package/dist/client/components/chat/UserMessage.d.ts +2 -1
  173. package/dist/client/components/chat/UserMessage.d.ts.map +1 -1
  174. package/dist/client/components/chat/chat-bar-styles.d.ts +6 -0
  175. package/dist/client/components/chat/chat-bar-styles.d.ts.map +1 -0
  176. package/dist/client/components/chat/conversion.d.ts +1 -1
  177. package/dist/client/components/chat/conversion.d.ts.map +1 -1
  178. package/dist/client/components/chat/freeTier.d.ts +11 -0
  179. package/dist/client/components/chat/freeTier.d.ts.map +1 -1
  180. package/dist/client/components/chat/providerMeta.d.ts +10 -1
  181. package/dist/client/components/chat/providerMeta.d.ts.map +1 -1
  182. package/dist/client/components/chat/streamdown-code-slim.d.ts +4 -0
  183. package/dist/client/components/chat/streamdown-code-slim.d.ts.map +1 -0
  184. package/dist/client/components/chat/system-prompt/local-storage.d.ts +5 -0
  185. package/dist/client/components/chat/system-prompt/local-storage.d.ts.map +1 -0
  186. package/dist/client/components/chat/system-prompt/types.d.ts +8 -0
  187. package/dist/client/components/chat/system-prompt/types.d.ts.map +1 -0
  188. package/dist/client/components/chat/system-prompt/useLocalSystemPrompt.d.ts +3 -0
  189. package/dist/client/components/chat/system-prompt/useLocalSystemPrompt.d.ts.map +1 -0
  190. package/dist/client/components/chat/system-prompt-default.d.ts +2 -0
  191. package/dist/client/components/chat/system-prompt-default.d.ts.map +1 -0
  192. package/dist/client/components/chat/trace.d.ts +84 -0
  193. package/dist/client/components/chat/trace.d.ts.map +1 -0
  194. package/dist/client/components/chat/types.d.ts +2 -1
  195. package/dist/client/components/chat/types.d.ts.map +1 -1
  196. package/dist/client/components/chat/useChatMessages.d.ts +4 -0
  197. package/dist/client/components/chat/useChatMessages.d.ts.map +1 -1
  198. package/dist/client/components/chat/useChatMessagesClientSide.d.ts +14 -2
  199. package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +1 -1
  200. package/dist/client/components/chat/useChatScrollToBottom.d.ts +13 -0
  201. package/dist/client/components/chat/useChatScrollToBottom.d.ts.map +1 -0
  202. package/dist/client/components/chat/useConfig.d.ts +2 -2
  203. package/dist/client/components/chat/useConfig.d.ts.map +1 -1
  204. package/dist/client/components/chat/useHostedChatMode.d.ts +14 -0
  205. package/dist/client/components/chat/useHostedChatMode.d.ts.map +1 -0
  206. package/dist/client/components/chat/useManagedCloudModel.d.ts +14 -0
  207. package/dist/client/components/chat/useManagedCloudModel.d.ts.map +1 -0
  208. package/dist/client/components/chat/utils.d.ts +0 -4
  209. package/dist/client/components/chat/utils.d.ts.map +1 -1
  210. package/dist/client/components/elicitation/shared/ElicitationAskUserPanel.d.ts +12 -0
  211. package/dist/client/components/elicitation/shared/ElicitationAskUserPanel.d.ts.map +1 -0
  212. package/dist/client/components/elicitation/shared/elicitationToAskUserQuestions.d.ts +9 -0
  213. package/dist/client/components/elicitation/shared/elicitationToAskUserQuestions.d.ts.map +1 -0
  214. package/dist/client/components/prompts/PromptExecutionPanel.d.ts +1 -1
  215. package/dist/client/components/prompts/PromptExecutionPanel.d.ts.map +1 -1
  216. package/dist/client/components/prompts/PromptInputForm.d.ts +1 -1
  217. package/dist/client/components/prompts/PromptInputForm.d.ts.map +1 -1
  218. package/dist/client/components/prompts/PromptResultDisplay.d.ts +1 -1
  219. package/dist/client/components/prompts/PromptResultDisplay.d.ts.map +1 -1
  220. package/dist/client/components/prompts/PromptsList.d.ts +1 -1
  221. package/dist/client/components/prompts/PromptsList.d.ts.map +1 -1
  222. package/dist/client/components/prompts/SavedPromptsList.d.ts.map +1 -1
  223. package/dist/client/components/resources/PropsConfigDialog.d.ts +1 -1
  224. package/dist/client/components/resources/PropsConfigDialog.d.ts.map +1 -1
  225. package/dist/client/components/resources/ResourceResultDisplay.d.ts +1 -1
  226. package/dist/client/components/resources/ResourceResultDisplay.d.ts.map +1 -1
  227. package/dist/client/components/resources/ResourcesList.d.ts +1 -1
  228. package/dist/client/components/resources/ResourcesList.d.ts.map +1 -1
  229. package/dist/client/components/shared/CollapsibleJSON.d.ts +6 -0
  230. package/dist/client/components/shared/CollapsibleJSON.d.ts.map +1 -0
  231. package/dist/client/components/shared/InspectorScrollArea.d.ts +9 -0
  232. package/dist/client/components/shared/InspectorScrollArea.d.ts.map +1 -0
  233. package/dist/client/components/shared/JSONDisplay.d.ts +5 -1
  234. package/dist/client/components/shared/JSONDisplay.d.ts.map +1 -1
  235. package/dist/client/components/shared/ListItem.d.ts +1 -3
  236. package/dist/client/components/shared/ListItem.d.ts.map +1 -1
  237. package/dist/client/components/shared/ListTabHeader.d.ts +4 -1
  238. package/dist/client/components/shared/ListTabHeader.d.ts.map +1 -1
  239. package/dist/client/components/shared/MarkdownRenderer.d.ts.map +1 -1
  240. package/dist/client/components/shared/SearchTabHeader.d.ts +28 -0
  241. package/dist/client/components/shared/SearchTabHeader.d.ts.map +1 -0
  242. package/dist/client/components/shared/StatusIcon.d.ts +12 -0
  243. package/dist/client/components/shared/StatusIcon.d.ts.map +1 -0
  244. package/dist/client/components/shared/index.d.ts +4 -1
  245. package/dist/client/components/shared/index.d.ts.map +1 -1
  246. package/dist/client/components/tools/SavedRequestsList.d.ts.map +1 -1
  247. package/dist/client/components/tools/ToolExecutionPanel.d.ts +1 -1
  248. package/dist/client/components/tools/ToolExecutionPanel.d.ts.map +1 -1
  249. package/dist/client/components/tools/ToolInputForm.d.ts +1 -1
  250. package/dist/client/components/tools/ToolInputForm.d.ts.map +1 -1
  251. package/dist/client/components/tools/ToolResultDisplay.d.ts +0 -6
  252. package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
  253. package/dist/client/components/tools/ToolsList.d.ts +1 -1
  254. package/dist/client/components/tools/ToolsList.d.ts.map +1 -1
  255. package/dist/client/components/tools/useToolExecution.d.ts +26 -0
  256. package/dist/client/components/tools/useToolExecution.d.ts.map +1 -0
  257. package/dist/client/components/tools/useToolsTabNavigation.d.ts +35 -0
  258. package/dist/client/components/tools/useToolsTabNavigation.d.ts.map +1 -0
  259. package/dist/client/components/ui/WidgetWrapper.d.ts +2 -2
  260. package/dist/client/components/ui/WidgetWrapper.d.ts.map +1 -1
  261. package/dist/client/components/ui/alert-dialog.d.ts +8 -5
  262. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -1
  263. package/dist/client/components/ui/ask-user-questions.d.ts +80 -0
  264. package/dist/client/components/ui/ask-user-questions.d.ts.map +1 -0
  265. package/dist/client/components/ui/badge.d.ts +32 -7
  266. package/dist/client/components/ui/badge.d.ts.map +1 -1
  267. package/dist/client/components/ui/button.d.ts +31 -11
  268. package/dist/client/components/ui/button.d.ts.map +1 -1
  269. package/dist/client/components/ui/chat-message.d.ts +23 -0
  270. package/dist/client/components/ui/chat-message.d.ts.map +1 -0
  271. package/dist/client/components/ui/checkbox.d.ts +2 -3
  272. package/dist/client/components/ui/checkbox.d.ts.map +1 -1
  273. package/dist/client/components/ui/client-icons.d.ts +0 -4
  274. package/dist/client/components/ui/client-icons.d.ts.map +1 -1
  275. package/dist/client/components/ui/command.d.ts +13 -64
  276. package/dist/client/components/ui/command.d.ts.map +1 -1
  277. package/dist/client/components/ui/dialog.d.ts +36 -12
  278. package/dist/client/components/ui/dialog.d.ts.map +1 -1
  279. package/dist/client/components/ui/dropdown-menu.d.ts +17 -48
  280. package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -1
  281. package/dist/client/components/ui/dropdown.d.ts +30 -0
  282. package/dist/client/components/ui/dropdown.d.ts.map +1 -0
  283. package/dist/client/components/ui/file-thumbnail.d.ts +9 -0
  284. package/dist/client/components/ui/file-thumbnail.d.ts.map +1 -0
  285. package/dist/client/components/ui/label.d.ts +1 -2
  286. package/dist/client/components/ui/label.d.ts.map +1 -1
  287. package/dist/client/components/ui/menu-item.d.ts +52 -0
  288. package/dist/client/components/ui/menu-item.d.ts.map +1 -0
  289. package/dist/client/components/ui/mesh-tab-background.d.ts +10 -0
  290. package/dist/client/components/ui/mesh-tab-background.d.ts.map +1 -0
  291. package/dist/client/components/ui/not-found.d.ts.map +1 -1
  292. package/dist/client/components/ui/popover.d.ts +4 -5
  293. package/dist/client/components/ui/popover.d.ts.map +1 -1
  294. package/dist/client/components/ui/scroll-area.d.ts +4 -0
  295. package/dist/client/components/ui/scroll-area.d.ts.map +1 -0
  296. package/dist/client/components/ui/select.d.ts +50 -9
  297. package/dist/client/components/ui/select.d.ts.map +1 -1
  298. package/dist/client/components/ui/sheet.d.ts +9 -7
  299. package/dist/client/components/ui/sheet.d.ts.map +1 -1
  300. package/dist/client/components/ui/skeleton.d.ts +4 -0
  301. package/dist/client/components/ui/skeleton.d.ts.map +1 -0
  302. package/dist/client/components/ui/spinner.d.ts +1 -1
  303. package/dist/client/components/ui/spinner.d.ts.map +1 -1
  304. package/dist/client/components/ui/switch.d.ts +19 -7
  305. package/dist/client/components/ui/switch.d.ts.map +1 -1
  306. package/dist/client/components/ui/tabs-subtle.d.ts +25 -0
  307. package/dist/client/components/ui/tabs-subtle.d.ts.map +1 -0
  308. package/dist/client/components/ui/tooltip.d.ts +41 -6
  309. package/dist/client/components/ui/tooltip.d.ts.map +1 -1
  310. package/dist/client/context/InspectorContext.d.ts +6 -10
  311. package/dist/client/context/InspectorContext.d.ts.map +1 -1
  312. package/dist/client/context/WidgetDebugContext.d.ts +2 -3
  313. package/dist/client/context/WidgetDebugContext.d.ts.map +1 -1
  314. package/dist/client/hooks/use-merge-split.d.ts +36 -0
  315. package/dist/client/hooks/use-merge-split.d.ts.map +1 -0
  316. package/dist/client/hooks/use-proximity-hover-index.d.ts +27 -0
  317. package/dist/client/hooks/use-proximity-hover-index.d.ts.map +1 -0
  318. package/dist/client/hooks/use-proximity-hover.d.ts +26 -0
  319. package/dist/client/hooks/use-proximity-hover.d.ts.map +1 -0
  320. package/dist/client/hooks/use-touch-primary.d.ts +2 -0
  321. package/dist/client/hooks/use-touch-primary.d.ts.map +1 -0
  322. package/dist/client/hooks/useHostedSession.d.ts +4 -14
  323. package/dist/client/hooks/useHostedSession.d.ts.map +1 -1
  324. package/dist/client/hooks/useMCPPrompts.d.ts +1 -1
  325. package/dist/client/hooks/useMCPPrompts.d.ts.map +1 -1
  326. package/dist/client/hooks/useMcpAppsHostContext.d.ts +2 -2
  327. package/dist/client/hooks/useMcpAppsHostContext.d.ts.map +1 -1
  328. package/dist/client/hooks/usePropsLLM.d.ts +1 -1
  329. package/dist/client/hooks/usePropsLLM.d.ts.map +1 -1
  330. package/dist/client/hooks/useSavedRequests.d.ts +6 -0
  331. package/dist/client/hooks/useSavedRequests.d.ts.map +1 -0
  332. package/dist/client/hooks/useViewHostProps.d.ts +19 -0
  333. package/dist/client/hooks/useViewHostProps.d.ts.map +1 -0
  334. package/dist/client/index.d.ts +19 -2
  335. package/dist/client/index.d.ts.map +1 -1
  336. package/dist/client/index.js +19306 -16141
  337. package/dist/client/lib/elevated.d.ts +28 -0
  338. package/dist/client/lib/elevated.d.ts.map +1 -0
  339. package/dist/client/lib/font-weight.d.ts +10 -0
  340. package/dist/client/lib/font-weight.d.ts.map +1 -0
  341. package/dist/client/lib/icon-context.d.ts +15 -0
  342. package/dist/client/lib/icon-context.d.ts.map +1 -0
  343. package/dist/client/lib/shape-context.d.ts +21 -0
  344. package/dist/client/lib/shape-context.d.ts.map +1 -0
  345. package/dist/client/lib/springs.d.ts +32 -0
  346. package/dist/client/lib/springs.d.ts.map +1 -0
  347. package/dist/client/lib/surface-classes.d.ts +2 -0
  348. package/dist/client/lib/surface-classes.d.ts.map +1 -0
  349. package/dist/client/lib/surface-context.d.ts +7 -0
  350. package/dist/client/lib/surface-context.d.ts.map +1 -0
  351. package/dist/client/lib/utils.d.ts +1 -1
  352. package/dist/client/lib/utils.d.ts.map +1 -1
  353. package/dist/client/mcp-apps/csp.d.ts +26 -0
  354. package/dist/client/mcp-apps/csp.d.ts.map +1 -0
  355. package/dist/client/mcp-apps/debug/csp-suggestions.d.ts +17 -0
  356. package/dist/client/mcp-apps/debug/csp-suggestions.d.ts.map +1 -0
  357. package/dist/client/mcp-apps/logging-transport.d.ts +13 -0
  358. package/dist/client/mcp-apps/logging-transport.d.ts.map +1 -0
  359. package/dist/client/rpc-traffic-coalesce.d.ts +7 -0
  360. package/dist/client/rpc-traffic-coalesce.d.ts.map +1 -0
  361. package/dist/client/rpc-traffic-store.d.ts +37 -0
  362. package/dist/client/rpc-traffic-store.d.ts.map +1 -0
  363. package/dist/client/telemetry/capture.d.ts +7 -0
  364. package/dist/client/telemetry/capture.d.ts.map +1 -0
  365. package/dist/client/telemetry/events.d.ts +1 -1
  366. package/dist/client/telemetry/events.d.ts.map +1 -1
  367. package/dist/client/telemetry/index.d.ts +2 -1
  368. package/dist/client/telemetry/index.d.ts.map +1 -1
  369. package/dist/client/telemetry/init.d.ts +2 -0
  370. package/dist/client/telemetry/init.d.ts.map +1 -0
  371. package/dist/client/telemetry/utils.d.ts +5 -0
  372. package/dist/client/telemetry/utils.d.ts.map +1 -1
  373. package/dist/client/types/message-content-block.d.ts +19 -0
  374. package/dist/client/types/message-content-block.d.ts.map +1 -0
  375. package/dist/client/types/pending-requests.d.ts +17 -0
  376. package/dist/client/types/pending-requests.d.ts.map +1 -0
  377. package/dist/client/utils/basePath.d.ts +34 -0
  378. package/dist/client/utils/basePath.d.ts.map +1 -0
  379. package/dist/client/utils/browser.d.ts +5 -0
  380. package/dist/client/utils/browser.d.ts.map +1 -0
  381. package/dist/client/utils/format.d.ts +4 -0
  382. package/dist/client/utils/format.d.ts.map +1 -0
  383. package/dist/client/utils/highlightJson.d.ts +11 -0
  384. package/dist/client/utils/highlightJson.d.ts.map +1 -0
  385. package/dist/client/utils/jsonUtils.d.ts +4 -0
  386. package/dist/client/utils/jsonUtils.d.ts.map +1 -1
  387. package/dist/client/utils/mcpClientUtils.d.ts.map +1 -1
  388. package/dist/client/utils/servers.d.ts +14 -0
  389. package/dist/client/utils/servers.d.ts.map +1 -0
  390. package/dist/server/cdn-shell.d.ts +18 -0
  391. package/dist/server/cdn-shell.d.ts.map +1 -0
  392. package/dist/server/cdn-shell.js +10 -0
  393. package/dist/server/chunk-5B3SXGZP.js +43 -0
  394. package/dist/server/chunk-6XWDZEFF.js +194 -0
  395. package/dist/server/chunk-ESODOPDD.js +50 -0
  396. package/dist/server/chunk-IKTZUWSX.js +0 -0
  397. package/dist/server/{chunk-57KIBVKX.js → chunk-J67FVPHF.js} +27 -26
  398. package/dist/server/chunk-K2F2AJOI.js +619 -0
  399. package/dist/server/chunk-K2V2SDQD.js +40 -0
  400. package/dist/server/{chunk-ZPHNDECP.js → chunk-THQ67TSE.js} +31 -32
  401. package/dist/server/chunk-TPHRVELX.js +130 -0
  402. package/dist/server/chunk-WFT4JHYI.js +24 -0
  403. package/dist/server/cli.js +23 -25
  404. package/dist/server/create-dev-api-app.d.ts +4 -0
  405. package/dist/server/create-dev-api-app.d.ts.map +1 -0
  406. package/dist/server/create-dev-api-app.js +11 -0
  407. package/dist/server/favicon-links.d.ts +12 -0
  408. package/dist/server/favicon-links.d.ts.map +1 -0
  409. package/dist/server/favicon-links.js +11 -0
  410. package/dist/server/favicon-static.d.ts +4 -0
  411. package/dist/server/favicon-static.d.ts.map +1 -0
  412. package/dist/server/favicon-static.js +8 -0
  413. package/dist/server/index.d.ts +3 -4
  414. package/dist/server/index.d.ts.map +1 -1
  415. package/dist/server/index.js +13 -17
  416. package/dist/server/middleware.d.ts +14 -3
  417. package/dist/server/middleware.d.ts.map +1 -1
  418. package/dist/server/middleware.js +9 -9
  419. package/dist/server/proxy/index.d.ts +3 -0
  420. package/dist/server/proxy/index.d.ts.map +1 -0
  421. package/dist/server/proxy/index.js +12 -0
  422. package/dist/server/proxy/mcp-proxy.d.ts +99 -0
  423. package/dist/server/proxy/mcp-proxy.d.ts.map +1 -0
  424. package/dist/server/proxy/mcp-proxy.js +8 -0
  425. package/dist/server/proxy/oauth-proxy.d.ts +26 -0
  426. package/dist/server/proxy/oauth-proxy.d.ts.map +1 -0
  427. package/dist/server/proxy/oauth-proxy.js +9 -0
  428. package/dist/server/proxy-routes.d.ts +16 -0
  429. package/dist/server/proxy-routes.d.ts.map +1 -0
  430. package/dist/server/proxy-routes.js +10 -0
  431. package/dist/server/rpc-log-bus.js +73 -3
  432. package/dist/server/server.d.ts +3 -8
  433. package/dist/server/server.d.ts.map +1 -1
  434. package/dist/server/server.js +15 -92
  435. package/dist/server/version.js +1 -1
  436. package/dist/server/vite-dev-api-plugin.d.ts +4 -0
  437. package/dist/server/vite-dev-api-plugin.d.ts.map +1 -0
  438. package/dist/server/vite-dev-api-plugin.js +30 -0
  439. package/dist/web/apple-touch-icon.png +0 -0
  440. package/dist/web/assets/AnimatePresence-CthXziG2.js +9 -0
  441. package/dist/web/assets/ChatTab-CiAqtqhj.js +460 -0
  442. package/dist/web/assets/ConnectionSettingsTab-CTh6MFKE.js +1 -0
  443. package/dist/web/assets/ElicitationTab-B3Eg0_Jm.js +1 -0
  444. package/dist/web/assets/FormContext-Cqc_A12u.js +1 -0
  445. package/dist/web/assets/ListTabHeader-G-nQX18m.js +1 -0
  446. package/dist/web/assets/ManufactOAuthCallback-B-tdkUA2.js +1 -0
  447. package/dist/web/assets/NotificationsTab-BgLjxuos.js +1 -0
  448. package/dist/web/assets/OAuthCallback-Bp-jLoQs.js +1 -0
  449. package/dist/web/assets/PromptsTab-CA-SZs43.js +61 -0
  450. package/dist/web/assets/ResourcesTab-DdMIW_af.js +2 -0
  451. package/dist/web/assets/SamplingTab-DjyDG01W.js +1 -0
  452. package/dist/web/assets/ServerMetadataTab-Q4PlqP_B.js +1 -0
  453. package/dist/web/assets/ToolsTab-BHk8GCmd.js +8 -0
  454. package/dist/web/assets/ViewPreview-DWtmwzCb.js +1 -0
  455. package/dist/web/assets/WidgetWrapper-B43lqbld.js +34 -0
  456. package/dist/web/assets/brush--0LobUi4.js +1 -0
  457. package/dist/web/assets/bundle-mjs-8puS6ou7.js +1 -0
  458. package/dist/web/assets/checkbox-_GzEPQic.js +1 -0
  459. package/dist/web/assets/chunk-BO2N2NFS-BdIeB5Lr.js +131 -0
  460. package/dist/web/assets/code-tME-5H6D.js +1 -0
  461. package/dist/web/assets/createLucideIcon-B3b8EU0b.js +1 -0
  462. package/dist/web/assets/dist-DQjEDTKs.js +21 -0
  463. package/dist/web/assets/highlighted-body-OFNGDK62-Dp3e1QHL.js +1 -0
  464. package/dist/web/assets/index-Bbn-6QR2.js +475 -0
  465. package/dist/web/assets/index-BjH-Qp85.css +1 -0
  466. package/dist/web/assets/input-CjmxOFr6.js +1 -0
  467. package/dist/web/assets/inspector-settings-layout-yjKRJDai.js +1 -0
  468. package/dist/web/assets/jsx-runtime-Cjj9sGSy.js +1 -0
  469. package/dist/web/assets/label-B5Q_Zr8M.js +1 -0
  470. package/dist/web/assets/maximize-2-BTT9QQU9.js +1 -0
  471. package/dist/web/assets/maximize-_O55kFcr.js +1 -0
  472. package/dist/web/assets/mermaid-GHXKKRXX-yq1lkD3x.js +1 -0
  473. package/dist/web/assets/pdf-C3cfS_Ha.js +54 -0
  474. package/dist/web/assets/react-CU_d2d5K.js +1 -0
  475. package/dist/web/assets/refresh-cw-C9wQl8_d.js +1 -0
  476. package/dist/web/assets/save-B-MsgxX9.js +1 -0
  477. package/dist/web/assets/schemaHelpers-DLNTQr_6.js +1 -0
  478. package/dist/web/assets/select-C0xlfLAa.js +1 -0
  479. package/dist/web/assets/shared-Dfwy7nyg.js +1 -0
  480. package/dist/web/assets/sheet-CRPrEqAa.js +1 -0
  481. package/dist/web/assets/sparkles-2OAsc1aP.js +1 -0
  482. package/dist/web/assets/tabs-subtle-Dxgism9f.js +1 -0
  483. package/dist/web/assets/textarea-Ci09-en6.js +1 -0
  484. package/dist/web/assets/useConfig-b1f_iVFH.js +1 -0
  485. package/dist/web/assets/useMCPPrompts-CPskz9af.js +1 -0
  486. package/dist/web/assets/useViewHostProps-BgsQ2yYl.js +1 -0
  487. package/dist/web/assets/zap-Du2Uc5pa.js +1 -0
  488. package/dist/web/favicon-96x96.png +0 -0
  489. package/dist/web/favicon-black.svg +5 -8
  490. package/dist/web/favicon-white.svg +4 -7
  491. package/dist/web/favicon.ico +0 -0
  492. package/dist/web/favicon.svg +5 -0
  493. package/dist/web/index.html +13 -20
  494. package/dist/web/site.webmanifest +21 -0
  495. package/dist/web/web-app-manifest-192x192.png +0 -0
  496. package/dist/web/web-app-manifest-512x512.png +0 -0
  497. package/package.json +29 -30
  498. package/dist/client/components/FullscreenNavbar.d.ts +0 -9
  499. package/dist/client/components/FullscreenNavbar.d.ts.map +0 -1
  500. package/dist/client/components/LoginModal.d.ts +0 -11
  501. package/dist/client/components/LoginModal.d.ts.map +0 -1
  502. package/dist/client/components/MCPAppsRenderer.d.ts +0 -53
  503. package/dist/client/components/MCPAppsRenderer.d.ts.map +0 -1
  504. package/dist/client/components/McpUIRenderer.d.ts +0 -19
  505. package/dist/client/components/McpUIRenderer.d.ts.map +0 -1
  506. package/dist/client/components/OpenAIComponentRenderer.d.ts +0 -51
  507. package/dist/client/components/OpenAIComponentRenderer.d.ts.map +0 -1
  508. package/dist/client/components/chat/InlineElicitationCard.d.ts +0 -10
  509. package/dist/client/components/chat/InlineElicitationCard.d.ts.map +0 -1
  510. package/dist/client/components/chat/MCPUIResource.d.ts +0 -11
  511. package/dist/client/components/chat/MCPUIResource.d.ts.map +0 -1
  512. package/dist/client/components/elicitation/shared/ElicitationFormFields.d.ts +0 -21
  513. package/dist/client/components/elicitation/shared/ElicitationFormFields.d.ts.map +0 -1
  514. package/dist/client/components/elicitation/shared/index.d.ts +0 -3
  515. package/dist/client/components/elicitation/shared/index.d.ts.map +0 -1
  516. package/dist/client/components/elicitation/shared/useElicitationForm.d.ts +0 -23
  517. package/dist/client/components/elicitation/shared/useElicitationForm.d.ts.map +0 -1
  518. package/dist/client/components/logging/JsonRpcLoggerView.d.ts +0 -20
  519. package/dist/client/components/logging/JsonRpcLoggerView.d.ts.map +0 -1
  520. package/dist/client/components/prompts/PromptsTabHeader.d.ts +0 -17
  521. package/dist/client/components/prompts/PromptsTabHeader.d.ts.map +0 -1
  522. package/dist/client/components/prompts/index.d.ts +0 -6
  523. package/dist/client/components/prompts/index.d.ts.map +0 -1
  524. package/dist/client/components/resources/ResourcesTabHeader.d.ts +0 -16
  525. package/dist/client/components/resources/ResourcesTabHeader.d.ts.map +0 -1
  526. package/dist/client/components/resources/index.d.ts +0 -4
  527. package/dist/client/components/resources/index.d.ts.map +0 -1
  528. package/dist/client/components/shared/RpcPanel.d.ts +0 -21
  529. package/dist/client/components/shared/RpcPanel.d.ts.map +0 -1
  530. package/dist/client/components/tools/ToolsTabHeader.d.ts +0 -17
  531. package/dist/client/components/tools/ToolsTabHeader.d.ts.map +0 -1
  532. package/dist/client/components/tools/index.d.ts +0 -7
  533. package/dist/client/components/tools/index.d.ts.map +0 -1
  534. package/dist/client/components/ui/SandboxedIframe.d.ts +0 -64
  535. package/dist/client/components/ui/SandboxedIframe.d.ts.map +0 -1
  536. package/dist/client/components/ui/aurora-background.d.ts +0 -9
  537. package/dist/client/components/ui/aurora-background.d.ts.map +0 -1
  538. package/dist/client/constants/iframe.d.ts +0 -9
  539. package/dist/client/constants/iframe.d.ts.map +0 -1
  540. package/dist/client/constants/index.d.ts +0 -7
  541. package/dist/client/constants/index.d.ts.map +0 -1
  542. package/dist/client/constants/mcp-apps.d.ts +0 -39
  543. package/dist/client/constants/mcp-apps.d.ts.map +0 -1
  544. package/dist/client/hooks/usePrismTheme.d.ts +0 -5
  545. package/dist/client/hooks/usePrismTheme.d.ts.map +0 -1
  546. package/dist/client/lib/use-sandbox-remount-generation.d.ts +0 -9
  547. package/dist/client/lib/use-sandbox-remount-generation.d.ts.map +0 -1
  548. package/dist/client/lib/widget-fullscreen.d.ts +0 -17
  549. package/dist/client/lib/widget-fullscreen.d.ts.map +0 -1
  550. package/dist/client/telemetry/telemetry.d.ts +0 -42
  551. package/dist/client/telemetry/telemetry.d.ts.map +0 -1
  552. package/dist/client/types/elicitation.d.ts +0 -9
  553. package/dist/client/types/elicitation.d.ts.map +0 -1
  554. package/dist/client/utils/clipboard.d.ts +0 -6
  555. package/dist/client/utils/clipboard.d.ts.map +0 -1
  556. package/dist/client/utils/iframeConsoleInterceptor.d.ts +0 -6
  557. package/dist/client/utils/iframeConsoleInterceptor.d.ts.map +0 -1
  558. package/dist/client/utils/widget-detection.d.ts +0 -31
  559. package/dist/client/utils/widget-detection.d.ts.map +0 -1
  560. package/dist/llm/__tests__/messageFormat.test.d.ts +0 -2
  561. package/dist/llm/__tests__/messageFormat.test.d.ts.map +0 -1
  562. package/dist/llm/__tests__/providerToolResults.test.d.ts +0 -2
  563. package/dist/llm/__tests__/providerToolResults.test.d.ts.map +0 -1
  564. package/dist/llm/__tests__/toolResultParts.test.d.ts +0 -2
  565. package/dist/llm/__tests__/toolResultParts.test.d.ts.map +0 -1
  566. package/dist/llm/messageFormat.d.ts +0 -48
  567. package/dist/llm/messageFormat.d.ts.map +0 -1
  568. package/dist/llm/ndjson.d.ts +0 -5
  569. package/dist/llm/ndjson.d.ts.map +0 -1
  570. package/dist/llm/providers/anthropic.d.ts +0 -19
  571. package/dist/llm/providers/anthropic.d.ts.map +0 -1
  572. package/dist/llm/providers/google.d.ts +0 -19
  573. package/dist/llm/providers/google.d.ts.map +0 -1
  574. package/dist/llm/providers/index.d.ts +0 -19
  575. package/dist/llm/providers/index.d.ts.map +0 -1
  576. package/dist/llm/providers/ollama/index.d.ts +0 -18
  577. package/dist/llm/providers/ollama/index.d.ts.map +0 -1
  578. package/dist/llm/providers/ollama/utils.d.ts +0 -7
  579. package/dist/llm/providers/ollama/utils.d.ts.map +0 -1
  580. package/dist/llm/providers/openai.d.ts +0 -19
  581. package/dist/llm/providers/openai.d.ts.map +0 -1
  582. package/dist/llm/schemaUtils.d.ts +0 -2
  583. package/dist/llm/schemaUtils.d.ts.map +0 -1
  584. package/dist/llm/sse.d.ts +0 -15
  585. package/dist/llm/sse.d.ts.map +0 -1
  586. package/dist/llm/toolLoop.d.ts +0 -40
  587. package/dist/llm/toolLoop.d.ts.map +0 -1
  588. package/dist/llm/toolResultParts.d.ts +0 -28
  589. package/dist/llm/toolResultParts.d.ts.map +0 -1
  590. package/dist/llm/types.d.ts +0 -102
  591. package/dist/llm/types.d.ts.map +0 -1
  592. package/dist/server/chunk-63EJEHRP.js +0 -71
  593. package/dist/server/chunk-A4VH7AIP.js +0 -738
  594. package/dist/server/chunk-CVECQ7BJ.js +0 -78
  595. package/dist/server/chunk-IDMHJUEM.js +0 -42
  596. package/dist/server/chunk-KIJYOTYZ.js +0 -322
  597. package/dist/server/chunk-PJNKFX2R.js +0 -2351
  598. package/dist/server/chunk-QQ37LGLJ.js +0 -127
  599. package/dist/server/chunk-R4ISUE7T.js +0 -164
  600. package/dist/server/chunk-UTW44YSH.js +0 -322
  601. package/dist/server/file-utils.d.ts +0 -11
  602. package/dist/server/file-utils.d.ts.map +0 -1
  603. package/dist/server/file-utils.js +0 -11
  604. package/dist/server/routes/mcp-apps.d.ts +0 -12
  605. package/dist/server/routes/mcp-apps.d.ts.map +0 -1
  606. package/dist/server/shared-routes.d.ts +0 -11
  607. package/dist/server/shared-routes.d.ts.map +0 -1
  608. package/dist/server/shared-routes.js +0 -11
  609. package/dist/server/shared-static.d.ts +0 -57
  610. package/dist/server/shared-static.d.ts.map +0 -1
  611. package/dist/server/shared-static.js +0 -11
  612. package/dist/server/shared-utils.d.ts +0 -175
  613. package/dist/server/shared-utils.d.ts.map +0 -1
  614. package/dist/server/shared-utils.js +0 -21
  615. package/dist/server/transport-wrapper.d.ts +0 -6
  616. package/dist/server/transport-wrapper.d.ts.map +0 -1
  617. package/dist/server/transport-wrapper.js +0 -68
  618. package/dist/server/tunnel.d.ts +0 -11
  619. package/dist/server/tunnel.d.ts.map +0 -1
  620. package/dist/server/tunnel.js +0 -13
  621. package/dist/web/assets/1c-D19GPo3L.js +0 -1
  622. package/dist/web/assets/abnf-BR1TaWs-.js +0 -1
  623. package/dist/web/assets/accesslog-CZxiyYuK.js +0 -1
  624. package/dist/web/assets/actionscript-BS1fMZ9M.js +0 -1
  625. package/dist/web/assets/ada-Dhy1EabM.js +0 -1
  626. package/dist/web/assets/angelscript-Gjldi7xi.js +0 -1
  627. package/dist/web/assets/apache-Cx8TUABI.js +0 -1
  628. package/dist/web/assets/applescript-JfBNOabq.js +0 -1
  629. package/dist/web/assets/arcade-E6zGzFSx.js +0 -1
  630. package/dist/web/assets/arduino-D7Y37T_-.js +0 -1
  631. package/dist/web/assets/armasm-vpTNgAzt.js +0 -1
  632. package/dist/web/assets/asciidoc-DaVECsQY.js +0 -1
  633. package/dist/web/assets/aspectj-CdRAuqVM.js +0 -1
  634. package/dist/web/assets/autohotkey-DvZQekH9.js +0 -1
  635. package/dist/web/assets/autoit-oLytjhLA.js +0 -1
  636. package/dist/web/assets/avrasm-5Cf9yIw9.js +0 -1
  637. package/dist/web/assets/awk-Bf_S2P0n.js +0 -1
  638. package/dist/web/assets/axapta-DrOS6bUw.js +0 -1
  639. package/dist/web/assets/bash-DCVWALRV.js +0 -1
  640. package/dist/web/assets/basic-D0GZ3REU.js +0 -1
  641. package/dist/web/assets/bnf-D74FvP-b.js +0 -1
  642. package/dist/web/assets/brainfuck-DwUXsIlY.js +0 -3
  643. package/dist/web/assets/c-CPGbDsng.js +0 -1
  644. package/dist/web/assets/c-like-DLj4FsHF.js +0 -1
  645. package/dist/web/assets/cal-Czm5e2Qe.js +0 -1
  646. package/dist/web/assets/capnproto-CVJ2fID7.js +0 -1
  647. package/dist/web/assets/ceylon-DR5D2yFU.js +0 -1
  648. package/dist/web/assets/clean-CkIuagdM.js +0 -1
  649. package/dist/web/assets/clojure-VwyIEQaz.js +0 -1
  650. package/dist/web/assets/clojure-repl-jCSr2ntH.js +0 -1
  651. package/dist/web/assets/cmake-D2Zl_q65.js +0 -1
  652. package/dist/web/assets/coffeescript-C7Hfrw9O.js +0 -1
  653. package/dist/web/assets/coq-DAxtVI93.js +0 -1
  654. package/dist/web/assets/core-ICctFm9I.js +0 -4
  655. package/dist/web/assets/cos-0GHB8yn1.js +0 -1
  656. package/dist/web/assets/cpp-DdlDGc99.js +0 -1
  657. package/dist/web/assets/crmsh-C0vbH3xd.js +0 -1
  658. package/dist/web/assets/crystal-BloCCkus.js +0 -1
  659. package/dist/web/assets/csharp-YhN72Cls.js +0 -1
  660. package/dist/web/assets/csp-OAeIWScz.js +0 -1
  661. package/dist/web/assets/css-D1ih01yA.js +0 -1
  662. package/dist/web/assets/d-yGrz2xEC.js +0 -1
  663. package/dist/web/assets/dart-C3qG0xpq.js +0 -1
  664. package/dist/web/assets/delphi-CvoiTamH.js +0 -1
  665. package/dist/web/assets/diff-zDaBDf86.js +0 -1
  666. package/dist/web/assets/django-DBYOwnaY.js +0 -1
  667. package/dist/web/assets/dns-BWy_Oa_w.js +0 -1
  668. package/dist/web/assets/dockerfile-Cj5YqQiP.js +0 -1
  669. package/dist/web/assets/dos-AaJBzvG4.js +0 -1
  670. package/dist/web/assets/dsconfig-BgEbyf_A.js +0 -1
  671. package/dist/web/assets/dts-z64kku76.js +0 -1
  672. package/dist/web/assets/dust-C-6seNMG.js +0 -1
  673. package/dist/web/assets/ebnf-DC6yB_8o.js +0 -1
  674. package/dist/web/assets/elixir-DVZgqY4T.js +0 -1
  675. package/dist/web/assets/elm-Css3uC5x.js +0 -1
  676. package/dist/web/assets/erb-C538Iixw.js +0 -1
  677. package/dist/web/assets/erlang-DyDPiXgX.js +0 -1
  678. package/dist/web/assets/erlang-repl-CVIWmQKC.js +0 -1
  679. package/dist/web/assets/excel-BLHu7SPw.js +0 -1
  680. package/dist/web/assets/fix-JPCm4C-u.js +0 -1
  681. package/dist/web/assets/flix-DejUTEwL.js +0 -1
  682. package/dist/web/assets/fortran-CK7Rlzc4.js +0 -1
  683. package/dist/web/assets/fsharp-ZgHvh-ZT.js +0 -1
  684. package/dist/web/assets/gams-BIBfDr3x.js +0 -1
  685. package/dist/web/assets/gauss-DttPF6Qr.js +0 -1
  686. package/dist/web/assets/gcode-BXL931mb.js +0 -1
  687. package/dist/web/assets/gherkin-B7qFZ0rb.js +0 -1
  688. package/dist/web/assets/glsl-BSKhKy8T.js +0 -1
  689. package/dist/web/assets/gml-BcbsDsfr.js +0 -1
  690. package/dist/web/assets/go-BksciLaM.js +0 -1
  691. package/dist/web/assets/golo-D2QFLiUq.js +0 -1
  692. package/dist/web/assets/gradle-BH3VzvYn.js +0 -1
  693. package/dist/web/assets/groovy-Bv9ooqes.js +0 -1
  694. package/dist/web/assets/haml-CacWyVgj.js +0 -1
  695. package/dist/web/assets/handlebars-Cpp3MUlG.js +0 -1
  696. package/dist/web/assets/haskell-BQM3-EaA.js +0 -1
  697. package/dist/web/assets/haxe-Df4nG9sq.js +0 -1
  698. package/dist/web/assets/hsp-sHEckFHE.js +0 -1
  699. package/dist/web/assets/htmlbars-shnKLbrr.js +0 -1
  700. package/dist/web/assets/http-CNJ01fsj.js +0 -1
  701. package/dist/web/assets/hy-B3oY6sFO.js +0 -1
  702. package/dist/web/assets/index-C4BqUITd.css +0 -2
  703. package/dist/web/assets/index-DB2yAAMO.js +0 -848
  704. package/dist/web/assets/inform7-CNEOVpOE.js +0 -1
  705. package/dist/web/assets/ini-q6ZmK_Ll.js +0 -1
  706. package/dist/web/assets/irpf90-CHcNzzFG.js +0 -1
  707. package/dist/web/assets/isbl-ClZ-43Pe.js +0 -1
  708. package/dist/web/assets/java-C63Whuw3.js +0 -1
  709. package/dist/web/assets/javascript-BAgDYvOy.js +0 -1
  710. package/dist/web/assets/jboss-cli-qjpm-ZOy.js +0 -1
  711. package/dist/web/assets/json-DT8at3fD.js +0 -1
  712. package/dist/web/assets/julia-B3hjMqCS.js +0 -1
  713. package/dist/web/assets/julia-repl-BWC_EUt4.js +0 -1
  714. package/dist/web/assets/kotlin-DnDhVR1g.js +0 -2
  715. package/dist/web/assets/lasso-7_9jkuWm.js +0 -1
  716. package/dist/web/assets/latex-7NcBU-sp.js +0 -1
  717. package/dist/web/assets/ldif-BKsNETfE.js +0 -1
  718. package/dist/web/assets/leaf-Dr24XSMP.js +0 -1
  719. package/dist/web/assets/less-Da52wdLB.js +0 -1
  720. package/dist/web/assets/lisp-CxEhJv_S.js +0 -1
  721. package/dist/web/assets/livecodeserver-DyLLEQa3.js +0 -1
  722. package/dist/web/assets/livescript-DuMxIrKU.js +0 -1
  723. package/dist/web/assets/llvm-M9yuLNva.js +0 -1
  724. package/dist/web/assets/lsl-BP2wVZAx.js +0 -1
  725. package/dist/web/assets/lua-B0U8rByV.js +0 -1
  726. package/dist/web/assets/makefile-DL3DBvu0.js +0 -1
  727. package/dist/web/assets/markdown-jLDab-Ns.js +0 -1
  728. package/dist/web/assets/mathematica-2lChxOtk.js +0 -1
  729. package/dist/web/assets/matlab-BbPZe1tR.js +0 -1
  730. package/dist/web/assets/maxima-BdT1lNyu.js +0 -1
  731. package/dist/web/assets/mel-CxSMh57a.js +0 -1
  732. package/dist/web/assets/mercury-e3yoICSq.js +0 -1
  733. package/dist/web/assets/mipsasm--tpOiQ5I.js +0 -1
  734. package/dist/web/assets/mizar-DN4-ri-A.js +0 -1
  735. package/dist/web/assets/module-3nkmv-tD.js +0 -4
  736. package/dist/web/assets/mojolicious-lKYGBrCw.js +0 -1
  737. package/dist/web/assets/monkey-CvEgDQbs.js +0 -1
  738. package/dist/web/assets/moonscript-BgjEcnsm.js +0 -1
  739. package/dist/web/assets/n1ql-CtsXVmUQ.js +0 -1
  740. package/dist/web/assets/nginx-C6tprI2e.js +0 -1
  741. package/dist/web/assets/nim-B3y0lYop.js +0 -1
  742. package/dist/web/assets/nix-BczA7CjW.js +0 -1
  743. package/dist/web/assets/node-repl-DGgD94SZ.js +0 -1
  744. package/dist/web/assets/nsis-C_SmguFH.js +0 -1
  745. package/dist/web/assets/objectivec-2mUTCw1f.js +0 -1
  746. package/dist/web/assets/ocaml-Cn7F37_9.js +0 -1
  747. package/dist/web/assets/openscad-CkenTSp3.js +0 -1
  748. package/dist/web/assets/oxygene-D7pQi21T.js +0 -1
  749. package/dist/web/assets/parser3--pt_dbbu.js +0 -1
  750. package/dist/web/assets/perl-C0job7Qz.js +0 -1
  751. package/dist/web/assets/pf-CfWQAyKz.js +0 -1
  752. package/dist/web/assets/pgsql-CKshFhGu.js +0 -1
  753. package/dist/web/assets/php-CNUWaUh2.js +0 -1
  754. package/dist/web/assets/php-template-BCrABFi4.js +0 -1
  755. package/dist/web/assets/plaintext-ChYroSk0.js +0 -1
  756. package/dist/web/assets/pony-Bh4zwDWt.js +0 -1
  757. package/dist/web/assets/powershell-BuAlXUWx.js +0 -1
  758. package/dist/web/assets/processing-Bb5btTkH.js +0 -1
  759. package/dist/web/assets/profile-BOk16iWu.js +0 -1
  760. package/dist/web/assets/prolog-MHE4b3nq.js +0 -1
  761. package/dist/web/assets/properties-CZfxER-Q.js +0 -1
  762. package/dist/web/assets/protobuf-C_54DU4K.js +0 -1
  763. package/dist/web/assets/puppet-Z-t3L629.js +0 -1
  764. package/dist/web/assets/purebasic-CZKfEDHv.js +0 -1
  765. package/dist/web/assets/python-BvGG_JZE.js +0 -1
  766. package/dist/web/assets/python-repl-DaUVEuDx.js +0 -1
  767. package/dist/web/assets/q-CvWis_nQ.js +0 -1
  768. package/dist/web/assets/qml-2XPxalcH.js +0 -1
  769. package/dist/web/assets/r-DTTPbRAt.js +0 -1
  770. package/dist/web/assets/reasonml-CyJw_qBZ.js +0 -1
  771. package/dist/web/assets/rib-GYMKCC1Y.js +0 -1
  772. package/dist/web/assets/roboconf-CV_6N_o7.js +0 -1
  773. package/dist/web/assets/routeros-C11OKG9F.js +0 -1
  774. package/dist/web/assets/rpc-logger-TPNV75J4-CvwEntuM.js +0 -1
  775. package/dist/web/assets/rsl-rez9LEUy.js +0 -1
  776. package/dist/web/assets/ruby-_B4GQ_7D.js +0 -1
  777. package/dist/web/assets/ruleslanguage-jRg89I6w.js +0 -1
  778. package/dist/web/assets/rust-qdkaNniS.js +0 -1
  779. package/dist/web/assets/sas-BNjYSnSg.js +0 -1
  780. package/dist/web/assets/scala-CVLdU51z.js +0 -1
  781. package/dist/web/assets/scheme-Cneig3hI.js +0 -1
  782. package/dist/web/assets/scilab-DxKCNrof.js +0 -1
  783. package/dist/web/assets/scss-DQ23aG9u.js +0 -1
  784. package/dist/web/assets/shell-BgVIEdPP.js +0 -1
  785. package/dist/web/assets/smali-KZ0XB6tA.js +0 -2
  786. package/dist/web/assets/smalltalk-CYsrtMqX.js +0 -1
  787. package/dist/web/assets/sml-CwPjhShZ.js +0 -1
  788. package/dist/web/assets/sqf-Dyh-UyfR.js +0 -1
  789. package/dist/web/assets/sql-BqwecpD_.js +0 -1
  790. package/dist/web/assets/sql_more-CUF5pbmY.js +0 -1
  791. package/dist/web/assets/stan-Ddf5JFRA.js +0 -1
  792. package/dist/web/assets/stata-XlPupwqv.js +0 -3
  793. package/dist/web/assets/step21-CucMyzRd.js +0 -1
  794. package/dist/web/assets/stylus-nj6mAxkC.js +0 -1
  795. package/dist/web/assets/subunit-CiXRLQcz.js +0 -3
  796. package/dist/web/assets/swift-CIdqZMKK.js +0 -1
  797. package/dist/web/assets/taggerscript-m6_DnfoH.js +0 -1
  798. package/dist/web/assets/tap-DbEec7Q2.js +0 -1
  799. package/dist/web/assets/tcl-n8aGQ2H6.js +0 -1
  800. package/dist/web/assets/thrift-J1PtwUUl.js +0 -1
  801. package/dist/web/assets/tp-CnbYKLYQ.js +0 -1
  802. package/dist/web/assets/twig-BEBOjZvM.js +0 -1
  803. package/dist/web/assets/typescript-BwvhN9Dw.js +0 -1
  804. package/dist/web/assets/vala-BSRZa9oU.js +0 -1
  805. package/dist/web/assets/vbnet-BhOhpmOF.js +0 -1
  806. package/dist/web/assets/vbscript-BpRpQGFw.js +0 -1
  807. package/dist/web/assets/vbscript-html-z-0GWV6e.js +0 -1
  808. package/dist/web/assets/verilog-CE-mWkfc.js +0 -1
  809. package/dist/web/assets/vhdl-hkUj0_K7.js +0 -1
  810. package/dist/web/assets/vim-XK7W3JN3.js +0 -1
  811. package/dist/web/assets/x86asm-D0cmZUWd.js +0 -1
  812. package/dist/web/assets/xl-dRKa8VcI.js +0 -1
  813. package/dist/web/assets/xml-BGrFHpDb.js +0 -1
  814. package/dist/web/assets/xquery-B7qeO1Sf.js +0 -1
  815. package/dist/web/assets/yaml-DErfnXTM.js +0 -1
  816. package/dist/web/assets/zephir-O2ApOQbM.js +0 -1
@@ -0,0 +1,2067 @@
1
+ import { s as e, t } from "./react-BIs9pQ3H.js";
2
+ import { t as n } from "./jsx-runtime-CIxvMpEo.js";
3
+ import { Pr as r, Rr as i, a, cr as o, f as s, n as c, r as l, sr as u, t as d, ur as f } from "./input-BLxOA7V-.js";
4
+ import { t as p } from "./label-CBvG613A.js";
5
+ import { t as m } from "./AnimatePresence-B4HhIdgq.js";
6
+ import { a as h, i as g, n as _, r as v, t as y } from "./select-BZ_IoKxg.js";
7
+ import { t as b } from "./createLucideIcon-C5fZZ6oB.js";
8
+ import { A as x, _ as S, c as C, d as w, g as T, h as E, m as D, n as O, o as k, p as A, r as j, s as M, t as ee, v as N } from "./dialog-Dnl-pZsY.js";
9
+ import { n as P, r as F, t as I } from "./WidgetWrapper-BJJtLqMb.js";
10
+ import { a as L, i as R, t as z } from "./browser-CbQIH4w2.js";
11
+ import { n as B, t as te } from "./zap-Mb-pbw2X.js";
12
+ import { t as V } from "./code-V_0nf5rg.js";
13
+ import { t as H } from "./JSONDisplay-D3RcyO9z.js";
14
+ import { a as U, i as ne, n as W, o as re, r as G, s as ie } from "./shared-uMiV6Fx1.js";
15
+ import { t as K } from "./history-Csw4rb44.js";
16
+ import { t as ae } from "./maximize-BALCV_ep.js";
17
+ import { n as oe, t as se } from "./save-Tgil_AJZ.js";
18
+ import { n as ce, t as le } from "./useSavedRequests-Ci2I919u.js";
19
+ import { t as q } from "./play-vuZ5PLnI.js";
20
+ import { t as ue } from "./trash-2-RwpJY5SL.js";
21
+ import { t as de } from "./wrench-DzGmCfnb.js";
22
+ import { t as fe } from "./x-C3vRQIYu.js";
23
+ import { t as J } from "./switch-DtQOLb9R.js";
24
+ import { t as pe } from "./not-found-BcNNsTjS.js";
25
+ import { _ as me, t as he, v as ge } from "./telemetry-Ct6pVkM1.js";
26
+ import { c as _e, o as ve, r as ye } from "./react-yUi9mVK4.js";
27
+ import { n as be } from "./dist-DjXr_YO3.js";
28
+ import { t as Y } from "./spinner-CWcJhIY_.js";
29
+ import { n as xe } from "./InspectorContext-DzXtgyTx.js";
30
+ import { t as Se } from "./textarea-Bj-CT7hC.js";
31
+ import { t as Ce } from "./useViewHostProps-C7vjco2m.js";
32
+ import { t as we } from "./ListTabHeader-8lULn-90.js";
33
+ var Te = b("chevron-up", [["path", {
34
+ d: "m18 15-6-6-6 6",
35
+ key: "153udz"
36
+ }]]), X = /* @__PURE__ */ e(t(), 1), Z = n();
37
+ function Ee({ savedRequests: e, selectedRequest: t, onLoadRequest: n, onDeleteRequest: r, focusedIndex: i }) {
38
+ if (e.length === 0) return /* @__PURE__ */ (0, Z.jsxs)("div", {
39
+ className: "flex flex-1 flex-col items-center justify-center p-4 text-center",
40
+ children: [
41
+ /* @__PURE__ */ (0, Z.jsx)(F, { className: "h-12 w-12 text-gray-400 dark:text-gray-600 mb-3" }),
42
+ /* @__PURE__ */ (0, Z.jsx)("p", {
43
+ className: "text-gray-500 dark:text-gray-400 mb-2",
44
+ children: "No saved requests yet"
45
+ }),
46
+ /* @__PURE__ */ (0, Z.jsx)("p", {
47
+ className: "text-xs text-gray-400 dark:text-gray-500",
48
+ children: "Execute a tool and click Save to store requests"
49
+ })
50
+ ]
51
+ });
52
+ let o = (e, t) => {
53
+ e.stopPropagation(), t();
54
+ };
55
+ return /* @__PURE__ */ (0, Z.jsx)("div", { children: e.map((e, s) => /* @__PURE__ */ (0, Z.jsxs)("div", {
56
+ className: "relative group",
57
+ children: [/* @__PURE__ */ (0, Z.jsx)(G, {
58
+ id: `saved-${e.id}`,
59
+ isSelected: t?.id === e.id,
60
+ isFocused: i === s,
61
+ title: e.name,
62
+ description: e.toolName,
63
+ metadata: /* @__PURE__ */ (0, Z.jsx)("div", {
64
+ className: "flex flex-col gap-1",
65
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
66
+ className: "text-xs text-gray-400 dark:text-gray-500",
67
+ children: new Date(e.savedAt).toLocaleString()
68
+ })
69
+ }),
70
+ onClick: () => n(e)
71
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
72
+ className: "absolute top-1/2 right-2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity z-10",
73
+ children: /* @__PURE__ */ (0, Z.jsxs)(c, { children: [/* @__PURE__ */ (0, Z.jsx)(a, {
74
+ render: /* @__PURE__ */ (0, Z.jsx)(u, {
75
+ variant: "secondary",
76
+ size: "sm",
77
+ onClick: (t) => o(t, () => r(e.id)),
78
+ className: "h-8 w-8 p-0",
79
+ children: /* @__PURE__ */ (0, Z.jsx)(ue, { className: "h-4 w-4" })
80
+ }),
81
+ nativeButton: !0
82
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "Delete saved request" }) })] })
83
+ })]
84
+ }, e.id)) });
85
+ }
86
+ //#endregion
87
+ //#region src/client/components/tools/SaveRequestDialog.tsx
88
+ function De({ isOpen: e, requestName: t, defaultPlaceholder: n, onRequestNameChange: r, onSave: i, onCancel: a }) {
89
+ return e ? /* @__PURE__ */ (0, Z.jsx)("div", {
90
+ className: "fixed inset-0 bg-black/50 flex items-center justify-center z-50",
91
+ onClick: a,
92
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
93
+ className: "bg-white dark:bg-zinc-800 rounded-lg p-6 w-[400px] shadow-xl border border-gray-200 dark:border-zinc-700",
94
+ onClick: (e) => e.stopPropagation(),
95
+ children: [/* @__PURE__ */ (0, Z.jsx)("h3", {
96
+ className: "text-lg font-semibold mb-4 text-gray-900 dark:text-gray-100",
97
+ children: "Save Request"
98
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
99
+ className: "space-y-4",
100
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsx)(p, {
101
+ htmlFor: "request-name",
102
+ children: "Request Name (optional)"
103
+ }), /* @__PURE__ */ (0, Z.jsx)(d, {
104
+ id: "request-name",
105
+ value: t,
106
+ onChange: (e) => r(e.target.value),
107
+ placeholder: n,
108
+ className: "mt-2",
109
+ onKeyDown: (e) => {
110
+ e.key === "Enter" && i();
111
+ },
112
+ autoFocus: !0
113
+ })] }), /* @__PURE__ */ (0, Z.jsxs)("div", {
114
+ className: "flex justify-end gap-2",
115
+ children: [/* @__PURE__ */ (0, Z.jsx)(u, {
116
+ variant: "outline",
117
+ onClick: a,
118
+ children: "Cancel"
119
+ }), /* @__PURE__ */ (0, Z.jsxs)(u, {
120
+ onClick: i,
121
+ children: [/* @__PURE__ */ (0, Z.jsx)(se, { className: "h-4 w-4 mr-2" }), "Save"]
122
+ })]
123
+ })]
124
+ })]
125
+ })
126
+ }) : null;
127
+ }
128
+ //#endregion
129
+ //#region src/client/components/tools/schema-utils.ts
130
+ function Oe(e, t) {
131
+ if (!e?.$ref) return e;
132
+ let n = e.$ref;
133
+ if (!n.startsWith("#/")) return e;
134
+ let r = n.substring(2).split("/"), i = t;
135
+ for (let t of r) if (i && typeof i == "object" && t in i) i = i[t];
136
+ else return e;
137
+ return i;
138
+ }
139
+ function Q(e, t) {
140
+ if (e?.anyOf && Array.isArray(e.anyOf)) {
141
+ let n = e.anyOf.find((e) => Oe(e, t)?.type !== "null");
142
+ if (n) return {
143
+ ...Oe(n, t),
144
+ nullable: !0
145
+ };
146
+ }
147
+ return e;
148
+ }
149
+ function $(e, t) {
150
+ let n = Q(e || {}, t);
151
+ return n = Oe(n, t), n;
152
+ }
153
+ function ke(e, t) {
154
+ let n = $(e, t);
155
+ if (typeof n.type == "string") return n.type;
156
+ if (Array.isArray(n.type)) {
157
+ let e = n.type.find((e) => e !== "null");
158
+ return typeof e == "string" ? e : void 0;
159
+ }
160
+ }
161
+ function Ae(e) {
162
+ let t = e?.enum;
163
+ return Array.isArray(t) && t.every((e) => typeof e == "string") ? t : null;
164
+ }
165
+ function je(e) {
166
+ let t = e.trim().toLowerCase();
167
+ return [
168
+ "true",
169
+ "1",
170
+ "yes",
171
+ "on"
172
+ ].includes(t) ? !0 : [
173
+ "false",
174
+ "0",
175
+ "no",
176
+ "off"
177
+ ].includes(t) ? !1 : e;
178
+ }
179
+ function Me(e, t) {
180
+ if (t === "number" || t === "integer") {
181
+ let t = e.trim();
182
+ if (!t) return e;
183
+ let n = Number(t);
184
+ return Number.isFinite(n) ? n : e;
185
+ }
186
+ return t === "boolean" ? je(e) : e;
187
+ }
188
+ function Ne(e, t) {
189
+ if (e === void 0) return e;
190
+ if (t === "object" || t === "array") {
191
+ if (typeof e == "string") try {
192
+ return JSON.parse(e);
193
+ } catch {
194
+ return e;
195
+ }
196
+ return e;
197
+ }
198
+ if (t === "number" || t === "integer") {
199
+ if (typeof e == "number") return e;
200
+ if (typeof e == "string") {
201
+ let t = e.trim();
202
+ if (!t) return e;
203
+ let n = Number(t);
204
+ return Number.isFinite(n) ? n : e;
205
+ }
206
+ return e;
207
+ }
208
+ return t === "boolean" ? typeof e == "boolean" ? e : typeof e == "string" ? je(e) : e : e;
209
+ }
210
+ function Pe(e) {
211
+ let t = "", n = 0, r = !1, i = !1;
212
+ for (; n < e.length;) {
213
+ let a = e[n];
214
+ if (i) {
215
+ t += a, i = !1, n++;
216
+ continue;
217
+ }
218
+ if (a === "\\") {
219
+ i = !0, t += a, n++;
220
+ continue;
221
+ }
222
+ if (a === "`") {
223
+ r ? (t += "\"", r = !1) : (t += "\"", r = !0), n++;
224
+ continue;
225
+ }
226
+ if (r && a === "\"") {
227
+ t += "\\\"", n++;
228
+ continue;
229
+ }
230
+ t += a, n++;
231
+ }
232
+ return t;
233
+ }
234
+ function Fe(e) {
235
+ if (!e || typeof e != "string") return null;
236
+ let t = e.trim();
237
+ if (!t.startsWith("{")) return null;
238
+ try {
239
+ let e = JSON.parse(t);
240
+ if (e && typeof e == "object" && !Array.isArray(e)) return e;
241
+ } catch {
242
+ try {
243
+ let e = Pe(t), n = JSON.parse(e);
244
+ if (n && typeof n == "object" && !Array.isArray(n)) return n;
245
+ } catch {
246
+ return null;
247
+ }
248
+ }
249
+ return null;
250
+ }
251
+ //#endregion
252
+ //#region src/client/components/tools/ToolInputForm.tsx
253
+ function Ie({ selectedTool: e, toolArgs: t, onArgChange: n, onBulkPaste: r, autoFilledFields: i, setFields: a, sendEmptyFields: o, onToggleEmpty: s }) {
254
+ let c = e?.inputSchema?.properties || {}, l = e?.inputSchema?.required || [], u = Object.keys(c).length > 0, f = async (e, t) => {
255
+ r && await r(e.clipboardData.getData("text"), t) && e.preventDefault();
256
+ };
257
+ return u ? /* @__PURE__ */ (0, Z.jsx)("div", {
258
+ className: "space-y-4",
259
+ children: Object.entries(c).map(([r, c]) => {
260
+ let u = $(c, e?.inputSchema || {}), m = Ae(u), b = u.type === "string" && m !== null, x = u, S = l.includes(r), C = t[r], w = "";
261
+ C != null && (w = typeof C == "string" ? C : typeof C == "object" && C ? JSON.stringify(C, null, 2) : String(C));
262
+ let T = x.type === "object" || x.type === "array", E = T ? x.type === "array" ? "array" : "object" : "string", D = a?.has(r) ?? !0, O = s && (x.type === "string" || T);
263
+ return T ? /* @__PURE__ */ (0, Z.jsxs)("div", {
264
+ className: "space-y-2",
265
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
266
+ className: "flex items-start justify-between gap-2",
267
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
268
+ className: "min-w-0 flex-1",
269
+ children: [/* @__PURE__ */ (0, Z.jsxs)(p, {
270
+ htmlFor: r,
271
+ className: "text-sm font-medium",
272
+ children: [r, S && /* @__PURE__ */ (0, Z.jsx)("span", {
273
+ className: "text-red-500 ml-1",
274
+ children: "*"
275
+ })]
276
+ }), x?.description && /* @__PURE__ */ (0, Z.jsx)("p", {
277
+ className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400",
278
+ children: x.description
279
+ })]
280
+ }), O && s && /* @__PURE__ */ (0, Z.jsxs)("div", {
281
+ className: "flex items-center gap-2 shrink-0",
282
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
283
+ className: "text-xs text-muted-foreground whitespace-nowrap",
284
+ children: E === "array" ? "Send empty array explicitly" : "Send empty object explicitly"
285
+ }), /* @__PURE__ */ (0, Z.jsx)(J, {
286
+ checked: o?.has(r) ?? !1,
287
+ onCheckedChange: (e) => s(r, E, e),
288
+ "aria-label": E === "array" ? "Send empty array" : "Send empty object",
289
+ title: E === "array" ? "Send empty array []" : "Send empty object {}"
290
+ })]
291
+ })]
292
+ }), /* @__PURE__ */ (0, Z.jsx)(Se, {
293
+ id: r,
294
+ "data-testid": `tool-param-${r}`,
295
+ value: w,
296
+ onChange: (e) => n(r, e.target.value),
297
+ onPaste: (e) => f(e, r),
298
+ placeholder: `Enter ${r}`,
299
+ disabled: o?.has(r) ?? !1,
300
+ className: `min-h-[100px] ${D ? "" : "opacity-70"} ${i?.has(r) ? "animate-pulse ring-2 ring-green-500 dark:ring-green-400" : ""}`
301
+ })]
302
+ }, r) : b && m ? /* @__PURE__ */ (0, Z.jsxs)("div", {
303
+ className: "space-y-2",
304
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsxs)(p, {
305
+ htmlFor: r,
306
+ className: "text-sm font-medium",
307
+ children: [r, S && /* @__PURE__ */ (0, Z.jsx)("span", {
308
+ className: "text-red-500 ml-1",
309
+ children: "*"
310
+ })]
311
+ }), x.description && /* @__PURE__ */ (0, Z.jsx)("p", {
312
+ className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400",
313
+ children: x.description
314
+ })] }), /* @__PURE__ */ (0, Z.jsxs)(y, {
315
+ value: String(t[r] || ""),
316
+ onValueChange: (e) => n(r, e),
317
+ children: [/* @__PURE__ */ (0, Z.jsx)(g, {
318
+ id: r,
319
+ className: `w-full ${D ? "" : "opacity-70"}`,
320
+ "data-testid": `tool-param-${r}`,
321
+ children: /* @__PURE__ */ (0, Z.jsx)(h, { placeholder: "Select an option" })
322
+ }), /* @__PURE__ */ (0, Z.jsx)(_, { children: m.map((e, t) => /* @__PURE__ */ (0, Z.jsx)(v, {
323
+ value: e,
324
+ children: x.enumNames?.[t] || e
325
+ }, e)) })]
326
+ })]
327
+ }, r) : /* @__PURE__ */ (0, Z.jsxs)("div", {
328
+ className: "space-y-2",
329
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
330
+ className: "flex items-start justify-between gap-2",
331
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
332
+ className: "min-w-0 flex-1",
333
+ children: [/* @__PURE__ */ (0, Z.jsxs)(p, {
334
+ htmlFor: r,
335
+ className: "text-sm font-medium",
336
+ children: [r, S && /* @__PURE__ */ (0, Z.jsx)("span", {
337
+ className: "text-red-500 ml-1",
338
+ children: "*"
339
+ })]
340
+ }), x?.description && /* @__PURE__ */ (0, Z.jsx)("p", {
341
+ className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400",
342
+ children: x.description
343
+ })]
344
+ }), O && s && /* @__PURE__ */ (0, Z.jsxs)("div", {
345
+ className: "flex items-center gap-2 shrink-0",
346
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
347
+ className: "text-xs text-muted-foreground whitespace-nowrap",
348
+ children: "Send empty string"
349
+ }), /* @__PURE__ */ (0, Z.jsx)(J, {
350
+ checked: o?.has(r) ?? !1,
351
+ onCheckedChange: (e) => s(r, "string", e),
352
+ "aria-label": "Send empty string",
353
+ title: "Send empty string"
354
+ })]
355
+ })]
356
+ }), /* @__PURE__ */ (0, Z.jsx)(d, {
357
+ id: r,
358
+ "data-testid": `tool-param-${r}`,
359
+ value: w,
360
+ onChange: (e) => n(r, e.target.value),
361
+ onPaste: (e) => f(e, r),
362
+ placeholder: `Enter ${r}`,
363
+ disabled: o?.has(r) ?? !1,
364
+ className: `${D ? "" : "opacity-70"} ${i?.has(r) ? "animate-pulse ring-2 ring-green-500 dark:ring-green-400" : ""}`
365
+ })]
366
+ }, r);
367
+ })
368
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
369
+ className: "flex items-center justify-center h-32 text-gray-500 dark:text-gray-400 text-sm",
370
+ children: "No parameters required"
371
+ });
372
+ }
373
+ //#endregion
374
+ //#region src/client/components/tools/ToolExecutionPanel.tsx
375
+ function Le({ selectedTool: e, toolArgs: t, payloadToSend: n, isExecuting: r, isConnected: s, onArgChange: d, onExecute: p, onSave: m, onCancel: h, onBulkPaste: g, autoFilledFields: _, setFields: v, sendEmptyFields: y, onToggleEmpty: b }) {
376
+ let S = "hidden @[700px]/tool-exec:inline", w = "hidden @[700px]/tool-exec:inline shrink-0 text-[10px] leading-none border border-current/30 p-1 rounded-full", T = "max-[699px]/tool-exec:size-8 max-[699px]/tool-exec:min-w-8 max-[699px]/tool-exec:shrink-0 max-[699px]/tool-exec:gap-0 max-[699px]/tool-exec:rounded-full max-[699px]/tool-exec:px-0 max-[699px]/tool-exec:py-0", E = "max-[699px]/tool-exec:!pr-0", [D, A] = (0, X.useState)(!1), [N, P] = (0, X.useState)(!1), [F, I] = (0, X.useState)(!1), [B, te] = (0, X.useState)(!1), [U, ne] = (0, X.useState)(!1), W = (0, X.useRef)(null);
377
+ return (0, X.useEffect)(() => {
378
+ if (W.current && e?.description) {
379
+ let e = W.current, t = parseFloat(getComputedStyle(e).lineHeight), n = e.scrollHeight;
380
+ ne(Math.round(n / t) > 3), te(!1);
381
+ }
382
+ }, [e?.description]), (0, X.useEffect)(() => {
383
+ let t = (t) => {
384
+ (t.metaKey || t.ctrlKey) && t.key === "Enter" && e && !r && s && (t.preventDefault(), p()), t.key === "Escape" && r && h && (t.preventDefault(), h());
385
+ };
386
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
387
+ }, [
388
+ e,
389
+ r,
390
+ s,
391
+ p,
392
+ h
393
+ ]), e ? /* @__PURE__ */ (0, Z.jsxs)("div", {
394
+ className: "flex flex-col h-full @container/tool-exec",
395
+ children: [
396
+ /* @__PURE__ */ (0, Z.jsx)("div", {
397
+ className: "shrink-0 p-3 sm:p-5 pt-3 sm:pt-4 pb-2 sm:pb-2 sm:pr-4",
398
+ children: /* @__PURE__ */ (0, Z.jsx)("div", { children: /* @__PURE__ */ (0, Z.jsxs)("div", {
399
+ className: "flex flex-row items-center justify-between mb-0 gap-2",
400
+ children: [/* @__PURE__ */ (0, Z.jsx)("h3", {
401
+ className: "text-base sm:text-lg font-semibold",
402
+ "data-testid": "tool-execution-title",
403
+ children: e.name
404
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
405
+ className: "flex gap-2 shrink-0",
406
+ children: [
407
+ /* @__PURE__ */ (0, Z.jsxs)(c, { children: [/* @__PURE__ */ (0, Z.jsx)(a, {
408
+ render: /* @__PURE__ */ (0, Z.jsxs)(u, {
409
+ "data-testid": "tool-execution-metadata-button",
410
+ variant: N ? "default" : "outline",
411
+ onClick: () => P(!N),
412
+ disabled: r,
413
+ size: "sm",
414
+ className: i(f, T),
415
+ title: "View tool metadata",
416
+ children: [/* @__PURE__ */ (0, Z.jsx)(V, {}), /* @__PURE__ */ (0, Z.jsx)("span", {
417
+ className: S,
418
+ children: "Metadata"
419
+ })]
420
+ }),
421
+ nativeButton: !0
422
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "View tool definition metadata" }) })] }),
423
+ /* @__PURE__ */ (0, Z.jsxs)(c, { children: [/* @__PURE__ */ (0, Z.jsx)(a, {
424
+ render: /* @__PURE__ */ (0, Z.jsxs)(u, {
425
+ "data-testid": "tool-execution-copy-payload-button",
426
+ variant: "outline",
427
+ onClick: async () => {
428
+ if (e) try {
429
+ await z(JSON.stringify(n ?? t, null, 2)), I(!0), setTimeout(() => I(!1), 2e3);
430
+ } catch {}
431
+ },
432
+ disabled: r,
433
+ size: "sm",
434
+ className: i(f, T),
435
+ title: "Copy payload as JSON",
436
+ children: [F ? /* @__PURE__ */ (0, Z.jsx)(L, { className: "text-green-600" }) : /* @__PURE__ */ (0, Z.jsx)(R, {}), /* @__PURE__ */ (0, Z.jsx)("span", {
437
+ className: S,
438
+ children: F ? "Copied!" : "Payload"
439
+ })]
440
+ }),
441
+ nativeButton: !0
442
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "Copy payload as JSON" }) })] }),
443
+ /* @__PURE__ */ (0, Z.jsxs)(c, { children: [/* @__PURE__ */ (0, Z.jsx)(a, {
444
+ render: /* @__PURE__ */ (0, Z.jsxs)(u, {
445
+ "data-testid": "tool-execution-save-button",
446
+ variant: "outline",
447
+ onClick: m,
448
+ disabled: r,
449
+ size: "sm",
450
+ className: i(f, T),
451
+ title: "Save request",
452
+ children: [/* @__PURE__ */ (0, Z.jsx)(se, {}), /* @__PURE__ */ (0, Z.jsx)("span", {
453
+ className: S,
454
+ children: "Save"
455
+ })]
456
+ }),
457
+ nativeButton: !0
458
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "Save request" }) })] }),
459
+ r && h ? /* @__PURE__ */ (0, Z.jsxs)(c, {
460
+ open: D ? void 0 : !1,
461
+ children: [/* @__PURE__ */ (0, Z.jsx)(a, {
462
+ render: /* @__PURE__ */ (0, Z.jsx)("div", {
463
+ onMouseEnter: () => A(!0),
464
+ onMouseLeave: () => A(!1),
465
+ className: "relative",
466
+ children: /* @__PURE__ */ (0, Z.jsx)(u, {
467
+ "data-testid": "tool-execution-cancel-button",
468
+ onClick: h,
469
+ variant: D ? "destructive" : "default",
470
+ size: "sm",
471
+ className: i(o, T, E, "transition-all"),
472
+ children: D ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
473
+ /* @__PURE__ */ (0, Z.jsx)(fe, {}),
474
+ /* @__PURE__ */ (0, Z.jsx)("span", {
475
+ className: S,
476
+ children: "Cancel"
477
+ }),
478
+ /* @__PURE__ */ (0, Z.jsx)("span", {
479
+ className: w,
480
+ children: "Esc"
481
+ })
482
+ ] }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(Y, {}), /* @__PURE__ */ (0, Z.jsx)("span", {
483
+ className: S,
484
+ children: "Executing..."
485
+ })] })
486
+ })
487
+ }),
488
+ nativeButton: !1
489
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "Hover to cancel (or press Esc)" }) })]
490
+ }) : /* @__PURE__ */ (0, Z.jsx)(u, {
491
+ "data-testid": "tool-execution-execute-button",
492
+ onClick: p,
493
+ disabled: r || !s,
494
+ size: "sm",
495
+ className: i(o, T, E),
496
+ children: r ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(Y, {}), /* @__PURE__ */ (0, Z.jsx)("span", {
497
+ className: S,
498
+ children: "Executing..."
499
+ })] }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
500
+ /* @__PURE__ */ (0, Z.jsx)(q, {}),
501
+ /* @__PURE__ */ (0, Z.jsx)("span", {
502
+ className: S,
503
+ children: "Execute"
504
+ }),
505
+ /* @__PURE__ */ (0, Z.jsx)("span", {
506
+ className: w,
507
+ children: "⌘↵"
508
+ })
509
+ ] })
510
+ })
511
+ ]
512
+ })]
513
+ }) })
514
+ }),
515
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
516
+ className: "flex-1 overflow-y-auto px-3 sm:px-5 pb-4 pr-3",
517
+ children: [e.description && /* @__PURE__ */ (0, Z.jsxs)("div", {
518
+ className: "relative mb-6",
519
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
520
+ className: "relative",
521
+ children: [/* @__PURE__ */ (0, Z.jsx)("p", {
522
+ ref: W,
523
+ "data-testid": "tool-execution-description",
524
+ className: `text-sm text-gray-600 dark:text-gray-400 leading-relaxed transition-all duration-300 ${!B && U ? "line-clamp-3" : ""}`,
525
+ children: e.description
526
+ }), U && !B && /* @__PURE__ */ (0, Z.jsx)("div", { className: "absolute bottom-0 left-0 right-0 h-[1.4em] bg-linear-to-t from-white/95 dark:from-black/95 via-white/55 dark:via-black/55 to-transparent pointer-events-none" })]
527
+ }), U && /* @__PURE__ */ (0, Z.jsx)("div", {
528
+ className: "flex justify-end",
529
+ children: /* @__PURE__ */ (0, Z.jsx)("button", {
530
+ onClick: () => te(!B),
531
+ className: "relative z-10 inline-flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 mt-1 transition-colors",
532
+ children: B ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: ["Show less", /* @__PURE__ */ (0, Z.jsx)(Te, { className: "h-3 w-3" })] }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: ["Show more", /* @__PURE__ */ (0, Z.jsx)(x, { className: "h-3 w-3" })] })
533
+ })
534
+ })]
535
+ }), /* @__PURE__ */ (0, Z.jsx)(Ie, {
536
+ selectedTool: e,
537
+ toolArgs: t,
538
+ onArgChange: d,
539
+ onBulkPaste: g,
540
+ autoFilledFields: _,
541
+ setFields: v,
542
+ sendEmptyFields: y,
543
+ onToggleEmpty: b
544
+ })]
545
+ }),
546
+ /* @__PURE__ */ (0, Z.jsx)(ee, {
547
+ open: N,
548
+ onOpenChange: P,
549
+ children: /* @__PURE__ */ (0, Z.jsxs)(j, {
550
+ scrollable: !0,
551
+ className: "max-w-3xl max-h-[80vh]",
552
+ children: [/* @__PURE__ */ (0, Z.jsx)(k, {
553
+ sticky: !0,
554
+ children: /* @__PURE__ */ (0, Z.jsx)(C, { children: "Tool Definition" })
555
+ }), /* @__PURE__ */ (0, Z.jsx)(O, { children: /* @__PURE__ */ (0, Z.jsx)(M, {
556
+ onCopy: async () => {
557
+ e && await z(JSON.stringify(e, null, 2));
558
+ },
559
+ children: /* @__PURE__ */ (0, Z.jsx)(H, {
560
+ data: e,
561
+ filename: `tool-definition-${e.name}-${Date.now()}.json`
562
+ })
563
+ }) })]
564
+ })
565
+ })
566
+ ]
567
+ }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
568
+ className: "flex flex-col items-center justify-center h-full p-4 text-center",
569
+ children: [/* @__PURE__ */ (0, Z.jsx)("p", {
570
+ className: "text-gray-500 dark:text-gray-400 mb-2",
571
+ children: "Select a tool to get started"
572
+ }), /* @__PURE__ */ (0, Z.jsx)("p", {
573
+ className: "text-xs text-gray-400 dark:text-gray-500",
574
+ children: "Choose a tool from the list to view its details and execute it"
575
+ })]
576
+ });
577
+ }
578
+ //#endregion
579
+ //#region src/client/components/tools/ToolResultDisplay.tsx
580
+ function Re({ timestamp: e }) {
581
+ let [t, n] = (0, X.useState)(() => ze(e));
582
+ return (0, X.useEffect)(() => {
583
+ let t = () => n(ze(e));
584
+ t();
585
+ let r = setInterval(t, 1e3);
586
+ return () => clearInterval(r);
587
+ }, [e]), /* @__PURE__ */ (0, Z.jsx)("span", { children: t });
588
+ }
589
+ function ze(e) {
590
+ let t = Date.now() - e, n = Math.floor(t / 1e3), r = Math.floor(n / 60), i = Math.floor(r / 60), a = Math.floor(i / 24);
591
+ return n < 10 ? "now" : n < 60 ? `${n}s ago` : r < 60 ? `${r}m ago` : i < 24 ? `${i}h ago` : `${a}d ago`;
592
+ }
593
+ function Be(e) {
594
+ if (!e?.isError) return null;
595
+ let t = e.content;
596
+ if (Array.isArray(t)) {
597
+ let e = t.filter((e) => e.type === "text").map((e) => e.text).filter(Boolean);
598
+ if (e.length > 0) return e.join("\n");
599
+ }
600
+ return "An error occurred";
601
+ }
602
+ function Ve(e) {
603
+ try {
604
+ return JSON.parse(e), !0;
605
+ } catch {
606
+ return !1;
607
+ }
608
+ }
609
+ function He({ content: e }) {
610
+ let [t, n] = (0, X.useState)(/* @__PURE__ */ new Set()), r = (0, X.useCallback)((e) => {
611
+ n((t) => {
612
+ let n = new Set(t);
613
+ return n.has(e) ? n.delete(e) : n.add(e), n;
614
+ });
615
+ }, []);
616
+ return !Array.isArray(e) || e.length === 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
617
+ className: "text-sm text-gray-500 dark:text-gray-400",
618
+ children: "No content"
619
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
620
+ className: "space-y-4",
621
+ children: e.map((e, n) => {
622
+ if (e.type === "text") {
623
+ let i = e.text || "", a = t.has(n), o = Ve(i), s = o ? (() => {
624
+ try {
625
+ return JSON.parse(i);
626
+ } catch {
627
+ return null;
628
+ }
629
+ })() : null;
630
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
631
+ className: "space-y-2",
632
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
633
+ className: "flex items-center justify-between gap-2",
634
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
635
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
636
+ children: ["Text Content", a ? " (formatted)" : ""]
637
+ }), o && /* @__PURE__ */ (0, Z.jsx)("button", {
638
+ type: "button",
639
+ onClick: () => r(n),
640
+ className: "text-xs text-blue-600 dark:text-blue-400 hover:underline",
641
+ "data-testid": `tool-result-format-toggle-${n}`,
642
+ children: a ? "Show as text" : "Try to format"
643
+ })]
644
+ }), a && s !== null ? /* @__PURE__ */ (0, Z.jsx)(H, {
645
+ data: s,
646
+ filename: `content-${n}.json`
647
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
648
+ className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 font-mono text-sm whitespace-pre-wrap break-words",
649
+ "data-testid": "tool-execution-results-text-content",
650
+ children: i
651
+ })]
652
+ }, n);
653
+ }
654
+ if (e.type === "image") return /* @__PURE__ */ (0, Z.jsxs)("div", {
655
+ className: "space-y-2",
656
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
657
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
658
+ children: "Image Content"
659
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
660
+ className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3",
661
+ children: [/* @__PURE__ */ (0, Z.jsx)("img", {
662
+ src: `data:${e.mimeType || "image/png"};base64,${e.data}`,
663
+ alt: "Result",
664
+ className: "max-w-full rounded",
665
+ "data-testid": "tool-execution-results-image-content"
666
+ }), e.annotations && /* @__PURE__ */ (0, Z.jsx)("div", {
667
+ className: "mt-2 text-xs text-gray-500 dark:text-gray-400",
668
+ children: /* @__PURE__ */ (0, Z.jsx)(H, {
669
+ data: e.annotations,
670
+ filename: `image-annotations-${n}.json`,
671
+ "data-testid": "tool-execution-results-image-annotations"
672
+ })
673
+ })]
674
+ })]
675
+ }, n);
676
+ if (e.type === "audio") return /* @__PURE__ */ (0, Z.jsxs)("div", {
677
+ className: "space-y-2",
678
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
679
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
680
+ children: "Audio Content"
681
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
682
+ className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3",
683
+ children: [/* @__PURE__ */ (0, Z.jsx)("audio", {
684
+ controls: !0,
685
+ src: `data:${e.mimeType || "audio/wav"};base64,${e.data}`,
686
+ className: "w-full",
687
+ "data-testid": "tool-execution-results-audio-content"
688
+ }), e.annotations && /* @__PURE__ */ (0, Z.jsx)("div", {
689
+ className: "mt-2 text-xs text-gray-500 dark:text-gray-400",
690
+ children: /* @__PURE__ */ (0, Z.jsx)(H, {
691
+ data: e.annotations,
692
+ filename: `audio-annotations-${n}.json`,
693
+ "data-testid": "tool-execution-results-audio-annotations"
694
+ })
695
+ })]
696
+ })]
697
+ }, n);
698
+ if (e.type === "resource_link") return /* @__PURE__ */ (0, Z.jsxs)("div", {
699
+ className: "space-y-2",
700
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
701
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
702
+ children: "Resource Link"
703
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
704
+ className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 space-y-2",
705
+ children: [
706
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
707
+ className: "font-mono text-sm break-all",
708
+ children: [
709
+ /* @__PURE__ */ (0, Z.jsx)("span", {
710
+ className: "text-gray-600 dark:text-gray-400",
711
+ children: "URI:"
712
+ }),
713
+ " ",
714
+ e.uri
715
+ ]
716
+ }),
717
+ e.name && /* @__PURE__ */ (0, Z.jsxs)("div", {
718
+ className: "text-sm",
719
+ children: [
720
+ /* @__PURE__ */ (0, Z.jsx)("span", {
721
+ className: "text-gray-600 dark:text-gray-400",
722
+ children: "Name:"
723
+ }),
724
+ " ",
725
+ e.name
726
+ ]
727
+ }),
728
+ e.description && /* @__PURE__ */ (0, Z.jsxs)("div", {
729
+ className: "text-sm",
730
+ children: [
731
+ /* @__PURE__ */ (0, Z.jsx)("span", {
732
+ className: "text-gray-600 dark:text-gray-400",
733
+ children: "Description:"
734
+ }),
735
+ " ",
736
+ e.description
737
+ ]
738
+ }),
739
+ e.mimeType && /* @__PURE__ */ (0, Z.jsxs)("div", {
740
+ className: "text-sm",
741
+ children: [
742
+ /* @__PURE__ */ (0, Z.jsx)("span", {
743
+ className: "text-gray-600 dark:text-gray-400",
744
+ children: "MIME Type:"
745
+ }),
746
+ " ",
747
+ e.mimeType
748
+ ]
749
+ }),
750
+ e.annotations && /* @__PURE__ */ (0, Z.jsxs)("div", {
751
+ className: "mt-2",
752
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
753
+ className: "text-xs text-gray-500 dark:text-gray-400 mb-1",
754
+ children: "Annotations:"
755
+ }), /* @__PURE__ */ (0, Z.jsx)(H, {
756
+ data: e.annotations,
757
+ filename: `resource-link-annotations-${n}.json`,
758
+ "data-testid": "tool-execution-results-resource-link-annotations"
759
+ })]
760
+ })
761
+ ]
762
+ })]
763
+ }, n);
764
+ if (e.type === "resource") {
765
+ let t = e.resource || {};
766
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
767
+ className: "space-y-2",
768
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
769
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
770
+ children: "Embedded Resource"
771
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
772
+ className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 space-y-2",
773
+ children: [
774
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
775
+ className: "font-mono text-sm break-all",
776
+ "data-testid": "tool-execution-results-resource-uri",
777
+ children: [
778
+ /* @__PURE__ */ (0, Z.jsx)("span", {
779
+ className: "text-gray-600 dark:text-gray-400",
780
+ children: "URI:"
781
+ }),
782
+ " ",
783
+ t.uri
784
+ ]
785
+ }),
786
+ t.mimeType && /* @__PURE__ */ (0, Z.jsxs)("div", {
787
+ className: "text-sm",
788
+ children: [
789
+ /* @__PURE__ */ (0, Z.jsx)("span", {
790
+ className: "text-gray-600 dark:text-gray-400",
791
+ "data-testid": "tool-execution-results-mime-type",
792
+ children: "MIME Type:"
793
+ }),
794
+ " ",
795
+ t.mimeType
796
+ ]
797
+ }),
798
+ t.text && /* @__PURE__ */ (0, Z.jsxs)("div", {
799
+ "data-testid": "tool-execution-results-resource-text-content",
800
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
801
+ className: "text-xs text-gray-500 dark:text-gray-400 mb-1",
802
+ children: "Content:"
803
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
804
+ className: "bg-white dark:bg-black rounded p-2 font-mono text-sm whitespace-pre-wrap break-words max-h-60 overflow-y-auto",
805
+ children: t.text
806
+ })]
807
+ }),
808
+ t.blob && /* @__PURE__ */ (0, Z.jsxs)("div", {
809
+ className: "text-sm text-gray-600 dark:text-gray-400",
810
+ children: [
811
+ "[Binary content: ",
812
+ t.blob.length || 0,
813
+ " bytes]"
814
+ ]
815
+ }),
816
+ t.annotations && /* @__PURE__ */ (0, Z.jsxs)("div", {
817
+ className: "mt-2",
818
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
819
+ className: "text-xs text-gray-500 dark:text-gray-400 mb-1",
820
+ children: "Annotations:"
821
+ }), /* @__PURE__ */ (0, Z.jsx)(H, {
822
+ data: t.annotations,
823
+ filename: `resource-annotations-${n}.json`,
824
+ "data-testid": "tool-execution-results-resource-annotations"
825
+ })]
826
+ })
827
+ ]
828
+ })]
829
+ }, n);
830
+ }
831
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
832
+ className: "space-y-2",
833
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
834
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
835
+ children: ["Unknown Content Type: ", e.type || "N/A"]
836
+ }), /* @__PURE__ */ (0, Z.jsx)(H, {
837
+ data: e,
838
+ filename: `content-${n}.json`,
839
+ "data-testid": "tool-execution-results-unknown-content"
840
+ })]
841
+ }, n);
842
+ })
843
+ });
844
+ }
845
+ function Ue({ serverId: e, viewId: t, toolName: n, resourceUri: r, toolInput: i, toolOutput: a, toolMetadata: o, readResource: s, customProps: c, displayMode: l, onDisplayModeChange: u, onSendFollowUp: d }) {
846
+ let f = Ce({
847
+ serverId: e,
848
+ viewId: t,
849
+ resourceUri: r,
850
+ toolName: n,
851
+ toolInput: i,
852
+ toolOutput: a,
853
+ toolMetadata: o,
854
+ readResource: s,
855
+ displayMode: l,
856
+ onDisplayModeChange: u
857
+ });
858
+ if (!f) return /* @__PURE__ */ (0, Z.jsx)(I, {
859
+ className: "w-full h-full min-h-[240px]",
860
+ children: /* @__PURE__ */ (0, Z.jsx)(Y, { className: "size-5" })
861
+ });
862
+ let p = l === "inline" ? "w-full h-full flex items-center justify-center relative p-4 min-h-0" : "w-full h-full relative p-4", m = c ? JSON.stringify(c) : "no-custom-props";
863
+ return /* @__PURE__ */ (0, Z.jsx)(I, {
864
+ className: "w-full h-full min-h-[240px]",
865
+ children: /* @__PURE__ */ (0, Z.jsx)(ye, {
866
+ viewId: t,
867
+ toolName: n,
868
+ toolInput: i,
869
+ toolOutput: a,
870
+ customProps: c,
871
+ className: p,
872
+ onMessage: (e) => {
873
+ e.length > 0 && d && d(e);
874
+ },
875
+ ...f
876
+ }, m)
877
+ });
878
+ }
879
+ function We({ results: e, copiedResult: t, serverId: n, readResource: r, onCopy: i, onMaximize: a, isMaximized: o = !1, onRerunTool: s }) {
880
+ let [c, l] = (0, X.useState)(0), [d, f] = (0, X.useState)(!0), [p, m] = (0, X.useState)(null), [h, b] = (0, X.useState)("inline"), [x, S] = (0, X.useState)(null), C = (0, X.useRef)(!1), w = e[0], T = w ? e.filter((e) => e.toolName === w.toolName) : [], E = T[c] || T[0], D = e.findIndex((e) => e === E), O = (E ? E.error || Be(E.result) : null) ?? (E == null ? "" : JSON.stringify(E.result, null, 2));
881
+ (0, X.useEffect)(() => {
882
+ T.length > 0 && c >= T.length && l(0);
883
+ }, [T.length, c]), (0, X.useEffect)(() => {
884
+ C.current = !1, m(null);
885
+ }, [w?.toolName]);
886
+ let k = (0, X.useMemo)(() => E?.args, [E?.timestamp, c]), A = (0, X.useMemo)(() => E?.result, [
887
+ E?.timestamp,
888
+ E?.duration,
889
+ c
890
+ ]), j = (0, X.useCallback)((e) => r(e), [r]), M = (0, X.useCallback)((e) => {
891
+ let t = e.filter((e) => e.type === "text" && "text" in e).map((e) => e.text).join("\n"), n = e.filter((e) => e.type === "image").length, r = e.filter((e) => e.type === "resource").length, i = [n > 0 && `${n} image${n > 1 ? "s" : ""}`, r > 0 && `${r} resource${r > 1 ? "s" : ""}`].filter(Boolean).join(", ");
892
+ be.info("Widget follow-up", {
893
+ description: [t, i].filter(Boolean).join(" — "),
894
+ duration: 5e3
895
+ });
896
+ }, []), ee = (0, X.useMemo)(() => E && _e(E.toolMeta) ? "mcp-apps" : null, [E]), N = (0, X.useMemo)(() => E?.toolMeta ? ve(E.toolMeta) : null, [E?.toolMeta]), F = (0, X.useMemo)(() => ee === "mcp-apps" && !!N, [ee, N]), I = (0, X.useMemo)(() => E?.result?.content || [], [E]), z = (0, X.useMemo)(() => N || null, [N]), B = (0, X.useMemo)(() => !!(I && I.length > 0 || E?.result?.structuredContent), [I, E]), V = (0, X.useMemo)(() => !F && B, [F, B]), U = (0, X.useMemo)(() => {
897
+ let e = [];
898
+ return F && N && e.push({
899
+ mode: "mcp-apps",
900
+ label: "Component (MCP Apps)"
901
+ }), e.push({
902
+ mode: "json",
903
+ label: "Raw JSON"
904
+ }), e;
905
+ }, [F, N]);
906
+ return (0, X.useEffect)(() => {
907
+ if (U.length === 0) return;
908
+ let e = p && U.some((e) => e.mode === p), t = U.find((e) => e.mode !== "json");
909
+ if (t) {
910
+ let n = C.current;
911
+ if (C.current = !0, !p || !e || p === "json" && !n) {
912
+ m(t.mode);
913
+ return;
914
+ }
915
+ } else (!p || !e) && m("json");
916
+ }, [U, p]), e.length === 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
917
+ className: "flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700",
918
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
919
+ className: "flex-1 overflow-y-auto h-full",
920
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
921
+ className: "flex items-center justify-center h-full",
922
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
923
+ className: "text-center",
924
+ children: /* @__PURE__ */ (0, Z.jsx)(pe, {
925
+ vertical: !0,
926
+ noBorder: !0,
927
+ message: "No Results yet"
928
+ })
929
+ })
930
+ })
931
+ })
932
+ }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
933
+ className: "relative flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700",
934
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
935
+ className: "flex-1 overflow-y-auto h-full",
936
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
937
+ className: "space-y-0 flex flex-col flex-1 h-full",
938
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
939
+ className: `sticky top-0 z-40 flex items-center gap-2 px-4 pt-2 backdrop-blur-xs bg-white/50 dark:bg-black/50 ${F || V ? "border-b border-gray-200 dark:border-zinc-600 pb-2" : ""}`,
940
+ children: [
941
+ /* @__PURE__ */ (0, Z.jsx)("h3", {
942
+ className: "text-sm font-medium hidden sm:block",
943
+ children: "Response"
944
+ }),
945
+ E.duration !== void 0 && /* @__PURE__ */ (0, Z.jsxs)("div", {
946
+ className: "hidden sm:flex items-center gap-1",
947
+ children: [/* @__PURE__ */ (0, Z.jsx)(te, { className: "h-3 w-3 text-gray-400" }), /* @__PURE__ */ (0, Z.jsxs)("span", {
948
+ className: "text-xs text-gray-500 dark:text-gray-400",
949
+ children: [E.duration, "ms"]
950
+ })]
951
+ }),
952
+ F && /* @__PURE__ */ (0, Z.jsx)("div", {
953
+ className: "flex items-center gap-4 sm:ml-4",
954
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
955
+ className: "flex items-center gap-2",
956
+ children: U.map((e, t) => /* @__PURE__ */ (0, Z.jsxs)(X.Fragment, { children: [t > 0 && /* @__PURE__ */ (0, Z.jsx)("span", {
957
+ className: "text-xs text-zinc-400",
958
+ children: "|"
959
+ }), /* @__PURE__ */ (0, Z.jsx)("button", {
960
+ "data-testid": `tool-result-view-${e.mode}`,
961
+ onClick: () => m(e.mode),
962
+ className: `text-xs font-medium ${p === e.mode ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
963
+ children: e.label
964
+ })] }, e.mode))
965
+ })
966
+ }),
967
+ V && /* @__PURE__ */ (0, Z.jsxs)("div", {
968
+ className: "flex items-center gap-2 sm:ml-4",
969
+ children: [
970
+ /* @__PURE__ */ (0, Z.jsx)("button", {
971
+ onClick: () => f(!0),
972
+ className: `text-xs font-medium ${d ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
973
+ children: "Formatted"
974
+ }),
975
+ /* @__PURE__ */ (0, Z.jsx)("span", {
976
+ className: "text-xs text-zinc-400",
977
+ children: "|"
978
+ }),
979
+ /* @__PURE__ */ (0, Z.jsx)("button", {
980
+ onClick: () => f(!1),
981
+ className: `text-xs font-medium ${d ? "text-zinc-500 dark:text-zinc-400" : "text-black dark:text-white"}`,
982
+ children: "Raw"
983
+ })
984
+ ]
985
+ }),
986
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
987
+ className: "ml-auto flex items-center gap-1",
988
+ children: [
989
+ o && s && /* @__PURE__ */ (0, Z.jsxs)(u, {
990
+ "data-testid": "tool-result-rerun",
991
+ variant: "ghost",
992
+ size: "sm",
993
+ onClick: s,
994
+ title: "Re-run with same arguments",
995
+ children: [/* @__PURE__ */ (0, Z.jsx)(q, { className: "h-4 w-4" }), /* @__PURE__ */ (0, Z.jsx)("span", {
996
+ className: "hidden sm:inline ml-1",
997
+ children: "Re-run"
998
+ })]
999
+ }),
1000
+ F && a && /* @__PURE__ */ (0, Z.jsx)(u, {
1001
+ "data-testid": "tool-result-maximize",
1002
+ variant: "ghost",
1003
+ size: "sm",
1004
+ onClick: a,
1005
+ title: o ? "Restore" : "Maximize",
1006
+ children: o ? /* @__PURE__ */ (0, Z.jsx)(oe, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, Z.jsx)(ae, { className: "h-4 w-4" })
1007
+ }),
1008
+ T.length > 1 && /* @__PURE__ */ (0, Z.jsxs)(y, {
1009
+ value: c.toString(),
1010
+ onValueChange: (e) => l(parseInt(e)),
1011
+ children: [/* @__PURE__ */ (0, Z.jsx)(g, {
1012
+ className: "w-[140px] h-8 text-xs",
1013
+ leading: /* @__PURE__ */ (0, Z.jsxs)("div", {
1014
+ className: "flex items-center gap-1",
1015
+ children: [/* @__PURE__ */ (0, Z.jsx)(K, { className: "h-3 w-3" }), /* @__PURE__ */ (0, Z.jsx)(Re, { timestamp: E.timestamp })]
1016
+ })
1017
+ }), /* @__PURE__ */ (0, Z.jsx)(_, { children: T.map((e, t) => /* @__PURE__ */ (0, Z.jsx)(v, {
1018
+ value: t.toString(),
1019
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
1020
+ className: "flex items-center gap-2",
1021
+ children: [
1022
+ /* @__PURE__ */ (0, Z.jsx)(K, { className: "h-3 w-3" }),
1023
+ /* @__PURE__ */ (0, Z.jsx)("span", { children: ze(e.timestamp) }),
1024
+ /* @__PURE__ */ (0, Z.jsxs)("span", {
1025
+ className: "text-xs text-muted-foreground",
1026
+ children: [
1027
+ "(",
1028
+ new Date(e.timestamp).toLocaleTimeString(),
1029
+ ")"
1030
+ ]
1031
+ })
1032
+ ]
1033
+ })
1034
+ }, t)) })]
1035
+ }),
1036
+ /* @__PURE__ */ (0, Z.jsx)(u, {
1037
+ "data-testid": `tool-result-copy-${D}`,
1038
+ variant: "ghost",
1039
+ size: "sm",
1040
+ onClick: () => i(D, O),
1041
+ children: t === D ? /* @__PURE__ */ (0, Z.jsx)(L, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, Z.jsx)(R, { className: "h-4 w-4" })
1042
+ })
1043
+ ]
1044
+ })
1045
+ ]
1046
+ }), (() => {
1047
+ let e = E.error || Be(E.result);
1048
+ return e ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1049
+ className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3 mx-4",
1050
+ children: [/* @__PURE__ */ (0, Z.jsx)("p", {
1051
+ className: "text-red-800 dark:text-red-300 font-medium",
1052
+ children: "Error:"
1053
+ }), /* @__PURE__ */ (0, Z.jsx)("p", {
1054
+ className: "text-red-700 dark:text-red-400 text-sm",
1055
+ children: e
1056
+ })]
1057
+ }) : (() => {
1058
+ if (!p) return /* @__PURE__ */ (0, Z.jsx)("div", {
1059
+ className: "flex items-center justify-center w-full h-[200px]",
1060
+ children: /* @__PURE__ */ (0, Z.jsx)(Y, { className: "size-5" })
1061
+ });
1062
+ switch (p) {
1063
+ case "mcp-apps": return !F || !N ? /* @__PURE__ */ (0, Z.jsx)("div", {
1064
+ className: "px-4 pt-4",
1065
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
1066
+ className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3",
1067
+ children: /* @__PURE__ */ (0, Z.jsx)("p", {
1068
+ className: "text-sm text-red-600 dark:text-red-400",
1069
+ children: "MCP Apps resource not available"
1070
+ })
1071
+ })
1072
+ }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
1073
+ className: "flex flex-1 relative flex-col min-h-0",
1074
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
1075
+ className: "absolute top-2 right-2 z-30 flex items-center gap-2",
1076
+ children: /* @__PURE__ */ (0, Z.jsx)(P, {
1077
+ toolCallId: `tool-${E.timestamp}`,
1078
+ displayMode: h,
1079
+ onDisplayModeChange: b,
1080
+ propsContext: "tool",
1081
+ resourceUri: N,
1082
+ toolInput: E.args,
1083
+ resourceAnnotations: E.toolMeta,
1084
+ llmConfig: null,
1085
+ resource: null,
1086
+ onPropsChange: S
1087
+ })
1088
+ }), /* @__PURE__ */ (0, Z.jsx)(Ue, {
1089
+ serverId: n,
1090
+ viewId: `tool-${E.timestamp}`,
1091
+ toolName: E.toolName,
1092
+ toolInput: k,
1093
+ toolOutput: A,
1094
+ toolMetadata: E.toolMeta,
1095
+ resourceUri: N,
1096
+ readResource: j,
1097
+ customProps: x || void 0,
1098
+ displayMode: h,
1099
+ onDisplayModeChange: b,
1100
+ onSendFollowUp: M
1101
+ }, `mcp-apps-${E.timestamp}`)]
1102
+ });
1103
+ case "json":
1104
+ if (V && d) {
1105
+ let e = E.result?.structuredContent;
1106
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
1107
+ className: "px-4 pt-4 space-y-4",
1108
+ "data-testid": "tool-execution-results-content",
1109
+ children: [
1110
+ e && /* @__PURE__ */ (0, Z.jsxs)("div", {
1111
+ className: "space-y-2",
1112
+ "data-testid": "tool-execution-results-structured-content",
1113
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
1114
+ className: "text-xs font-medium text-gray-500 dark:text-gray-400",
1115
+ children: "Structured Content"
1116
+ }), /* @__PURE__ */ (0, Z.jsx)(H, {
1117
+ data: e,
1118
+ filename: `structured-content-${E.toolName}-${Date.now()}.json`
1119
+ })]
1120
+ }),
1121
+ I && I.length > 0 && /* @__PURE__ */ (0, Z.jsx)(He, { content: I }),
1122
+ !e && (!I || I.length === 0) && /* @__PURE__ */ (0, Z.jsx)("div", {
1123
+ className: "text-sm text-gray-500 dark:text-gray-400",
1124
+ "data-testid": "tool-execution-results-no-content",
1125
+ children: "No content to display"
1126
+ })
1127
+ ]
1128
+ });
1129
+ }
1130
+ return /* @__PURE__ */ (0, Z.jsx)("div", {
1131
+ className: "px-4 pt-4",
1132
+ children: /* @__PURE__ */ (0, Z.jsx)(H, {
1133
+ data: E.result,
1134
+ filename: `tool-result-${E.toolName}-${Date.now()}.json`
1135
+ })
1136
+ });
1137
+ default: return null;
1138
+ }
1139
+ })();
1140
+ })()]
1141
+ })
1142
+ }), z && p === "mcp-apps" && /* @__PURE__ */ (0, Z.jsx)("div", {
1143
+ className: "absolute bottom-0 left-1/2 -translate-x-1/2 z-40 pointer-events-none",
1144
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
1145
+ className: "text-[11px] bg-gray-200 dark:bg-zinc-800 text-gray-500 dark:text-gray-400 px-3 py-0.5 rounded-t-xl font-mono max-w-[320px] truncate block",
1146
+ children: z
1147
+ })
1148
+ })]
1149
+ });
1150
+ }
1151
+ //#endregion
1152
+ //#region src/client/components/tools/ToolsList.tsx
1153
+ function Ge({ tools: e, selectedTool: t, onToolSelect: n, focusedIndex: i }) {
1154
+ if (e.length === 0) return /* @__PURE__ */ (0, Z.jsxs)("div", {
1155
+ className: "flex flex-1 flex-col items-center justify-center p-4 text-center",
1156
+ children: [/* @__PURE__ */ (0, Z.jsx)(de, { className: "h-12 w-12 text-gray-400 dark:text-gray-600 mb-3" }), /* @__PURE__ */ (0, Z.jsx)("p", {
1157
+ className: "text-gray-500 dark:text-gray-400",
1158
+ children: "No tools available"
1159
+ })]
1160
+ });
1161
+ let o = e.some((e) => e.inputSchema?.properties && Object.keys(e.inputSchema.properties).length > 0);
1162
+ return /* @__PURE__ */ (0, Z.jsx)("div", { children: e.map((e, s) => {
1163
+ let u = e._meta, d = _e(u) ? "mcp-apps" : null, f = e.inputSchema?.properties, p = f ? Object.keys(f).length : 0, m = o && p > 0 && /* @__PURE__ */ (0, Z.jsxs)(r, {
1164
+ variant: "outline",
1165
+ className: "text-xs border-gray-300 dark:border-zinc-600 text-gray-600 dark:text-gray-400",
1166
+ children: [p, " params"]
1167
+ }), h = d === "mcp-apps" || m ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1168
+ className: "flex items-center gap-1.5",
1169
+ children: [d === "mcp-apps" && /* @__PURE__ */ (0, Z.jsxs)(c, { children: [/* @__PURE__ */ (0, Z.jsx)(a, {
1170
+ render: /* @__PURE__ */ (0, Z.jsx)("span", {
1171
+ className: "inline-flex",
1172
+ children: /* @__PURE__ */ (0, Z.jsx)(ce, { className: "h-3.5 w-3.5" })
1173
+ }),
1174
+ nativeButton: !1
1175
+ }), /* @__PURE__ */ (0, Z.jsx)(l, { children: /* @__PURE__ */ (0, Z.jsx)("p", { children: "UI widget" }) })] }), m]
1176
+ }) : void 0;
1177
+ return /* @__PURE__ */ (0, Z.jsx)(G, {
1178
+ id: `tool-${e.name}`,
1179
+ "data-testid": `tool-item-${e.name}`,
1180
+ isSelected: t?.name === e.name,
1181
+ isFocused: i === s,
1182
+ title: e.name,
1183
+ description: e.description,
1184
+ metadata: h,
1185
+ onClick: () => n(e)
1186
+ }, e.name);
1187
+ }) });
1188
+ }
1189
+ //#endregion
1190
+ //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/alert-dialog/root/AlertDialogRoot.mjs
1191
+ function Ke(e) {
1192
+ return A(e, "alert-dialog");
1193
+ }
1194
+ //#endregion
1195
+ //#region src/client/components/ui/alert-dialog.tsx
1196
+ function qe({ ...e }) {
1197
+ return /* @__PURE__ */ (0, Z.jsx)(Ke, {
1198
+ "data-slot": "alert-dialog",
1199
+ ...e
1200
+ });
1201
+ }
1202
+ function Je({ ...e }) {
1203
+ return /* @__PURE__ */ (0, Z.jsx)(D, {
1204
+ "data-slot": "alert-dialog-portal",
1205
+ ...e
1206
+ });
1207
+ }
1208
+ function Ye({ className: e, ...t }) {
1209
+ return /* @__PURE__ */ (0, Z.jsx)(N, {
1210
+ "data-slot": "alert-dialog-overlay",
1211
+ className: i("fixed inset-0 isolate z-50 bg-black/50 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", e),
1212
+ ...t
1213
+ });
1214
+ }
1215
+ function Xe({ className: e, size: t = "default", ...n }) {
1216
+ return /* @__PURE__ */ (0, Z.jsxs)(Je, { children: [/* @__PURE__ */ (0, Z.jsx)(Ye, {}), /* @__PURE__ */ (0, Z.jsx)(E, {
1217
+ "data-slot": "alert-dialog-content",
1218
+ "data-size": t,
1219
+ className: i("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl bg-popover p-6 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", e),
1220
+ ...n
1221
+ })] });
1222
+ }
1223
+ function Ze({ className: e, ...t }) {
1224
+ return /* @__PURE__ */ (0, Z.jsx)("div", {
1225
+ "data-slot": "alert-dialog-header",
1226
+ className: i("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", e),
1227
+ ...t
1228
+ });
1229
+ }
1230
+ function Qe({ className: e, ...t }) {
1231
+ return /* @__PURE__ */ (0, Z.jsx)("div", {
1232
+ "data-slot": "alert-dialog-footer",
1233
+ className: i("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", e),
1234
+ ...t
1235
+ });
1236
+ }
1237
+ function $e({ className: e, ...t }) {
1238
+ return /* @__PURE__ */ (0, Z.jsx)(w, {
1239
+ "data-slot": "alert-dialog-title",
1240
+ className: i("text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", e),
1241
+ ...t
1242
+ });
1243
+ }
1244
+ function et({ className: e, ...t }) {
1245
+ return /* @__PURE__ */ (0, Z.jsx)(T, {
1246
+ "data-slot": "alert-dialog-description",
1247
+ className: i("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", e),
1248
+ ...t
1249
+ });
1250
+ }
1251
+ function tt({ className: e, ...t }) {
1252
+ return /* @__PURE__ */ (0, Z.jsx)(u, {
1253
+ "data-slot": "alert-dialog-action",
1254
+ className: i(e),
1255
+ ...t
1256
+ });
1257
+ }
1258
+ function nt({ className: e, variant: t = "outline", size: n = "default", ...r }) {
1259
+ return /* @__PURE__ */ (0, Z.jsx)(S, {
1260
+ "data-slot": "alert-dialog-cancel",
1261
+ className: i(e),
1262
+ render: /* @__PURE__ */ (0, Z.jsx)(u, {
1263
+ variant: t,
1264
+ size: n
1265
+ }),
1266
+ ...r
1267
+ });
1268
+ }
1269
+ //#endregion
1270
+ //#region src/client/components/tools/useToolExecution.ts
1271
+ function rt({ selectedTool: e, payloadToSend: t, toolArgs: n, callTool: r, readResource: i, serverId: a }) {
1272
+ let [o, s] = (0, X.useState)([]), [c, l] = (0, X.useState)(!1), [u, d] = (0, X.useState)(null), [f, p] = (0, X.useState)(null), m = (0, X.useCallback)(async () => {
1273
+ if (!e || c) return;
1274
+ let o = new AbortController();
1275
+ p(o), l(!0);
1276
+ let u = Date.now();
1277
+ try {
1278
+ let c = t, l = e?._meta || e?.metadata, d = l?.ui?.resourceUri;
1279
+ if (d && typeof d == "string") {
1280
+ try {
1281
+ await i(d);
1282
+ } catch {}
1283
+ s([{
1284
+ toolName: e.name,
1285
+ args: c,
1286
+ result: null,
1287
+ timestamp: u,
1288
+ duration: 0,
1289
+ toolMeta: l
1290
+ }]);
1291
+ }
1292
+ let f = await r(e.name, c, {
1293
+ timeout: 6e5,
1294
+ resetTimeoutOnProgress: !0,
1295
+ signal: o.signal
1296
+ }), p = Date.now() - u, m = f?._meta ?? l;
1297
+ he(new me({
1298
+ toolName: e.name,
1299
+ serverId: a,
1300
+ success: !0,
1301
+ duration: p
1302
+ })).catch(() => {}), window.dispatchEvent(new Event("mcp-tool-executed")), s(d && typeof d == "string" ? (e) => e.map((e, t) => t === 0 ? {
1303
+ ...e,
1304
+ result: f,
1305
+ duration: p,
1306
+ toolMeta: m
1307
+ } : e) : (t) => [{
1308
+ toolName: e.name,
1309
+ args: n,
1310
+ result: f,
1311
+ timestamp: u,
1312
+ duration: p,
1313
+ toolMeta: m
1314
+ }, ...t]);
1315
+ } catch (t) {
1316
+ let r = Date.now() - u;
1317
+ he(new me({
1318
+ toolName: e.name,
1319
+ serverId: a,
1320
+ success: !1,
1321
+ duration: r,
1322
+ error: t instanceof Error ? t.message : String(t)
1323
+ })).catch(() => {}), window.dispatchEvent(new Event("mcp-tool-executed"));
1324
+ let i = e?._meta || e?.metadata, o = {
1325
+ toolName: e.name,
1326
+ args: n,
1327
+ result: null,
1328
+ error: t instanceof Error ? t.message : String(t),
1329
+ timestamp: u,
1330
+ duration: r,
1331
+ toolMeta: i
1332
+ };
1333
+ i?.ui?.resourceUri ? s([o]) : s((e) => [o, ...e]);
1334
+ } finally {
1335
+ l(!1);
1336
+ }
1337
+ }, [
1338
+ e,
1339
+ t,
1340
+ n,
1341
+ c,
1342
+ r,
1343
+ i,
1344
+ a
1345
+ ]), h = (0, X.useCallback)(async (e, t) => {
1346
+ try {
1347
+ await z(t), d(e), setTimeout(() => d(null), 2e3);
1348
+ } catch (e) {
1349
+ console.error("[ToolsTab] Failed to copy result:", e);
1350
+ }
1351
+ }, []), g = (0, X.useCallback)((e) => {
1352
+ s((t) => t.filter((t, n) => n !== e));
1353
+ }, []), _ = (0, X.useMemo)(() => e ? o.filter((t) => t.toolName === e.name) : [], [o, e]);
1354
+ return {
1355
+ results: o,
1356
+ setResults: s,
1357
+ isExecuting: c,
1358
+ copiedResult: u,
1359
+ executeTool: m,
1360
+ handleCopyResult: h,
1361
+ handleDeleteResult: g,
1362
+ handleFullscreen: (0, X.useCallback)((e) => {
1363
+ let t = _[e];
1364
+ if (!t) return;
1365
+ let n = window.open("", "_blank", "width=800,height=600");
1366
+ n && (n.document.write(`
1367
+ <html>
1368
+ <head><title>${t.toolName} Result</title></head>
1369
+ <body><pre>${JSON.stringify(t.result, null, 2)}</pre></body>
1370
+ </html>
1371
+ `), n.document.close());
1372
+ }, [_]),
1373
+ filteredResults: _,
1374
+ cancelExecution: (0, X.useCallback)(() => {
1375
+ f?.abort(), p(null), l(!1);
1376
+ }, [f])
1377
+ };
1378
+ }
1379
+ //#endregion
1380
+ //#region src/client/components/tools/useToolsTabNavigation.ts
1381
+ function it({ ref: e, activeTab: t, filteredTools: n, savedRequests: r, searchQuery: i, setSearchQuery: a, selectedTool: o, results: s, isExecuting: c, handleToolSelect: l, loadSavedRequest: u, refreshTools: d, selectedToolName: f, tools: p, setSelectedToolName: m }) {
1382
+ let [h, g] = (0, X.useState)(!1), [_, v] = (0, X.useState)(-1), y = (0, X.useRef)(null), [b, x] = (0, X.useState)(!1), [S, C] = (0, X.useState)("list"), [w, T] = (0, X.useState)(!1);
1383
+ (0, X.useEffect)(() => {
1384
+ let e = () => x(window.innerWidth < 1024);
1385
+ return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
1386
+ }, []), (0, X.useEffect)(() => {
1387
+ C(o ? "detail" : "list");
1388
+ }, [o]), (0, X.useEffect)(() => {
1389
+ b && s.length > 0 && !c && C("response");
1390
+ }, [
1391
+ s,
1392
+ c,
1393
+ b
1394
+ ]), (0, X.useImperativeHandle)(e, () => ({
1395
+ focusSearch: () => {
1396
+ g(!0), setTimeout(() => y.current?.focus(), 0);
1397
+ },
1398
+ blurSearch: () => {
1399
+ a(""), g(!1), y.current?.blur();
1400
+ }
1401
+ })), (0, X.useEffect)(() => {
1402
+ h && y.current?.focus();
1403
+ }, [h]);
1404
+ let E = (0, X.useCallback)(() => {
1405
+ i.trim() || g(!1);
1406
+ }, [i]), D = (0, X.useCallback)(async () => {
1407
+ if (d) {
1408
+ T(!0);
1409
+ try {
1410
+ await d();
1411
+ } finally {
1412
+ T(!1);
1413
+ }
1414
+ }
1415
+ }, [d]);
1416
+ return (0, X.useEffect)(() => {
1417
+ t !== "tools" && g(!1);
1418
+ }, [t]), (0, X.useEffect)(() => {
1419
+ v(-1);
1420
+ }, [i, t]), (0, X.useEffect)(() => {
1421
+ let e = (e) => {
1422
+ let i = e.target;
1423
+ if (i.tagName === "INPUT" || i.tagName === "TEXTAREA" || i.contentEditable === "true" || e.metaKey || e.ctrlKey || e.altKey) return;
1424
+ let a = t === "tools" ? n : r;
1425
+ if (e.key === "ArrowDown") e.preventDefault(), v((e) => e + 1 >= a.length ? 0 : e + 1);
1426
+ else if (e.key === "ArrowUp") e.preventDefault(), v((e) => e - 1 < 0 ? a.length - 1 : e - 1);
1427
+ else if (e.key === "Enter" && _ >= 0) if (e.preventDefault(), t === "tools") {
1428
+ let e = n[_];
1429
+ e && l(e);
1430
+ } else {
1431
+ let e = r[_];
1432
+ e && u(e);
1433
+ }
1434
+ };
1435
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
1436
+ }, [
1437
+ _,
1438
+ n,
1439
+ r,
1440
+ t,
1441
+ l,
1442
+ u
1443
+ ]), (0, X.useEffect)(() => {
1444
+ if (_ >= 0) {
1445
+ let e = t === "tools" ? `tool-${n[_]?.name}` : `saved-${r[_]?.id}`;
1446
+ document.getElementById(e)?.scrollIntoView({
1447
+ behavior: "smooth",
1448
+ block: "nearest"
1449
+ });
1450
+ }
1451
+ }, [
1452
+ _,
1453
+ n,
1454
+ r,
1455
+ t
1456
+ ]), (0, X.useEffect)(() => {
1457
+ if (fetch("http://127.0.0.1:7371/ingest/4e7482c5-571f-4071-bd09-762c357289f4", {
1458
+ method: "POST",
1459
+ headers: {
1460
+ "Content-Type": "application/json",
1461
+ "X-Debug-Session-Id": "831b88"
1462
+ },
1463
+ body: JSON.stringify({
1464
+ sessionId: "831b88",
1465
+ location: "useToolsTabNavigation.ts:auto-select",
1466
+ message: "tools auto-select effect",
1467
+ data: {
1468
+ selectedToolName: f,
1469
+ toolsCount: p.length,
1470
+ toolNames: p.slice(0, 5).map((e) => e.name),
1471
+ toolFound: f ? !!p.find((e) => e.name === f) : !1,
1472
+ currentSelected: o?.name ?? null
1473
+ },
1474
+ timestamp: Date.now(),
1475
+ hypothesisId: "H2"
1476
+ })
1477
+ }).catch(() => {}), !f || p.length === 0) return;
1478
+ let e = p.find((e) => e.name === f);
1479
+ if (e) {
1480
+ fetch("http://127.0.0.1:7371/ingest/4e7482c5-571f-4071-bd09-762c357289f4", {
1481
+ method: "POST",
1482
+ headers: {
1483
+ "Content-Type": "application/json",
1484
+ "X-Debug-Session-Id": "831b88"
1485
+ },
1486
+ body: JSON.stringify({
1487
+ sessionId: "831b88",
1488
+ location: "useToolsTabNavigation.ts:auto-select-apply",
1489
+ message: "scheduling handleToolSelect",
1490
+ data: { toolName: e.name },
1491
+ timestamp: Date.now(),
1492
+ hypothesisId: "H4"
1493
+ })
1494
+ }).catch(() => {}), m(null);
1495
+ let t = setTimeout(() => {
1496
+ l(e), document.getElementById(`tool-${e.name}`)?.scrollIntoView({
1497
+ behavior: "smooth",
1498
+ block: "nearest"
1499
+ });
1500
+ }, 100);
1501
+ return () => clearTimeout(t);
1502
+ }
1503
+ }, [
1504
+ f,
1505
+ p,
1506
+ l,
1507
+ m
1508
+ ]), {
1509
+ isSearchExpanded: h,
1510
+ setIsSearchExpanded: g,
1511
+ focusedIndex: _,
1512
+ searchInputRef: y,
1513
+ isMobile: b,
1514
+ mobileView: S,
1515
+ setMobileView: C,
1516
+ isRefreshing: w,
1517
+ handleSearchBlur: E,
1518
+ handleRefresh: D
1519
+ };
1520
+ }
1521
+ //#endregion
1522
+ //#region src/client/components/ToolsTab.tsx
1523
+ function at({ ref: e, tools: t, callTool: n, readResource: r, serverId: i, isConnected: a, refreshTools: o }) {
1524
+ let [c, l] = (0, X.useState)(null), [d, f] = (0, X.useState)(null), { selectedToolName: p, setSelectedToolName: h } = xe(), [g, _] = (0, X.useState)({}), [v, y] = (0, X.useState)(/* @__PURE__ */ new Set()), [b, x] = (0, X.useState)(/* @__PURE__ */ new Set()), [S, C] = (0, X.useState)(""), [w, T] = (0, X.useState)("tools"), { savedRequests: E, saveSavedRequests: D } = le(), [O, k] = (0, X.useState)(!1), [A, j] = (0, X.useState)(""), [M, ee] = (0, X.useState)(!1), [N, P] = (0, X.useState)({
1525
+ open: !1,
1526
+ parsedObject: {},
1527
+ fieldsToUpdate: [],
1528
+ newFields: [],
1529
+ resolve: null
1530
+ }), [I, L] = (0, X.useState)(/* @__PURE__ */ new Set()), R = ie(), z = ie(), te = (0, X.useCallback)(() => {
1531
+ M ? (R.current && R.current.expand(), z.current && z.current.expand(), ee(!1)) : (R.current && R.current.collapse(), z.current && z.current.collapse(), ee(!0));
1532
+ }, [
1533
+ M,
1534
+ R,
1535
+ z
1536
+ ]), V = (0, X.useMemo)(() => {
1537
+ if (!S.trim()) return t;
1538
+ let e = S.toLowerCase();
1539
+ return t.filter((t) => t.name.toLowerCase().includes(e) || t.description?.toLowerCase().includes(e));
1540
+ }, [t, S]), H = (0, X.useCallback)((e) => {
1541
+ l(e);
1542
+ let t = {}, n = /* @__PURE__ */ new Set();
1543
+ e.inputSchema?.properties && Object.entries(e.inputSchema.properties).forEach(([e, r]) => {
1544
+ let i = r;
1545
+ i.default !== void 0 && (t[e] = i.default, n.add(e));
1546
+ }), _(t), y(n), x(/* @__PURE__ */ new Set());
1547
+ }, []), G = (0, X.useCallback)((e) => {
1548
+ let n = t.find((t) => t.name === e.toolName);
1549
+ n && (l(n), _(e.args), y(new Set(Object.keys(e.args))), x(/* @__PURE__ */ new Set()), f(e));
1550
+ }, [t]);
1551
+ (0, X.useEffect)(() => {
1552
+ if (c) {
1553
+ let e = t.find((e) => e.name === c.name);
1554
+ e ? e !== c && (JSON.stringify(e.inputSchema) !== JSON.stringify(c.inputSchema) || e.description !== c.description || JSON.stringify(e?._meta) !== JSON.stringify(c?._meta)) && l(e) : (l(null), h(null));
1555
+ }
1556
+ }, [
1557
+ t,
1558
+ c,
1559
+ h
1560
+ ]);
1561
+ let K = (0, X.useCallback)((e, t) => {
1562
+ let n = c?.inputSchema || {}, r = c?.inputSchema?.properties?.[e], i = r ? ke(r, n) : "string", a;
1563
+ a = i === "object" || i === "array" || i === "string" ? t : Me(t, i), _((t) => ({
1564
+ ...t,
1565
+ [e]: a
1566
+ }));
1567
+ let o = String(t).trim() === "";
1568
+ y((t) => {
1569
+ let n = new Set(t);
1570
+ return o ? n.delete(e) : n.add(e), n;
1571
+ }), x((t) => {
1572
+ let n = new Set(t);
1573
+ return n.delete(e), n;
1574
+ });
1575
+ }, [c]), ae = (0, X.useCallback)((e, t, n) => {
1576
+ if (n) {
1577
+ let n = t === "array" ? "[]" : t === "object" ? "{}" : "";
1578
+ _((t) => ({
1579
+ ...t,
1580
+ [e]: n
1581
+ })), y((t) => new Set(t).add(e)), x((t) => new Set(t).add(e));
1582
+ } else x((t) => {
1583
+ let n = new Set(t);
1584
+ return n.delete(e), n;
1585
+ }), y((t) => {
1586
+ let n = new Set(t);
1587
+ return n.delete(e), n;
1588
+ });
1589
+ }, []), oe = (0, X.useCallback)(async (e, t) => {
1590
+ if (!c) return !1;
1591
+ let n = Fe(e);
1592
+ if (!n) return !1;
1593
+ let r = c.inputSchema?.properties || {}, i = Object.keys(r), a = c.inputSchema || {}, o = [], s = [];
1594
+ return Object.entries(n).forEach(([e, t]) => {
1595
+ if (i.includes(e)) {
1596
+ let n = r[e], i = ke(n, a), c = t;
1597
+ i === "object" || i === "array" ? typeof t == "object" && t ? c = JSON.stringify(t, null, 2) : typeof t == "string" && (c = t) : c = typeof t == "object" && t ? JSON.stringify(t) : String(t);
1598
+ let l = g[e];
1599
+ l != null && l !== "" ? o.push({
1600
+ key: e,
1601
+ oldValue: l,
1602
+ newValue: c
1603
+ }) : (s.push(e), K(e, String(c)));
1604
+ }
1605
+ }), o.length === 0 && s.length === 0 ? !1 : o.length === 0 ? (L(new Set(s)), setTimeout(() => L(/* @__PURE__ */ new Set()), 2e3), !0) : new Promise((e) => {
1606
+ P({
1607
+ open: !0,
1608
+ parsedObject: n,
1609
+ fieldsToUpdate: o,
1610
+ newFields: s,
1611
+ resolve: e
1612
+ });
1613
+ });
1614
+ }, [
1615
+ c,
1616
+ g,
1617
+ K
1618
+ ]), se = (0, X.useCallback)(() => {
1619
+ if (!N.resolve) return;
1620
+ N.fieldsToUpdate.forEach(({ key: e, newValue: t }) => {
1621
+ K(e, String(t));
1622
+ });
1623
+ let e = [...N.fieldsToUpdate.map((e) => e.key), ...N.newFields];
1624
+ L(new Set(e)), setTimeout(() => L(/* @__PURE__ */ new Set()), 2e3), N.resolve(!0), P({
1625
+ open: !1,
1626
+ parsedObject: {},
1627
+ fieldsToUpdate: [],
1628
+ newFields: [],
1629
+ resolve: null
1630
+ });
1631
+ }, [N, K]), ce = (0, X.useCallback)(() => {
1632
+ N.resolve && (N.resolve(!1), P({
1633
+ open: !1,
1634
+ parsedObject: {},
1635
+ fieldsToUpdate: [],
1636
+ newFields: [],
1637
+ resolve: null
1638
+ }));
1639
+ }, [N]), q = (0, X.useMemo)(() => {
1640
+ if (!c?.inputSchema?.properties) return {};
1641
+ let e = c.inputSchema || {}, t = {};
1642
+ for (let n of v) {
1643
+ let r = c.inputSchema.properties[n];
1644
+ if (!r) continue;
1645
+ let i = ke(r, e);
1646
+ t[n] = Ne(b.has(n) ? i === "array" ? "[]" : i === "object" ? "{}" : "" : g[n], i);
1647
+ }
1648
+ return t;
1649
+ }, [
1650
+ c,
1651
+ g,
1652
+ v,
1653
+ b
1654
+ ]), { isExecuting: ue, copiedResult: fe, executeTool: J, handleCopyResult: pe, handleDeleteResult: me, handleFullscreen: _e, filteredResults: ve, cancelExecution: ye, results: be } = rt({
1655
+ selectedTool: c,
1656
+ payloadToSend: q,
1657
+ toolArgs: g,
1658
+ callTool: n,
1659
+ readResource: r,
1660
+ serverId: i
1661
+ }), { isSearchExpanded: Y, setIsSearchExpanded: Se, focusedIndex: Ce, searchInputRef: Te, isMobile: Oe, mobileView: Q, setMobileView: $, isRefreshing: Ae, handleSearchBlur: je, handleRefresh: Pe } = it({
1662
+ ref: e,
1663
+ activeTab: w,
1664
+ filteredTools: V,
1665
+ savedRequests: E,
1666
+ searchQuery: S,
1667
+ setSearchQuery: C,
1668
+ selectedTool: c,
1669
+ results: be,
1670
+ isExecuting: ue,
1671
+ handleToolSelect: H,
1672
+ loadSavedRequest: G,
1673
+ refreshTools: o,
1674
+ selectedToolName: p,
1675
+ tools: t,
1676
+ setSelectedToolName: h
1677
+ }), Ie = (0, X.useCallback)(() => {
1678
+ c && (j(""), k(!0));
1679
+ }, [c]), Re = (0, X.useCallback)(() => {
1680
+ if (!c) return;
1681
+ let e = {
1682
+ id: `${Date.now()}-${Math.random()}`,
1683
+ name: A.trim() || `${c.name} - ${(/* @__PURE__ */ new Date()).toLocaleString()}`,
1684
+ toolName: c.name,
1685
+ args: q,
1686
+ savedAt: Date.now(),
1687
+ serverId: c._serverId,
1688
+ serverName: c._serverName
1689
+ };
1690
+ D([...E, e]), he(new ge({
1691
+ toolName: c.name,
1692
+ serverId: i
1693
+ })).catch(() => {}), k(!1), j("");
1694
+ }, [
1695
+ c,
1696
+ A,
1697
+ q,
1698
+ E,
1699
+ D,
1700
+ i
1701
+ ]), ze = (0, X.useCallback)((e) => {
1702
+ D(E.filter((t) => t.id !== e)), d?.id === e && f(null);
1703
+ }, [
1704
+ E,
1705
+ D,
1706
+ d
1707
+ ]);
1708
+ return Oe ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1709
+ className: "h-full flex flex-col overflow-hidden relative bg-background",
1710
+ children: [
1711
+ Q !== "list" && /* @__PURE__ */ (0, Z.jsxs)("div", {
1712
+ className: "flex items-center gap-2 p-2 border-b shrink-0 bg-background z-10",
1713
+ children: [/* @__PURE__ */ (0, Z.jsx)(u, {
1714
+ variant: "ghost",
1715
+ size: "sm",
1716
+ onClick: () => {
1717
+ Q === "response" ? $("detail") : (l(null), $("list"));
1718
+ },
1719
+ className: "p-0 h-8 w-8",
1720
+ children: /* @__PURE__ */ (0, Z.jsx)(B, { className: "h-4 w-4" })
1721
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
1722
+ className: "flex items-center text-sm font-medium",
1723
+ children: [
1724
+ /* @__PURE__ */ (0, Z.jsx)("button", {
1725
+ onClick: () => {
1726
+ l(null), $("list");
1727
+ },
1728
+ className: "text-muted-foreground hover:text-foreground hover:underline cursor-pointer",
1729
+ children: "Tools"
1730
+ }),
1731
+ Q === "detail" && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("span", {
1732
+ className: "mx-2 text-muted-foreground",
1733
+ children: "/"
1734
+ }), /* @__PURE__ */ (0, Z.jsx)("button", {
1735
+ onClick: () => {
1736
+ $("response");
1737
+ },
1738
+ className: Q === "detail" ? "text-foreground hover:underline" : Q === "response" ? "text-muted-foreground hover:text-foreground hover:underline cursor-pointer" : "text-muted-foreground",
1739
+ children: "Execute"
1740
+ })] }),
1741
+ Q === "response" && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("span", {
1742
+ className: "mx-2 text-muted-foreground",
1743
+ children: "/"
1744
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
1745
+ className: "text-foreground",
1746
+ children: "Response"
1747
+ })] })
1748
+ ]
1749
+ })]
1750
+ }),
1751
+ /* @__PURE__ */ (0, Z.jsx)("div", {
1752
+ className: "flex-1 relative overflow-hidden",
1753
+ children: /* @__PURE__ */ (0, Z.jsxs)(m, {
1754
+ initial: !1,
1755
+ mode: "popLayout",
1756
+ children: [
1757
+ Q === "list" && /* @__PURE__ */ (0, Z.jsx)(s.div, {
1758
+ initial: { x: "-100%" },
1759
+ animate: { x: 0 },
1760
+ exit: { x: "-100%" },
1761
+ transition: {
1762
+ type: "spring",
1763
+ stiffness: 300,
1764
+ damping: 30
1765
+ },
1766
+ className: "absolute inset-0 flex flex-col bg-background z-0",
1767
+ children: /* @__PURE__ */ (0, Z.jsx)(W, { children: (e) => /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(we, {
1768
+ isScrolled: e,
1769
+ activeTab: w,
1770
+ isSearchExpanded: Y,
1771
+ searchQuery: S,
1772
+ primaryTabName: "tools",
1773
+ secondaryTabName: "saved",
1774
+ primaryTabTitle: "Tools",
1775
+ secondaryTabTitle: "Saved",
1776
+ primaryCount: V.length,
1777
+ secondaryCount: E.length,
1778
+ primaryIcon: de,
1779
+ secondaryIcon: F,
1780
+ searchPlaceholder: "Search tools...",
1781
+ onSearchExpand: () => Se(!0),
1782
+ onSearchChange: C,
1783
+ onSearchBlur: je,
1784
+ onTabSwitch: () => T(w === "tools" ? "saved" : "tools"),
1785
+ searchInputRef: Te,
1786
+ onRefresh: o ? Pe : void 0,
1787
+ isRefreshing: Ae
1788
+ }), w === "tools" ? /* @__PURE__ */ (0, Z.jsx)(Ge, {
1789
+ tools: V,
1790
+ selectedTool: c,
1791
+ onToolSelect: H,
1792
+ focusedIndex: Ce
1793
+ }) : /* @__PURE__ */ (0, Z.jsx)(Ee, {
1794
+ savedRequests: E,
1795
+ selectedRequest: d,
1796
+ onLoadRequest: G,
1797
+ onDeleteRequest: ze,
1798
+ focusedIndex: Ce
1799
+ })] }) })
1800
+ }, "list"),
1801
+ Q === "detail" && /* @__PURE__ */ (0, Z.jsx)(s.div, {
1802
+ initial: { x: "100%" },
1803
+ animate: { x: 0 },
1804
+ exit: { x: "-100%" },
1805
+ transition: {
1806
+ type: "spring",
1807
+ stiffness: 300,
1808
+ damping: 30
1809
+ },
1810
+ className: "absolute inset-0 bg-background z-10",
1811
+ children: /* @__PURE__ */ (0, Z.jsx)(Le, {
1812
+ selectedTool: c,
1813
+ toolArgs: g,
1814
+ payloadToSend: q,
1815
+ isExecuting: ue,
1816
+ isConnected: a,
1817
+ onArgChange: K,
1818
+ onExecute: J,
1819
+ onSave: Ie,
1820
+ onBulkPaste: oe,
1821
+ autoFilledFields: I,
1822
+ setFields: v,
1823
+ sendEmptyFields: b,
1824
+ onToggleEmpty: ae
1825
+ })
1826
+ }, "detail"),
1827
+ Q === "response" && /* @__PURE__ */ (0, Z.jsx)(s.div, {
1828
+ initial: { x: "100%" },
1829
+ animate: { x: 0 },
1830
+ exit: { x: "100%" },
1831
+ transition: {
1832
+ type: "spring",
1833
+ stiffness: 300,
1834
+ damping: 30
1835
+ },
1836
+ className: "absolute inset-0 bg-background z-20",
1837
+ children: /* @__PURE__ */ (0, Z.jsx)(We, {
1838
+ results: ve,
1839
+ copiedResult: fe,
1840
+ serverId: i,
1841
+ readResource: r,
1842
+ onCopy: pe,
1843
+ onDelete: me,
1844
+ onFullscreen: _e,
1845
+ onRerunTool: J
1846
+ })
1847
+ }, "response")
1848
+ ]
1849
+ })
1850
+ }),
1851
+ /* @__PURE__ */ (0, Z.jsx)(De, {
1852
+ isOpen: O,
1853
+ requestName: A,
1854
+ defaultPlaceholder: `${c?.name} - ${(/* @__PURE__ */ new Date()).toLocaleString()}`,
1855
+ onRequestNameChange: j,
1856
+ onSave: Re,
1857
+ onCancel: () => k(!1)
1858
+ }),
1859
+ /* @__PURE__ */ (0, Z.jsx)(qe, {
1860
+ open: N.open,
1861
+ onOpenChange: (e) => {
1862
+ e || ce();
1863
+ },
1864
+ children: /* @__PURE__ */ (0, Z.jsxs)(Xe, { children: [/* @__PURE__ */ (0, Z.jsxs)(Ze, { children: [/* @__PURE__ */ (0, Z.jsx)($e, { children: "Auto-fill fields from pasted object?" }), /* @__PURE__ */ (0, Z.jsxs)(et, { children: [N.fieldsToUpdate.length > 0 && /* @__PURE__ */ (0, Z.jsxs)("div", {
1865
+ className: "mb-3",
1866
+ children: [/* @__PURE__ */ (0, Z.jsx)("p", {
1867
+ className: "font-medium mb-2",
1868
+ children: "The following fields will be updated:"
1869
+ }), /* @__PURE__ */ (0, Z.jsx)("ul", {
1870
+ className: "text-sm space-y-1 max-h-[200px] overflow-y-auto",
1871
+ children: N.fieldsToUpdate.map(({ key: e, oldValue: t, newValue: n }) => /* @__PURE__ */ (0, Z.jsxs)("li", {
1872
+ className: "font-mono",
1873
+ children: [
1874
+ /* @__PURE__ */ (0, Z.jsxs)("span", {
1875
+ className: "font-semibold",
1876
+ children: [e, ":"]
1877
+ }),
1878
+ " ",
1879
+ /* @__PURE__ */ (0, Z.jsx)("span", {
1880
+ className: "text-red-600 dark:text-red-400 line-through",
1881
+ children: typeof t == "object" ? JSON.stringify(t).substring(0, 30) + "..." : String(t).substring(0, 30)
1882
+ }),
1883
+ " ",
1884
+ "→",
1885
+ " ",
1886
+ /* @__PURE__ */ (0, Z.jsx)("span", {
1887
+ className: "text-green-600 dark:text-green-400",
1888
+ children: typeof n == "string" && n.length > 30 ? n.substring(0, 30) + "..." : String(n).substring(0, 30)
1889
+ })
1890
+ ]
1891
+ }, e))
1892
+ })]
1893
+ }), N.newFields.length > 0 && /* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsx)("p", {
1894
+ className: "font-medium mb-1",
1895
+ children: "New fields to be filled:"
1896
+ }), /* @__PURE__ */ (0, Z.jsx)("p", {
1897
+ className: "text-sm font-mono",
1898
+ children: N.newFields.join(", ")
1899
+ })] })] })] }), /* @__PURE__ */ (0, Z.jsxs)(Qe, { children: [/* @__PURE__ */ (0, Z.jsx)(nt, {
1900
+ onClick: ce,
1901
+ children: "Cancel"
1902
+ }), /* @__PURE__ */ (0, Z.jsx)(tt, {
1903
+ onClick: se,
1904
+ children: "Auto-fill"
1905
+ })] })] })
1906
+ })
1907
+ ]
1908
+ }) : /* @__PURE__ */ (0, Z.jsxs)(re, {
1909
+ orientation: "horizontal",
1910
+ className: "h-full",
1911
+ children: [
1912
+ /* @__PURE__ */ (0, Z.jsx)(U, {
1913
+ id: "left-panel",
1914
+ defaultSize: "33%",
1915
+ minSize: 250,
1916
+ collapsedSize: 0,
1917
+ collapsible: !0,
1918
+ className: "flex flex-col h-full relative",
1919
+ panelRef: R,
1920
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
1921
+ className: "flex h-full flex-col overflow-hidden border-r dark:border-zinc-700",
1922
+ children: /* @__PURE__ */ (0, Z.jsx)(W, { children: (e) => /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(we, {
1923
+ isScrolled: e,
1924
+ activeTab: w,
1925
+ isSearchExpanded: Y,
1926
+ searchQuery: S,
1927
+ primaryTabName: "tools",
1928
+ secondaryTabName: "saved",
1929
+ primaryTabTitle: "Tools",
1930
+ secondaryTabTitle: "Saved",
1931
+ primaryCount: V.length,
1932
+ secondaryCount: E.length,
1933
+ primaryIcon: de,
1934
+ secondaryIcon: F,
1935
+ searchPlaceholder: "Search tools...",
1936
+ onSearchExpand: () => Se(!0),
1937
+ onSearchChange: C,
1938
+ onSearchBlur: je,
1939
+ onTabSwitch: () => T(w === "tools" ? "saved" : "tools"),
1940
+ searchInputRef: Te,
1941
+ onRefresh: o ? Pe : void 0,
1942
+ isRefreshing: Ae
1943
+ }), w === "tools" ? /* @__PURE__ */ (0, Z.jsx)(Ge, {
1944
+ tools: V,
1945
+ selectedTool: c,
1946
+ onToolSelect: H,
1947
+ focusedIndex: Ce
1948
+ }) : /* @__PURE__ */ (0, Z.jsx)(Ee, {
1949
+ savedRequests: E,
1950
+ selectedRequest: d,
1951
+ onLoadRequest: G,
1952
+ onDeleteRequest: ze,
1953
+ focusedIndex: Ce
1954
+ })] }) })
1955
+ })
1956
+ }),
1957
+ /* @__PURE__ */ (0, Z.jsx)(ne, { withHandle: !0 }),
1958
+ /* @__PURE__ */ (0, Z.jsx)(U, {
1959
+ defaultSize: "67%",
1960
+ children: /* @__PURE__ */ (0, Z.jsxs)(re, {
1961
+ orientation: "vertical",
1962
+ children: [
1963
+ /* @__PURE__ */ (0, Z.jsx)(U, {
1964
+ defaultSize: "40%",
1965
+ collapsible: !0,
1966
+ panelRef: z,
1967
+ children: /* @__PURE__ */ (0, Z.jsx)(Le, {
1968
+ selectedTool: c,
1969
+ toolArgs: g,
1970
+ payloadToSend: q,
1971
+ isExecuting: ue,
1972
+ isConnected: a,
1973
+ onArgChange: K,
1974
+ onExecute: J,
1975
+ onSave: Ie,
1976
+ onCancel: ye,
1977
+ onBulkPaste: oe,
1978
+ autoFilledFields: I,
1979
+ setFields: v,
1980
+ sendEmptyFields: b,
1981
+ onToggleEmpty: ae
1982
+ })
1983
+ }),
1984
+ /* @__PURE__ */ (0, Z.jsx)(ne, { withHandle: !0 }),
1985
+ /* @__PURE__ */ (0, Z.jsx)(U, {
1986
+ defaultSize: "60%",
1987
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
1988
+ className: "flex flex-col h-full",
1989
+ children: /* @__PURE__ */ (0, Z.jsx)(We, {
1990
+ results: ve,
1991
+ copiedResult: fe,
1992
+ serverId: i,
1993
+ readResource: r,
1994
+ onCopy: pe,
1995
+ onDelete: me,
1996
+ onFullscreen: _e,
1997
+ onMaximize: te,
1998
+ isMaximized: M,
1999
+ onRerunTool: J
2000
+ })
2001
+ })
2002
+ })
2003
+ ]
2004
+ })
2005
+ }),
2006
+ /* @__PURE__ */ (0, Z.jsx)(De, {
2007
+ isOpen: O,
2008
+ requestName: A,
2009
+ defaultPlaceholder: `${c?.name} - ${(/* @__PURE__ */ new Date()).toLocaleString()}`,
2010
+ onRequestNameChange: j,
2011
+ onSave: Re,
2012
+ onCancel: () => k(!1)
2013
+ }),
2014
+ /* @__PURE__ */ (0, Z.jsx)(qe, {
2015
+ open: N.open,
2016
+ onOpenChange: (e) => {
2017
+ e || ce();
2018
+ },
2019
+ children: /* @__PURE__ */ (0, Z.jsxs)(Xe, { children: [/* @__PURE__ */ (0, Z.jsxs)(Ze, { children: [/* @__PURE__ */ (0, Z.jsx)($e, { children: "Auto-fill fields from pasted object?" }), /* @__PURE__ */ (0, Z.jsxs)(et, { children: [N.fieldsToUpdate.length > 0 && /* @__PURE__ */ (0, Z.jsxs)("div", {
2020
+ className: "mb-3",
2021
+ children: [/* @__PURE__ */ (0, Z.jsx)("p", {
2022
+ className: "font-medium mb-2",
2023
+ children: "The following fields will be updated:"
2024
+ }), /* @__PURE__ */ (0, Z.jsx)("ul", {
2025
+ className: "text-sm space-y-1 max-h-[200px] overflow-y-auto",
2026
+ children: N.fieldsToUpdate.map(({ key: e, oldValue: t, newValue: n }) => /* @__PURE__ */ (0, Z.jsxs)("li", {
2027
+ className: "font-mono",
2028
+ children: [
2029
+ /* @__PURE__ */ (0, Z.jsxs)("span", {
2030
+ className: "font-semibold",
2031
+ children: [e, ":"]
2032
+ }),
2033
+ " ",
2034
+ /* @__PURE__ */ (0, Z.jsx)("span", {
2035
+ className: "text-red-600 dark:text-red-400 line-through",
2036
+ children: typeof t == "object" ? JSON.stringify(t).substring(0, 30) + "..." : String(t).substring(0, 30)
2037
+ }),
2038
+ " ",
2039
+ "→",
2040
+ " ",
2041
+ /* @__PURE__ */ (0, Z.jsx)("span", {
2042
+ className: "text-green-600 dark:text-green-400",
2043
+ children: typeof n == "string" && n.length > 30 ? n.substring(0, 30) + "..." : String(n).substring(0, 30)
2044
+ })
2045
+ ]
2046
+ }, e))
2047
+ })]
2048
+ }), N.newFields.length > 0 && /* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsx)("p", {
2049
+ className: "font-medium mb-1",
2050
+ children: "New fields to be filled:"
2051
+ }), /* @__PURE__ */ (0, Z.jsx)("p", {
2052
+ className: "text-sm font-mono",
2053
+ children: N.newFields.join(", ")
2054
+ })] })] })] }), /* @__PURE__ */ (0, Z.jsxs)(Qe, { children: [/* @__PURE__ */ (0, Z.jsx)(nt, {
2055
+ onClick: ce,
2056
+ children: "Cancel"
2057
+ }), /* @__PURE__ */ (0, Z.jsx)(tt, {
2058
+ onClick: se,
2059
+ children: "Auto-fill"
2060
+ })] })] })
2061
+ })
2062
+ ]
2063
+ });
2064
+ }
2065
+ at.displayName = "ToolsTab";
2066
+ //#endregion
2067
+ export { at as ToolsTab };