@mcp-use/inspector 20.0.0-beta.5 → 20.0.0-beta.50

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 (580) hide show
  1. package/README.md +31 -78
  2. package/dist/app/inspector.css.gz +0 -0
  3. package/dist/app/inspector.js.gz +0 -0
  4. package/dist/app/providers/anthropic.png +0 -0
  5. package/dist/app/providers/google.png +0 -0
  6. package/dist/app/providers/openai.png +0 -0
  7. package/dist/cli.js +332 -1384
  8. package/dist/client/index.d.ts +1405 -50
  9. package/dist/client/index.js +165 -24019
  10. package/dist/server/index.d.ts +79 -7
  11. package/dist/server/index.js +370 -22
  12. package/package.json +77 -35
  13. package/dist/cdn/AnimatePresence-Dcw-FOy8.js +0 -393
  14. package/dist/cdn/ChatTab-B255lH5i.js +0 -6744
  15. package/dist/cdn/CheckboxIndicator-Bt4IICtv.js +0 -251
  16. package/dist/cdn/ConnectionSettingsForm-DF-NS58d.js +0 -929
  17. package/dist/cdn/ConnectionSettingsTab-dI-Cqe79.js +0 -150
  18. package/dist/cdn/ElicitationTab-CL1KJ0bz.js +0 -654
  19. package/dist/cdn/FormContext-tmgN_Vdr.js +0 -135
  20. package/dist/cdn/InspectorContext-UjtEbNod.js +0 -123
  21. package/dist/cdn/JSONDisplay-BFxf5oEu.js +0 -324
  22. package/dist/cdn/ListTabHeader-Cv-GmtGF.js +0 -88
  23. package/dist/cdn/ManufactOAuthCallback-B98kSYCj.js +0 -31
  24. package/dist/cdn/MarkdownRenderer-Ba7nA4Ie.js +0 -3610
  25. package/dist/cdn/NotificationsTab-CeImSrhx.js +0 -290
  26. package/dist/cdn/OAuthCallback-Blc2Asxc.js +0 -58
  27. package/dist/cdn/PromptsTab-BYKnY7Rp.js +0 -901
  28. package/dist/cdn/ResourcesTab-BGualKW-.js +0 -564
  29. package/dist/cdn/SamplingTab-BeZBUeni.js +0 -658
  30. package/dist/cdn/ServerMetadataTab-CvrKX8fz.js +0 -244
  31. package/dist/cdn/StatusIcon-D0-ARyOh.js +0 -66
  32. package/dist/cdn/ToolsTab-j6n4O_3s.js +0 -2033
  33. package/dist/cdn/ViewPreview-DihyG6Qd.js +0 -238
  34. package/dist/cdn/WidgetDebugContext-D4usL_MA.js +0 -324
  35. package/dist/cdn/WidgetWrapper-B4H3Fek7.js +0 -2210
  36. package/dist/cdn/basePath-B8HuhIMu.js +0 -25
  37. package/dist/cdn/bell-CGjAO_0s.js +0 -10
  38. package/dist/cdn/browser-CbQIH4w2.js +0 -42
  39. package/dist/cdn/brush-B_mKhyxG.js +0 -17
  40. package/dist/cdn/card-DgiYnSg-.js +0 -41
  41. package/dist/cdn/cfWorker-Bxcs9rNe.js +0 -10799
  42. package/dist/cdn/checkbox-By0FklhG.js +0 -20
  43. package/dist/cdn/chunk-QUQL4437-XnDcYQEx.js +0 -1508
  44. package/dist/cdn/clock-CmUbSx_B.js +0 -12
  45. package/dist/cdn/code-V_0nf5rg.js +0 -10
  46. package/dist/cdn/createLucideIcon-C5fZZ6oB.js +0 -38
  47. package/dist/cdn/dialog-BsDpuJd3.js +0 -1028
  48. package/dist/cdn/dist-DaMB0Su9.js +0 -616
  49. package/dist/cdn/dist-DbX5yidW.js +0 -2306
  50. package/dist/cdn/external-link-CjmfT6rW.js +0 -17
  51. package/dist/cdn/eye-B7H96av8.js +0 -29
  52. package/dist/cdn/folder-open-B3lu2rG_.js +0 -7
  53. package/dist/cdn/hash-BVQnWi7q.js +0 -33
  54. package/dist/cdn/history-Csw4rb44.js +0 -17
  55. package/dist/cdn/index-browser-DkQOzkvX.js +0 -1934
  56. package/dist/cdn/info-CNiOwqkf.js +0 -19
  57. package/dist/cdn/input-C2OBd4PJ.js +0 -12160
  58. package/dist/cdn/inspector-settings-layout-0VDsjeqb.js +0 -4
  59. package/dist/cdn/inspector.css +0 -2
  60. package/dist/cdn/inspector.js +0 -24523
  61. package/dist/cdn/jsx-runtime-CIxvMpEo.js +0 -180
  62. package/dist/cdn/label-B9Jmm9be.js +0 -60
  63. package/dist/cdn/loader-circle-BLy9A_pp.js +0 -7
  64. package/dist/cdn/manufact-auth-BQMHhbLV.js +0 -423
  65. package/dist/cdn/maximize-2-CH5Lq90B.js +0 -21
  66. package/dist/cdn/maximize-BALCV_ep.js +0 -21
  67. package/dist/cdn/message-square-BnxdpJxZ.js +0 -7
  68. package/dist/cdn/not-found-DEtSM_Wd.js +0 -34
  69. package/dist/cdn/play-vuZ5PLnI.js +0 -7
  70. package/dist/cdn/providerMeta-BQIfHuNL.js +0 -379
  71. package/dist/cdn/providers/anthropic.png +0 -0
  72. package/dist/cdn/providers/google.png +0 -0
  73. package/dist/cdn/providers/openai.png +0 -0
  74. package/dist/cdn/react-BIs9pQ3H.js +0 -926
  75. package/dist/cdn/react-BajV-X4P.js +0 -5425
  76. package/dist/cdn/refresh-cw-BXY-Pa0U.js +0 -21
  77. package/dist/cdn/save-Tgil_AJZ.js +0 -34
  78. package/dist/cdn/schemaHelpers-DTV38jGq.js +0 -16
  79. package/dist/cdn/select-DDdiIPR2.js +0 -2594
  80. package/dist/cdn/servers-Dm72iTpY.js +0 -26
  81. package/dist/cdn/shared-DaILIQPP.js +0 -1700
  82. package/dist/cdn/sheet-Br_l2kry.js +0 -2077
  83. package/dist/cdn/sparkles-BntO2rDR.js +0 -23
  84. package/dist/cdn/spinner-jQtC7EBj.js +0 -15
  85. package/dist/cdn/square-check-big-BvwQ17Bl.js +0 -10
  86. package/dist/cdn/switch-C3IyQuid.js +0 -664
  87. package/dist/cdn/tabs-subtle-CkdI6Mac.js +0 -787
  88. package/dist/cdn/telemetry-DabTAQ8x.js +0 -240
  89. package/dist/cdn/textarea-DSbwcFVt.js +0 -14
  90. package/dist/cdn/trash-2-RwpJY5SL.js +0 -25
  91. package/dist/cdn/useAriaLabelledBy-DqAdnppm.js +0 -29
  92. package/dist/cdn/useCompositeItem-BRqEzYh-.js +0 -26
  93. package/dist/cdn/useConfig-Btmh8wjJ.js +0 -235
  94. package/dist/cdn/useSavedRequests-Ci2I919u.js +0 -51
  95. package/dist/cdn/useViewHostProps-B6SKeeH9.js +0 -349
  96. package/dist/cdn/wrench-DzGmCfnb.js +0 -7
  97. package/dist/cdn/x-C3vRQIYu.js +0 -10
  98. package/dist/cdn/zap-Mb-pbw2X.js +0 -10
  99. package/dist/client/auth/manufact-auth.d.ts +0 -32
  100. package/dist/client/auth/manufact-auth.d.ts.map +0 -1
  101. package/dist/client/chat-history/ChatHistoryHeader.d.ts +0 -4
  102. package/dist/client/chat-history/ChatHistoryHeader.d.ts.map +0 -1
  103. package/dist/client/chat-history/ChatHistoryPanel.d.ts +0 -28
  104. package/dist/client/chat-history/ChatHistoryPanel.d.ts.map +0 -1
  105. package/dist/client/chat-history/ChatHistoryRail.d.ts +0 -5
  106. package/dist/client/chat-history/ChatHistoryRail.d.ts.map +0 -1
  107. package/dist/client/chat-history/ChatList.d.ts +0 -18
  108. package/dist/client/chat-history/ChatList.d.ts.map +0 -1
  109. package/dist/client/chat-history/ChatTitleReveal.d.ts +0 -10
  110. package/dist/client/chat-history/ChatTitleReveal.d.ts.map +0 -1
  111. package/dist/client/chat-history/chat-events-to-inspector-messages.d.ts +0 -13
  112. package/dist/client/chat-history/chat-events-to-inspector-messages.d.ts.map +0 -1
  113. package/dist/client/chat-history/chat-title.d.ts +0 -10
  114. package/dist/client/chat-history/chat-title.d.ts.map +0 -1
  115. package/dist/client/chat-history/providers/local-storage.d.ts +0 -21
  116. package/dist/client/chat-history/providers/local-storage.d.ts.map +0 -1
  117. package/dist/client/chat-history/types.d.ts +0 -39
  118. package/dist/client/chat-history/types.d.ts.map +0 -1
  119. package/dist/client/chat-history/useChatHistory.d.ts +0 -20
  120. package/dist/client/chat-history/useChatHistory.d.ts.map +0 -1
  121. package/dist/client/chat-history/useChatTitleGeneration.d.ts +0 -17
  122. package/dist/client/chat-history/useChatTitleGeneration.d.ts.map +0 -1
  123. package/dist/client/components/AddToClientDropdown.d.ts +0 -52
  124. package/dist/client/components/AddToClientDropdown.d.ts.map +0 -1
  125. package/dist/client/components/ChatTab.d.ts +0 -98
  126. package/dist/client/components/ChatTab.d.ts.map +0 -1
  127. package/dist/client/components/IframeConsole.d.ts +0 -7
  128. package/dist/client/components/IframeConsole.d.ts.map +0 -1
  129. package/dist/client/components/MCPAppsDebugControls.d.ts +0 -19
  130. package/dist/client/components/MCPAppsDebugControls.d.ts.map +0 -1
  131. package/dist/client/components/PromptsTab.d.ts +0 -34
  132. package/dist/client/components/PromptsTab.d.ts.map +0 -1
  133. package/dist/client/components/ResourcesTab.d.ts +0 -31
  134. package/dist/client/components/ResourcesTab.d.ts.map +0 -1
  135. package/dist/client/components/ToolsTab.d.ts +0 -39
  136. package/dist/client/components/ToolsTab.d.ts.map +0 -1
  137. package/dist/client/components/chat/AssistantMessage.d.ts +0 -10
  138. package/dist/client/components/chat/AssistantMessage.d.ts.map +0 -1
  139. package/dist/client/components/chat/ChatHeader.d.ts +0 -70
  140. package/dist/client/components/chat/ChatHeader.d.ts.map +0 -1
  141. package/dist/client/components/chat/ChatInput.d.ts +0 -29
  142. package/dist/client/components/chat/ChatInput.d.ts.map +0 -1
  143. package/dist/client/components/chat/ChatInputArea.d.ts +0 -65
  144. package/dist/client/components/chat/ChatInputArea.d.ts.map +0 -1
  145. package/dist/client/components/chat/ChatLandingForm.d.ts +0 -15
  146. package/dist/client/components/chat/ChatLandingForm.d.ts.map +0 -1
  147. package/dist/client/components/chat/ChatManagedNotice.d.ts +0 -10
  148. package/dist/client/components/chat/ChatManagedNotice.d.ts.map +0 -1
  149. package/dist/client/components/chat/ChatScrollToBottomButton.d.ts +0 -7
  150. package/dist/client/components/chat/ChatScrollToBottomButton.d.ts.map +0 -1
  151. package/dist/client/components/chat/ChatScrollTopFade.d.ts +0 -7
  152. package/dist/client/components/chat/ChatScrollTopFade.d.ts.map +0 -1
  153. package/dist/client/components/chat/ChatTraceView.d.ts +0 -7
  154. package/dist/client/components/chat/ChatTraceView.d.ts.map +0 -1
  155. package/dist/client/components/chat/ConfigurationDialog.d.ts +0 -42
  156. package/dist/client/components/chat/ConfigurationDialog.d.ts.map +0 -1
  157. package/dist/client/components/chat/ConfigureEmptyState.d.ts +0 -6
  158. package/dist/client/components/chat/ConfigureEmptyState.d.ts.map +0 -1
  159. package/dist/client/components/chat/CopyButton.d.ts +0 -10
  160. package/dist/client/components/chat/CopyButton.d.ts.map +0 -1
  161. package/dist/client/components/chat/FloatingChatElicitation.d.ts +0 -10
  162. package/dist/client/components/chat/FloatingChatElicitation.d.ts.map +0 -1
  163. package/dist/client/components/chat/McpReconnectBanner.d.ts +0 -10
  164. package/dist/client/components/chat/McpReconnectBanner.d.ts.map +0 -1
  165. package/dist/client/components/chat/MessageList.d.ts +0 -47
  166. package/dist/client/components/chat/MessageList.d.ts.map +0 -1
  167. package/dist/client/components/chat/MessageMetaActions.d.ts +0 -7
  168. package/dist/client/components/chat/MessageMetaActions.d.ts.map +0 -1
  169. package/dist/client/components/chat/PromptResultsList.d.ts +0 -8
  170. package/dist/client/components/chat/PromptResultsList.d.ts.map +0 -1
  171. package/dist/client/components/chat/PromptsDropdown.d.ts +0 -11
  172. package/dist/client/components/chat/PromptsDropdown.d.ts.map +0 -1
  173. package/dist/client/components/chat/StreamingAssistantContent.d.ts +0 -7
  174. package/dist/client/components/chat/StreamingAssistantContent.d.ts.map +0 -1
  175. package/dist/client/components/chat/SystemPromptButton.d.ts +0 -11
  176. package/dist/client/components/chat/SystemPromptButton.d.ts.map +0 -1
  177. package/dist/client/components/chat/ToolCallDisplay.d.ts +0 -10
  178. package/dist/client/components/chat/ToolCallDisplay.d.ts.map +0 -1
  179. package/dist/client/components/chat/ToolResultRenderer.d.ts +0 -15
  180. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +0 -1
  181. package/dist/client/components/chat/ToolSelector.d.ts +0 -13
  182. package/dist/client/components/chat/ToolSelector.d.ts.map +0 -1
  183. package/dist/client/components/chat/UserMessage.d.ts +0 -10
  184. package/dist/client/components/chat/UserMessage.d.ts.map +0 -1
  185. package/dist/client/components/chat/chat-bar-styles.d.ts +0 -6
  186. package/dist/client/components/chat/chat-bar-styles.d.ts.map +0 -1
  187. package/dist/client/components/chat/chatModeStorage.d.ts +0 -11
  188. package/dist/client/components/chat/chatModeStorage.d.ts.map +0 -1
  189. package/dist/client/components/chat/conversion.d.ts +0 -19
  190. package/dist/client/components/chat/conversion.d.ts.map +0 -1
  191. package/dist/client/components/chat/freeTier.d.ts +0 -32
  192. package/dist/client/components/chat/freeTier.d.ts.map +0 -1
  193. package/dist/client/components/chat/managedChatNotice.d.ts +0 -16
  194. package/dist/client/components/chat/managedChatNotice.d.ts.map +0 -1
  195. package/dist/client/components/chat/providerMeta.d.ts +0 -27
  196. package/dist/client/components/chat/providerMeta.d.ts.map +0 -1
  197. package/dist/client/components/chat/system-prompt/local-storage.d.ts +0 -5
  198. package/dist/client/components/chat/system-prompt/local-storage.d.ts.map +0 -1
  199. package/dist/client/components/chat/system-prompt/types.d.ts +0 -8
  200. package/dist/client/components/chat/system-prompt/types.d.ts.map +0 -1
  201. package/dist/client/components/chat/system-prompt/useLocalSystemPrompt.d.ts +0 -3
  202. package/dist/client/components/chat/system-prompt/useLocalSystemPrompt.d.ts.map +0 -1
  203. package/dist/client/components/chat/system-prompt-default.d.ts +0 -2
  204. package/dist/client/components/chat/system-prompt-default.d.ts.map +0 -1
  205. package/dist/client/components/chat/trace.d.ts +0 -84
  206. package/dist/client/components/chat/trace.d.ts.map +0 -1
  207. package/dist/client/components/chat/types.d.ts +0 -75
  208. package/dist/client/components/chat/types.d.ts.map +0 -1
  209. package/dist/client/components/chat/useChatMessages.d.ts +0 -76
  210. package/dist/client/components/chat/useChatMessages.d.ts.map +0 -1
  211. package/dist/client/components/chat/useChatMessagesClientSide.d.ts +0 -43
  212. package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +0 -1
  213. package/dist/client/components/chat/useChatScrollToBottom.d.ts +0 -14
  214. package/dist/client/components/chat/useChatScrollToBottom.d.ts.map +0 -1
  215. package/dist/client/components/chat/useConfig.d.ts +0 -24
  216. package/dist/client/components/chat/useConfig.d.ts.map +0 -1
  217. package/dist/client/components/chat/useHostedChatMode.d.ts +0 -14
  218. package/dist/client/components/chat/useHostedChatMode.d.ts.map +0 -1
  219. package/dist/client/components/chat/useManagedCloudModel.d.ts +0 -14
  220. package/dist/client/components/chat/useManagedCloudModel.d.ts.map +0 -1
  221. package/dist/client/components/chat/utils.d.ts +0 -11
  222. package/dist/client/components/chat/utils.d.ts.map +0 -1
  223. package/dist/client/components/elicitation/shared/ElicitationAskUserPanel.d.ts +0 -12
  224. package/dist/client/components/elicitation/shared/ElicitationAskUserPanel.d.ts.map +0 -1
  225. package/dist/client/components/elicitation/shared/elicitationToAskUserQuestions.d.ts +0 -9
  226. package/dist/client/components/elicitation/shared/elicitationToAskUserQuestions.d.ts.map +0 -1
  227. package/dist/client/components/elicitation/shared/schemaHelpers.d.ts +0 -8
  228. package/dist/client/components/elicitation/shared/schemaHelpers.d.ts.map +0 -1
  229. package/dist/client/components/prompts/PromptExecutionPanel.d.ts +0 -13
  230. package/dist/client/components/prompts/PromptExecutionPanel.d.ts.map +0 -1
  231. package/dist/client/components/prompts/PromptInputForm.d.ts +0 -9
  232. package/dist/client/components/prompts/PromptInputForm.d.ts.map +0 -1
  233. package/dist/client/components/prompts/PromptMessageCard.d.ts +0 -29
  234. package/dist/client/components/prompts/PromptMessageCard.d.ts.map +0 -1
  235. package/dist/client/components/prompts/PromptResultDisplay.d.ts +0 -34
  236. package/dist/client/components/prompts/PromptResultDisplay.d.ts.map +0 -1
  237. package/dist/client/components/prompts/PromptsList.d.ts +0 -10
  238. package/dist/client/components/prompts/PromptsList.d.ts.map +0 -1
  239. package/dist/client/components/prompts/SavedPromptsList.d.ts +0 -19
  240. package/dist/client/components/prompts/SavedPromptsList.d.ts.map +0 -1
  241. package/dist/client/components/resources/PropsConfigDialog.d.ts +0 -16
  242. package/dist/client/components/resources/PropsConfigDialog.d.ts.map +0 -1
  243. package/dist/client/components/resources/ResourceResultDisplay.d.ts +0 -30
  244. package/dist/client/components/resources/ResourceResultDisplay.d.ts.map +0 -1
  245. package/dist/client/components/resources/ResourcesList.d.ts +0 -10
  246. package/dist/client/components/resources/ResourcesList.d.ts.map +0 -1
  247. package/dist/client/components/shared/CollapsibleJSON.d.ts +0 -6
  248. package/dist/client/components/shared/CollapsibleJSON.d.ts.map +0 -1
  249. package/dist/client/components/shared/InspectorScrollArea.d.ts +0 -9
  250. package/dist/client/components/shared/InspectorScrollArea.d.ts.map +0 -1
  251. package/dist/client/components/shared/JSONDisplay.d.ts +0 -12
  252. package/dist/client/components/shared/JSONDisplay.d.ts.map +0 -1
  253. package/dist/client/components/shared/ListItem.d.ts +0 -24
  254. package/dist/client/components/shared/ListItem.d.ts.map +0 -1
  255. package/dist/client/components/shared/ListTabHeader.d.ts +0 -47
  256. package/dist/client/components/shared/ListTabHeader.d.ts.map +0 -1
  257. package/dist/client/components/shared/MarkdownRenderer.d.ts +0 -15
  258. package/dist/client/components/shared/MarkdownRenderer.d.ts.map +0 -1
  259. package/dist/client/components/shared/SchemaFormField.d.ts +0 -12
  260. package/dist/client/components/shared/SchemaFormField.d.ts.map +0 -1
  261. package/dist/client/components/shared/SearchTabHeader.d.ts +0 -28
  262. package/dist/client/components/shared/SearchTabHeader.d.ts.map +0 -1
  263. package/dist/client/components/shared/StatusIcon.d.ts +0 -12
  264. package/dist/client/components/shared/StatusIcon.d.ts.map +0 -1
  265. package/dist/client/components/shared/index.d.ts +0 -7
  266. package/dist/client/components/shared/index.d.ts.map +0 -1
  267. package/dist/client/components/tools/SaveRequestDialog.d.ts +0 -11
  268. package/dist/client/components/tools/SaveRequestDialog.d.ts.map +0 -1
  269. package/dist/client/components/tools/SavedRequestsList.d.ts +0 -19
  270. package/dist/client/components/tools/SavedRequestsList.d.ts.map +0 -1
  271. package/dist/client/components/tools/ToolExecutionPanel.d.ts +0 -20
  272. package/dist/client/components/tools/ToolExecutionPanel.d.ts.map +0 -1
  273. package/dist/client/components/tools/ToolInputForm.d.ts +0 -14
  274. package/dist/client/components/tools/ToolInputForm.d.ts.map +0 -1
  275. package/dist/client/components/tools/ToolResultDisplay.d.ts +0 -24
  276. package/dist/client/components/tools/ToolResultDisplay.d.ts.map +0 -1
  277. package/dist/client/components/tools/ToolsList.d.ts +0 -10
  278. package/dist/client/components/tools/ToolsList.d.ts.map +0 -1
  279. package/dist/client/components/tools/schema-utils.d.ts +0 -13
  280. package/dist/client/components/tools/schema-utils.d.ts.map +0 -1
  281. package/dist/client/components/tools/useToolExecution.d.ts +0 -26
  282. package/dist/client/components/tools/useToolExecution.d.ts.map +0 -1
  283. package/dist/client/components/tools/useToolsTabNavigation.d.ts +0 -35
  284. package/dist/client/components/tools/useToolsTabNavigation.d.ts.map +0 -1
  285. package/dist/client/components/ui/MeshGradientCanvas.d.ts +0 -13
  286. package/dist/client/components/ui/MeshGradientCanvas.d.ts.map +0 -1
  287. package/dist/client/components/ui/WidgetWrapper.d.ts +0 -12
  288. package/dist/client/components/ui/WidgetWrapper.d.ts.map +0 -1
  289. package/dist/client/components/ui/alert-dialog.d.ts +0 -15
  290. package/dist/client/components/ui/alert-dialog.d.ts.map +0 -1
  291. package/dist/client/components/ui/ask-user-questions.d.ts +0 -80
  292. package/dist/client/components/ui/ask-user-questions.d.ts.map +0 -1
  293. package/dist/client/components/ui/badge.d.ts +0 -34
  294. package/dist/client/components/ui/badge.d.ts.map +0 -1
  295. package/dist/client/components/ui/blur-fade.d.ts +0 -25
  296. package/dist/client/components/ui/blur-fade.d.ts.map +0 -1
  297. package/dist/client/components/ui/button.d.ts +0 -34
  298. package/dist/client/components/ui/button.d.ts.map +0 -1
  299. package/dist/client/components/ui/chat-message.d.ts +0 -23
  300. package/dist/client/components/ui/chat-message.d.ts.map +0 -1
  301. package/dist/client/components/ui/checkbox.d.ts +0 -4
  302. package/dist/client/components/ui/checkbox.d.ts.map +0 -1
  303. package/dist/client/components/ui/client-icons.d.ts +0 -20
  304. package/dist/client/components/ui/client-icons.d.ts.map +0 -1
  305. package/dist/client/components/ui/command.d.ts +0 -17
  306. package/dist/client/components/ui/command.d.ts.map +0 -1
  307. package/dist/client/components/ui/dialog.d.ts +0 -37
  308. package/dist/client/components/ui/dialog.d.ts.map +0 -1
  309. package/dist/client/components/ui/dropdown-menu.d.ts +0 -25
  310. package/dist/client/components/ui/dropdown-menu.d.ts.map +0 -1
  311. package/dist/client/components/ui/dropdown.d.ts +0 -30
  312. package/dist/client/components/ui/dropdown.d.ts.map +0 -1
  313. package/dist/client/components/ui/file-thumbnail.d.ts +0 -9
  314. package/dist/client/components/ui/file-thumbnail.d.ts.map +0 -1
  315. package/dist/client/components/ui/input.d.ts +0 -4
  316. package/dist/client/components/ui/input.d.ts.map +0 -1
  317. package/dist/client/components/ui/kbd.d.ts +0 -3
  318. package/dist/client/components/ui/kbd.d.ts.map +0 -1
  319. package/dist/client/components/ui/label.d.ts +0 -4
  320. package/dist/client/components/ui/label.d.ts.map +0 -1
  321. package/dist/client/components/ui/menu-item.d.ts +0 -52
  322. package/dist/client/components/ui/menu-item.d.ts.map +0 -1
  323. package/dist/client/components/ui/mesh-tab-background.d.ts +0 -12
  324. package/dist/client/components/ui/mesh-tab-background.d.ts.map +0 -1
  325. package/dist/client/components/ui/not-found.d.ts +0 -9
  326. package/dist/client/components/ui/not-found.d.ts.map +0 -1
  327. package/dist/client/components/ui/popover.d.ts +0 -6
  328. package/dist/client/components/ui/popover.d.ts.map +0 -1
  329. package/dist/client/components/ui/resizable.d.ts +0 -10
  330. package/dist/client/components/ui/resizable.d.ts.map +0 -1
  331. package/dist/client/components/ui/scroll-area.d.ts +0 -4
  332. package/dist/client/components/ui/scroll-area.d.ts.map +0 -1
  333. package/dist/client/components/ui/select.d.ts +0 -52
  334. package/dist/client/components/ui/select.d.ts.map +0 -1
  335. package/dist/client/components/ui/sheet.d.ts +0 -14
  336. package/dist/client/components/ui/sheet.d.ts.map +0 -1
  337. package/dist/client/components/ui/skeleton.d.ts +0 -4
  338. package/dist/client/components/ui/skeleton.d.ts.map +0 -1
  339. package/dist/client/components/ui/spinner.d.ts +0 -3
  340. package/dist/client/components/ui/spinner.d.ts.map +0 -1
  341. package/dist/client/components/ui/switch.d.ts +0 -22
  342. package/dist/client/components/ui/switch.d.ts.map +0 -1
  343. package/dist/client/components/ui/table.d.ts +0 -9
  344. package/dist/client/components/ui/table.d.ts.map +0 -1
  345. package/dist/client/components/ui/tabs-subtle.d.ts +0 -25
  346. package/dist/client/components/ui/tabs-subtle.d.ts.map +0 -1
  347. package/dist/client/components/ui/text-shimmer.d.ts +0 -11
  348. package/dist/client/components/ui/text-shimmer.d.ts.map +0 -1
  349. package/dist/client/components/ui/textarea.d.ts +0 -4
  350. package/dist/client/components/ui/textarea.d.ts.map +0 -1
  351. package/dist/client/components/ui/tooltip.d.ts +0 -43
  352. package/dist/client/components/ui/tooltip.d.ts.map +0 -1
  353. package/dist/client/components/ui-playground/shared/SafeAreaInsetsEditor.d.ts +0 -19
  354. package/dist/client/components/ui-playground/shared/SafeAreaInsetsEditor.d.ts.map +0 -1
  355. package/dist/client/console-log-bus.d.ts +0 -24
  356. package/dist/client/console-log-bus.d.ts.map +0 -1
  357. package/dist/client/constants/debug-options.d.ts +0 -16
  358. package/dist/client/constants/debug-options.d.ts.map +0 -1
  359. package/dist/client/context/InspectorContext.d.ts +0 -134
  360. package/dist/client/context/InspectorContext.d.ts.map +0 -1
  361. package/dist/client/context/ThemeContext.d.ts +0 -17
  362. package/dist/client/context/ThemeContext.d.ts.map +0 -1
  363. package/dist/client/context/WidgetDebugContext.d.ts +0 -121
  364. package/dist/client/context/WidgetDebugContext.d.ts.map +0 -1
  365. package/dist/client/hooks/use-merge-split.d.ts +0 -36
  366. package/dist/client/hooks/use-merge-split.d.ts.map +0 -1
  367. package/dist/client/hooks/use-proximity-hover-index.d.ts +0 -27
  368. package/dist/client/hooks/use-proximity-hover-index.d.ts.map +0 -1
  369. package/dist/client/hooks/use-proximity-hover.d.ts +0 -26
  370. package/dist/client/hooks/use-proximity-hover.d.ts.map +0 -1
  371. package/dist/client/hooks/use-touch-primary.d.ts +0 -2
  372. package/dist/client/hooks/use-touch-primary.d.ts.map +0 -1
  373. package/dist/client/hooks/useDeviceViewport.d.ts +0 -18
  374. package/dist/client/hooks/useDeviceViewport.d.ts.map +0 -1
  375. package/dist/client/hooks/useHostedSession.d.ts +0 -9
  376. package/dist/client/hooks/useHostedSession.d.ts.map +0 -1
  377. package/dist/client/hooks/useIframeConsole.d.ts +0 -24
  378. package/dist/client/hooks/useIframeConsole.d.ts.map +0 -1
  379. package/dist/client/hooks/useKeyboardShortcuts.d.ts +0 -28
  380. package/dist/client/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  381. package/dist/client/hooks/useMCPPrompts.d.ts +0 -94
  382. package/dist/client/hooks/useMCPPrompts.d.ts.map +0 -1
  383. package/dist/client/hooks/useMcpAppsHostContext.d.ts +0 -27
  384. package/dist/client/hooks/useMcpAppsHostContext.d.ts.map +0 -1
  385. package/dist/client/hooks/usePropsLLM.d.ts +0 -20
  386. package/dist/client/hooks/usePropsLLM.d.ts.map +0 -1
  387. package/dist/client/hooks/useResourceProps.d.ts +0 -14
  388. package/dist/client/hooks/useResourceProps.d.ts.map +0 -1
  389. package/dist/client/hooks/useSavedRequests.d.ts +0 -6
  390. package/dist/client/hooks/useSavedRequests.d.ts.map +0 -1
  391. package/dist/client/hooks/useViewHostProps.d.ts +0 -19
  392. package/dist/client/hooks/useViewHostProps.d.ts.map +0 -1
  393. package/dist/client/index.d.ts.map +0 -1
  394. package/dist/client/lib/elevated.d.ts +0 -28
  395. package/dist/client/lib/elevated.d.ts.map +0 -1
  396. package/dist/client/lib/font-weight.d.ts +0 -10
  397. package/dist/client/lib/font-weight.d.ts.map +0 -1
  398. package/dist/client/lib/icon-context.d.ts +0 -15
  399. package/dist/client/lib/icon-context.d.ts.map +0 -1
  400. package/dist/client/lib/shape-context.d.ts +0 -21
  401. package/dist/client/lib/shape-context.d.ts.map +0 -1
  402. package/dist/client/lib/springs.d.ts +0 -32
  403. package/dist/client/lib/springs.d.ts.map +0 -1
  404. package/dist/client/lib/surface-classes.d.ts +0 -2
  405. package/dist/client/lib/surface-classes.d.ts.map +0 -1
  406. package/dist/client/lib/surface-context.d.ts +0 -7
  407. package/dist/client/lib/surface-context.d.ts.map +0 -1
  408. package/dist/client/lib/utils.d.ts +0 -3
  409. package/dist/client/lib/utils.d.ts.map +0 -1
  410. package/dist/client/mcp-apps/csp.d.ts +0 -26
  411. package/dist/client/mcp-apps/csp.d.ts.map +0 -1
  412. package/dist/client/mcp-apps/debug/csp-suggestions.d.ts +0 -17
  413. package/dist/client/mcp-apps/debug/csp-suggestions.d.ts.map +0 -1
  414. package/dist/client/mcp-apps/logging-transport.d.ts +0 -13
  415. package/dist/client/mcp-apps/logging-transport.d.ts.map +0 -1
  416. package/dist/client/rpc-traffic-coalesce.d.ts +0 -7
  417. package/dist/client/rpc-traffic-coalesce.d.ts.map +0 -1
  418. package/dist/client/rpc-traffic-store.d.ts +0 -37
  419. package/dist/client/rpc-traffic-store.d.ts.map +0 -1
  420. package/dist/client/telemetry/capture.d.ts +0 -7
  421. package/dist/client/telemetry/capture.d.ts.map +0 -1
  422. package/dist/client/telemetry/events.d.ts +0 -168
  423. package/dist/client/telemetry/events.d.ts.map +0 -1
  424. package/dist/client/telemetry/index.d.ts +0 -5
  425. package/dist/client/telemetry/index.d.ts.map +0 -1
  426. package/dist/client/telemetry/init.d.ts +0 -2
  427. package/dist/client/telemetry/init.d.ts.map +0 -1
  428. package/dist/client/telemetry/utils.d.ts +0 -7
  429. package/dist/client/telemetry/utils.d.ts.map +0 -1
  430. package/dist/client/types/message-content-block.d.ts +0 -19
  431. package/dist/client/types/message-content-block.d.ts.map +0 -1
  432. package/dist/client/types/pending-requests.d.ts +0 -17
  433. package/dist/client/types/pending-requests.d.ts.map +0 -1
  434. package/dist/client/utils/basePath.d.ts +0 -34
  435. package/dist/client/utils/basePath.d.ts.map +0 -1
  436. package/dist/client/utils/browser.d.ts +0 -5
  437. package/dist/client/utils/browser.d.ts.map +0 -1
  438. package/dist/client/utils/format.d.ts +0 -4
  439. package/dist/client/utils/format.d.ts.map +0 -1
  440. package/dist/client/utils/highlightJson.d.ts +0 -11
  441. package/dist/client/utils/highlightJson.d.ts.map +0 -1
  442. package/dist/client/utils/jsonUtils.d.ts +0 -24
  443. package/dist/client/utils/jsonUtils.d.ts.map +0 -1
  444. package/dist/client/utils/mcpClientUtils.d.ts +0 -131
  445. package/dist/client/utils/mcpClientUtils.d.ts.map +0 -1
  446. package/dist/client/utils/servers.d.ts +0 -14
  447. package/dist/client/utils/servers.d.ts.map +0 -1
  448. package/dist/server/asset-urls.d.ts +0 -18
  449. package/dist/server/asset-urls.d.ts.map +0 -1
  450. package/dist/server/asset-urls.js +0 -17
  451. package/dist/server/cdn-shell.d.ts +0 -18
  452. package/dist/server/cdn-shell.d.ts.map +0 -1
  453. package/dist/server/cdn-shell.js +0 -12
  454. package/dist/server/chunk-DSTNUYWX.js +0 -148
  455. package/dist/server/chunk-H6ZCIKBS.js +0 -63
  456. package/dist/server/chunk-IKTZUWSX.js +0 -0
  457. package/dist/server/chunk-J4FNYLBF.js +0 -54
  458. package/dist/server/chunk-K2F2AJOI.js +0 -619
  459. package/dist/server/chunk-KD7K27XK.js +0 -77
  460. package/dist/server/chunk-M5TZA42I.js +0 -54
  461. package/dist/server/chunk-OWR2BIBW.js +0 -40
  462. package/dist/server/chunk-PKBMQBKP.js +0 -7
  463. package/dist/server/chunk-SQ4XNMLT.js +0 -72
  464. package/dist/server/chunk-UJLXHNQP.js +0 -43
  465. package/dist/server/chunk-WFT4JHYI.js +0 -24
  466. package/dist/server/chunk-XCNS5CIW.js +0 -199
  467. package/dist/server/chunk-ZCGLU5T7.js +0 -156
  468. package/dist/server/cli.d.ts +0 -3
  469. package/dist/server/cli.d.ts.map +0 -1
  470. package/dist/server/cli.js +0 -141
  471. package/dist/server/create-dev-api-app.d.ts +0 -4
  472. package/dist/server/create-dev-api-app.d.ts.map +0 -1
  473. package/dist/server/create-dev-api-app.js +0 -11
  474. package/dist/server/dev-callback-redirect.d.ts +0 -3
  475. package/dist/server/dev-callback-redirect.d.ts.map +0 -1
  476. package/dist/server/dev-callback-redirect.js +0 -18
  477. package/dist/server/favicon-links.d.ts +0 -12
  478. package/dist/server/favicon-links.d.ts.map +0 -1
  479. package/dist/server/favicon-links.js +0 -11
  480. package/dist/server/favicon-static.d.ts +0 -4
  481. package/dist/server/favicon-static.d.ts.map +0 -1
  482. package/dist/server/favicon-static.js +0 -8
  483. package/dist/server/index.d.ts.map +0 -1
  484. package/dist/server/middleware.d.ts +0 -40
  485. package/dist/server/middleware.d.ts.map +0 -1
  486. package/dist/server/middleware.js +0 -17
  487. package/dist/server/proxy/index.d.ts +0 -3
  488. package/dist/server/proxy/index.d.ts.map +0 -1
  489. package/dist/server/proxy/index.js +0 -12
  490. package/dist/server/proxy/mcp-proxy.d.ts +0 -101
  491. package/dist/server/proxy/mcp-proxy.d.ts.map +0 -1
  492. package/dist/server/proxy/mcp-proxy.js +0 -10
  493. package/dist/server/proxy/oauth-proxy.d.ts +0 -26
  494. package/dist/server/proxy/oauth-proxy.d.ts.map +0 -1
  495. package/dist/server/proxy/oauth-proxy.js +0 -9
  496. package/dist/server/proxy-routes.d.ts +0 -16
  497. package/dist/server/proxy-routes.d.ts.map +0 -1
  498. package/dist/server/proxy-routes.js +0 -10
  499. package/dist/server/rpc-log-bus.d.ts +0 -17
  500. package/dist/server/rpc-log-bus.d.ts.map +0 -1
  501. package/dist/server/rpc-log-bus.js +0 -77
  502. package/dist/server/server.d.ts +0 -15
  503. package/dist/server/server.d.ts.map +0 -1
  504. package/dist/server/server.js +0 -66
  505. package/dist/server/static-assets.d.ts +0 -5
  506. package/dist/server/static-assets.d.ts.map +0 -1
  507. package/dist/server/static-assets.js +0 -9
  508. package/dist/server/utils.d.ts +0 -33
  509. package/dist/server/utils.d.ts.map +0 -1
  510. package/dist/server/utils.js +0 -17
  511. package/dist/server/version.d.ts +0 -7
  512. package/dist/server/version.d.ts.map +0 -1
  513. package/dist/server/version.js +0 -9
  514. package/dist/server/vite-dev-api-plugin.d.ts +0 -4
  515. package/dist/server/vite-dev-api-plugin.d.ts.map +0 -1
  516. package/dist/server/vite-dev-api-plugin.js +0 -30
  517. package/dist/web/apple-touch-icon.png +0 -0
  518. package/dist/web/assets/AnimatePresence-C5p0yiY1.js +0 -9
  519. package/dist/web/assets/ChatTab-BCobuZDc.js +0 -18
  520. package/dist/web/assets/ConnectionSettingsTab-BjGkLwVu.js +0 -1
  521. package/dist/web/assets/ElicitationTab-D3ZUKHND.js +0 -1
  522. package/dist/web/assets/FormContext-DH2caWKO.js +0 -1
  523. package/dist/web/assets/ListTabHeader-R17w_JsB.js +0 -1
  524. package/dist/web/assets/ManufactOAuthCallback-CS3ydSZg.js +0 -1
  525. package/dist/web/assets/MarkdownRenderer-BeeBfQhv.js +0 -47
  526. package/dist/web/assets/NotificationsTab-Uj0_DrmK.js +0 -1
  527. package/dist/web/assets/OAuthCallback-C0ljgCiw.js +0 -1
  528. package/dist/web/assets/PromptsTab-Bns2u0G-.js +0 -15
  529. package/dist/web/assets/ResourcesTab-CO24312V.js +0 -2
  530. package/dist/web/assets/SamplingTab-7gtN7FwU.js +0 -1
  531. package/dist/web/assets/ServerMetadataTab-CQwqYSjL.js +0 -1
  532. package/dist/web/assets/ToolsTab-bDdRxI1b.js +0 -8
  533. package/dist/web/assets/ViewPreview-Ba1Ec5uA.js +0 -1
  534. package/dist/web/assets/WidgetWrapper-CYHfzrtb.js +0 -34
  535. package/dist/web/assets/brush--0LobUi4.js +0 -1
  536. package/dist/web/assets/checkbox-CzBkaNKa.js +0 -1
  537. package/dist/web/assets/code-tME-5H6D.js +0 -1
  538. package/dist/web/assets/createLucideIcon-B3b8EU0b.js +0 -1
  539. package/dist/web/assets/dist-C5JjLJN9.js +0 -21
  540. package/dist/web/assets/index-TQ5V7cM9.js +0 -492
  541. package/dist/web/assets/index-fBX3akc8.css +0 -1
  542. package/dist/web/assets/input-CLYhA7PK.js +0 -1
  543. package/dist/web/assets/inspector-settings-layout-yjKRJDai.js +0 -1
  544. package/dist/web/assets/jsx-runtime-Cjj9sGSy.js +0 -1
  545. package/dist/web/assets/label-Cdim77Jw.js +0 -1
  546. package/dist/web/assets/maximize-2-BTT9QQU9.js +0 -1
  547. package/dist/web/assets/maximize-_O55kFcr.js +0 -1
  548. package/dist/web/assets/react-CU_d2d5K.js +0 -1
  549. package/dist/web/assets/refresh-cw-C9wQl8_d.js +0 -1
  550. package/dist/web/assets/save-B-MsgxX9.js +0 -1
  551. package/dist/web/assets/schemaHelpers-DLNTQr_6.js +0 -1
  552. package/dist/web/assets/select-CJ57-Bor.js +0 -1
  553. package/dist/web/assets/shared-BF0rJNdE.js +0 -1
  554. package/dist/web/assets/sparkles-2OAsc1aP.js +0 -1
  555. package/dist/web/assets/tabs-subtle-6D79T1xd.js +0 -1
  556. package/dist/web/assets/textarea-DLAmNVf_.js +0 -1
  557. package/dist/web/assets/useConfig-BAgALiZg.js +0 -1
  558. package/dist/web/assets/useViewHostProps-BYitt_6K.js +0 -1
  559. package/dist/web/assets/zap-Du2Uc5pa.js +0 -1
  560. package/dist/web/favicon-96x96.png +0 -0
  561. package/dist/web/favicon-black.svg +0 -5
  562. package/dist/web/favicon-white.svg +0 -5
  563. package/dist/web/favicon.ico +0 -0
  564. package/dist/web/favicon.svg +0 -5
  565. package/dist/web/index.html +0 -89
  566. package/dist/web/providers/anthropic.png +0 -0
  567. package/dist/web/providers/google.png +0 -0
  568. package/dist/web/providers/openai.png +0 -0
  569. package/dist/web/site.webmanifest +0 -21
  570. package/dist/web/web-app-manifest-192x192.png +0 -0
  571. package/dist/web/web-app-manifest-512x512.png +0 -0
  572. /package/dist/{cdn → app}/apple-touch-icon.png +0 -0
  573. /package/dist/{cdn → app}/favicon-96x96.png +0 -0
  574. /package/dist/{cdn → app}/favicon-black.svg +0 -0
  575. /package/dist/{cdn → app}/favicon-white.svg +0 -0
  576. /package/dist/{cdn → app}/favicon.ico +0 -0
  577. /package/dist/{cdn → app}/favicon.svg +0 -0
  578. /package/dist/{cdn → app}/site.webmanifest +0 -0
  579. /package/dist/{cdn → app}/web-app-manifest-192x192.png +0 -0
  580. /package/dist/{cdn → app}/web-app-manifest-512x512.png +0 -0
@@ -1,34 +0,0 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{G as n,K as r,Lr as i,a,n as o,r as s,sr as c,t as l}from"./input-CLYhA7PK.js";import{t as u}from"./jsx-runtime-Cjj9sGSy.js";import{t as d}from"./label-Cdim77Jw.js";import{a as f,i as p,n as m,r as h,t as g}from"./select-CJ57-Bor.js";import{t as _}from"./createLucideIcon-B3b8EU0b.js";import{t as v}from"./maximize-2-BTT9QQU9.js";import{t as y}from"./sparkles-2OAsc1aP.js";import{B as b,D as x,E as S,G as C,Gt as w,H as T,Ht as E,Jt as D,K as O,Kt as k,O as A,Qt as j,R as ee,U as te,V as M,Vt as ne,W as re,Wt as ie,Yt as ae,Zt as oe,_n as se,b as ce,c as N,d as P,f as F,gn as le,hn as ue,in as de,k as fe,l as pe,n as me,nn as he,ot as I,p as ge,tn as _e,w as ve,yt as L,z as ye}from"./index-TQ5V7cM9.js";import{a as R}from"./dist-C5JjLJN9.js";import{t as z}from"./textarea-DLAmNVf_.js";import{a as be,i as xe,n as Se,o as Ce,r as we}from"./useViewHostProps-BYitt_6K.js";var Te=_(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),Ee=_(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),De=_(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),Oe=_(`picture-in-picture`,[[`path`,{d:`M2 10h6V4`,key:`zwrco`}],[`path`,{d:`m2 4 6 6`,key:`ug085t`}],[`path`,{d:`M21 10V7a2 2 0 0 0-2-2h-7`,key:`git5jr`}],[`path`,{d:`M3 14v2a2 2 0 0 0 2 2h3`,key:`1f7fh3`}],[`rect`,{x:`12`,y:`14`,width:`10`,height:`7`,rx:`1`,key:`1wjs3o`}]]),ke=_(`pointer`,[[`path`,{d:`M22 14a8 8 0 0 1-8 8`,key:`56vcr3`}],[`path`,{d:`M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2`,key:`1agjmk`}],[`path`,{d:`M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1`,key:`wdbh2u`}],[`path`,{d:`M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10`,key:`1ibuk9`}],[`path`,{d:`M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`,key:`g6ys72`}]]),Ae=_(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),je=_(`shield-off`,[[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`,key:`1jlk70`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`,key:`18rp1v`}]]),Me=_(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),Ne=_(`square-dashed-mouse-pointer`,[[`path`,{d:`M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z`,key:`xwnzip`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2`,key:`y57alp`}],[`path`,{d:`M19 3a2 2 0 0 1 2 2`,key:`18rm91`}],[`path`,{d:`M5 21a2 2 0 0 1-2-2`,key:`sbafld`}],[`path`,{d:`M9 3h1`,key:`1yesri`}],[`path`,{d:`M9 21h2`,key:`1qve2z`}],[`path`,{d:`M14 3h1`,key:`1ec4yj`}],[`path`,{d:`M3 9v1`,key:`1r0deq`}],[`path`,{d:`M21 9v2`,key:`p14lih`}],[`path`,{d:`M3 14v1`,key:`vnatye`}]]),Pe=_(`tablet`,[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,ry:`2`,key:`76otgf`}],[`line`,{x1:`12`,x2:`12.01`,y1:`18`,y2:`18`,key:`1dp563`}]]),B=_(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Fe=_(`trash`,[[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),V=e(t(),1),Ie=[{value:`en-US`,label:`English (US)`},{value:`en-GB`,label:`English (UK)`},{value:`en-CA`,label:`English (Canada)`},{value:`en-AU`,label:`English (Australia)`},{value:`en-IN`,label:`English (India)`},{value:`es-ES`,label:`Spanish (Spain)`},{value:`es-MX`,label:`Spanish (Mexico)`},{value:`es-AR`,label:`Spanish (Argentina)`},{value:`es-CO`,label:`Spanish (Colombia)`},{value:`fr-FR`,label:`French (France)`},{value:`fr-CA`,label:`French (Canada)`},{value:`fr-BE`,label:`French (Belgium)`},{value:`fr-CH`,label:`French (Switzerland)`},{value:`de-DE`,label:`German (Germany)`},{value:`de-AT`,label:`German (Austria)`},{value:`de-CH`,label:`German (Switzerland)`},{value:`pt-BR`,label:`Portuguese (Brazil)`},{value:`pt-PT`,label:`Portuguese (Portugal)`},{value:`zh-CN`,label:`Chinese (Simplified, China)`},{value:`zh-TW`,label:`Chinese (Traditional, Taiwan)`},{value:`zh-HK`,label:`Chinese (Traditional, Hong Kong)`},{value:`ja-JP`,label:`Japanese (Japan)`},{value:`ko-KR`,label:`Korean (Korea)`},{value:`ar-SA`,label:`Arabic (Saudi Arabia)`},{value:`ar-EG`,label:`Arabic (Egypt)`},{value:`hi-IN`,label:`Hindi (India)`},{value:`ru-RU`,label:`Russian (Russia)`},{value:`it-IT`,label:`Italian (Italy)`},{value:`nl-NL`,label:`Dutch (Netherlands)`},{value:`nl-BE`,label:`Dutch (Belgium)`},{value:`pl-PL`,label:`Polish (Poland)`},{value:`sv-SE`,label:`Swedish (Sweden)`},{value:`no-NO`,label:`Norwegian (Norway)`},{value:`da-DK`,label:`Danish (Denmark)`},{value:`fi-FI`,label:`Finnish (Finland)`},{value:`tr-TR`,label:`Turkish (Turkey)`},{value:`el-GR`,label:`Greek (Greece)`},{value:`cs-CZ`,label:`Czech (Czech Republic)`},{value:`hu-HU`,label:`Hungarian (Hungary)`},{value:`ro-RO`,label:`Romanian (Romania)`},{value:`th-TH`,label:`Thai (Thailand)`},{value:`vi-VN`,label:`Vietnamese (Vietnam)`},{value:`id-ID`,label:`Indonesian (Indonesia)`},{value:`ms-MY`,label:`Malay (Malaysia)`},{value:`tl-PH`,label:`Tagalog (Philippines)`},{value:`he-IL`,label:`Hebrew (Israel)`},{value:`uk-UA`,label:`Ukrainian (Ukraine)`},{value:`bg-BG`,label:`Bulgarian (Bulgaria)`},{value:`hr-HR`,label:`Croatian (Croatia)`},{value:`sk-SK`,label:`Slovak (Slovakia)`},{value:`sl-SI`,label:`Slovenian (Slovenia)`},{value:`sr-RS`,label:`Serbian (Serbia)`},{value:`bn-BD`,label:`Bengali (Bangladesh)`},{value:`ta-IN`,label:`Tamil (India)`},{value:`te-IN`,label:`Telugu (India)`},{value:`mr-IN`,label:`Marathi (India)`},{value:`ur-PK`,label:`Urdu (Pakistan)`},{value:`fa-IR`,label:`Persian (Iran)`},{value:`sw-KE`,label:`Swahili (Kenya)`}];function Le(){return Intl.supportedValuesOf(`timeZone`).map(e=>({value:e,label:e.replace(/_/g,` `)}))}var Re=Le(),H=e=>`mcp-inspector-resource-props-${e}`;function ze(e){let[t,n]=(0,V.useState)([]),[r,i]=(0,V.useState)(null);return(0,V.useEffect)(()=>{(()=>{try{let t=H(e),r=localStorage.getItem(t);if(r){let e=JSON.parse(r);n(e.presets||[]),i(e.activePresetId||null)}else n([]),i(null)}catch(e){console.error(`[useResourceProps] Failed to load presets:`,e),n([]),i(null)}})()},[e]),(0,V.useEffect)(()=>{let n=H(e),i={presets:t,activePresetId:r};localStorage.setItem(n,JSON.stringify(i))},[e,t,r]),{presets:t,activePresetId:r,savePreset:(0,V.useCallback)(e=>{n(t=>{let n=t.findIndex(t=>t.id===e.id),r;return n>=0?(r=[...t],r[n]=e):r=[...t,e],r})},[]),deletePreset:(0,V.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e)),i(t=>t===e?null:t)},[]),setActivePreset:(0,V.useCallback)(e=>{i(e)},[]),getActiveProps:(0,V.useCallback)(()=>r&&t.find(e=>e.id===r)?.props||null,[r,t])}}function U(e={}){let{enabled:t=!0,maxLogs:n=1e3,proxyToPageConsole:r=!1}=e,[i,a]=(0,V.useState)([]),[o,s]=(0,V.useState)(!1),c=(0,V.useRef)(0),l=(0,V.useCallback)(e=>{if(!t)return;let i={...e,id:`log-${++c.current}-${Date.now()}`};if(a(e=>[...e,i].slice(-n)),r){let t=`[WIDGET CONSOLE]`,n=e.args.map(e=>{if(typeof e==`object`&&e)try{return JSON.stringify(e,null,2)}catch{return String(e)}return e});switch(e.level){case`error`:console.error(t,...n);break;case`warn`:console.warn(t,...n);break;case`info`:console.info(t,...n);break;case`debug`:console.debug(t,...n);break;case`trace`:console.trace(t,...n);break;default:console.log(t,...n)}}},[t,n,r]),u=(0,V.useCallback)(()=>{a([]),c.current=0},[]);return(0,V.useEffect)(()=>{if(!t)return;let e=e=>{e.data&&e.data.type===`iframe-console-log`&&e.data.level&&Array.isArray(e.data.args)&&l({level:e.data.level,args:e.data.args,timestamp:e.data.timestamp||new Date().toISOString(),url:e.data.url})};return window.addEventListener(`message`,e),()=>{window.removeEventListener(`message`,e)}},[t,l]),(0,V.useEffect)(()=>{if(t)return Ce.subscribe(l)},[t,l]),{logs:i,addLog:l,clearLogs:u,isOpen:o,setIsOpen:s}}var W=u(),Be=200,Ve=.9;function G(e){if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}function K(e){if(e.length===0)return[];let t=e[0];if(typeof t!=`string`||!/%[oOdisfc]/.test(t))return e.map(G);let n=e.slice(1),r=0,i=``;for(let e=0;e<t.length;e++){let a=t[e];if(a===`%`&&e+1<t.length){let o=t[e+1],s=n[r++];switch(o){case`o`:case`O`:i+=G(s),e++;break;case`s`:i+=s===void 0?`undefined`:String(s),e++;break;case`d`:case`i`:i+=String(Number.parseInt(String(s??``),10)||0),e++;break;case`f`:i+=String(Number.parseFloat(String(s??``))||0),e++;break;case`c`:e++;break;default:i+=a}continue}i+=a}let a=[i.trim()];for(;r<n.length;)a.push(G(n[r++]));return a.filter(e=>e.length>0)}function He({level:e}){return(0,W.jsx)(`span`,{className:i(`px-1.5 py-0.5 text-[11px] font-mono font-semibold rounded-full text-white shrink-0`,{log:`bg-zinc-500`,info:`bg-blue-500`,warn:`bg-yellow-500`,error:`bg-red-500`,debug:`bg-purple-500`,trace:`bg-gray-500`}[e]),children:e.toUpperCase()})}function Ue({log:e}){let[t,n]=(0,V.useState)(!1),a=(0,V.useMemo)(()=>{try{return new Date(e.timestamp).toLocaleTimeString()}catch{return``}},[e.timestamp]),o=(0,V.useMemo)(()=>K(e.args),[e.args]),s=(0,V.useMemo)(()=>{if(o.length===0)return``;let e=o[0].replace(/\s*\n\s*/g,` `).trim();return(e.length>120?e.slice(0,120)+`…`:e)+(o.length>1?` +${o.length-1}`:``)},[o]),c=async e=>{e.stopPropagation();try{await L(o.join(`
2
- `)),I.success(`Copied to clipboard`)}catch{I.error(`Failed to copy`)}},l=i(`font-mono text-xs border-b border-zinc-200 dark:border-zinc-800`,e.level===`error`&&`bg-red-50/30 dark:bg-red-950/10`,e.level===`warn`&&`bg-yellow-50/30 dark:bg-yellow-950/10`),u=i(`cursor-pointer select-none`,e.level===`error`&&`hover:bg-red-50/50 dark:hover:bg-red-950/20`,e.level===`warn`&&`hover:bg-yellow-50/50 dark:hover:bg-yellow-950/20`,e.level!==`error`&&e.level!==`warn`&&`hover:bg-zinc-100/70 dark:hover:bg-zinc-800/40`);return(0,W.jsxs)(`div`,{className:i(l,`group`),children:[(0,W.jsxs)(`div`,{className:i(`flex items-center gap-2 px-2 py-1.5`,u),onClick:()=>n(e=>!e),children:[(0,W.jsx)(`span`,{className:`text-zinc-400 dark:text-zinc-500 shrink-0`,children:t?(0,W.jsx)(se,{className:`size-3`}):(0,W.jsx)(r,{className:`size-3`})}),(0,W.jsx)(He,{level:e.level}),(0,W.jsx)(`span`,{className:`text-zinc-500 dark:text-zinc-400 text-[10px] shrink-0`,children:a}),!t&&(0,W.jsx)(`span`,{className:i(`truncate text-[11px]`,e.level===`error`&&`text-red-700 dark:text-red-400`,e.level===`warn`&&`text-yellow-700 dark:text-yellow-400`,e.level!==`error`&&e.level!==`warn`&&`text-zinc-700 dark:text-zinc-300`),children:s}),t&&e.url&&(0,W.jsx)(`span`,{className:`text-zinc-400 dark:text-zinc-500 text-[10px] truncate flex-1`,children:(()=>{try{return new URL(e.url).pathname}catch{return e.url}})()}),t&&(0,W.jsx)(`button`,{onClick:c,"aria-label":`Copy log`,className:`ml-auto shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-0.5 rounded text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200`,children:(0,W.jsx)(ue,{className:`size-3`})})]}),t&&(0,W.jsx)(`div`,{className:`pl-8 pr-2 pb-2 select-text`,children:o.map((t,n)=>(0,W.jsx)(`pre`,{className:i(`whitespace-pre-wrap wrap-break-word text-[11px]`,e.level===`error`&&`text-red-700 dark:text-red-400`,e.level===`warn`&&`text-yellow-700 dark:text-yellow-400`,e.level!==`error`&&e.level!==`warn`&&`text-zinc-700 dark:text-zinc-300`),children:t},n))})]})}var q=`mcp-inspector-console-proxy-enabled`,We=`mcp-inspector-console-height`,Ge=[`log`,`info`,`warn`,`error`,`debug`,`trace`],Ke={log:`text-zinc-500`,info:`text-blue-500`,warn:`text-yellow-500`,error:`text-red-500`,debug:`text-purple-500`,trace:`text-gray-500`};function qe({iframeId:e,enabled:t=!0}){let[r,l]=(0,V.useState)(()=>{if(typeof window>`u`)return!0;try{return localStorage.getItem(q)===`true`}catch{return!0}}),[u,f]=(0,V.useState)(()=>{if(typeof window>`u`)return 400;try{let e=localStorage.getItem(We);return e?Math.max(Be,parseInt(e,10)):400}catch{return 400}}),p=(0,V.useRef)(!1),m=(0,V.useCallback)(e=>{e.preventDefault(),p.current=!0;let t=e=>{if(!p.current)return;let t=Math.floor(window.innerHeight*Ve);f(Math.min(t,Math.max(Be,window.innerHeight-e.clientY)))},n=()=>{p.current=!1,window.removeEventListener(`mousemove`,t),window.removeEventListener(`mouseup`,n)};window.addEventListener(`mousemove`,t),window.addEventListener(`mouseup`,n)},[]);(0,V.useEffect)(()=>{try{localStorage.setItem(We,String(u))}catch{}},[u]);let[h,g]=(0,V.useState)(`all`),[_,v]=(0,V.useState)(``),{logs:y,clearLogs:b,isOpen:x,setIsOpen:S}=U({enabled:t,proxyToPageConsole:r}),C=(0,V.useRef)(null);(0,V.useEffect)(()=>{try{localStorage.setItem(q,String(r))}catch{}},[r]);let w=(0,V.useMemo)(()=>{let e={log:0,info:0,warn:0,error:0,debug:0,trace:0};for(let t of y)e[t.level]++;return e},[y]),T=w.error,E=w.warn,D=w.log+w.info+w.debug+w.trace,O=y.length,A=(0,V.useMemo)(()=>T>0?`bg-red-500`:E>0?`bg-yellow-500`:`bg-zinc-500`,[T,E,D]),j=(0,V.useMemo)(()=>{let e=h===`all`?y:y.filter(e=>e.level===h),t=_.trim().toLowerCase();return t&&(e=e.filter(e=>{let n=K(e.args).join(` `).toLowerCase(),r=(e.url??``).toLowerCase();return n.includes(t)||r.includes(t)})),e},[y,h,_]);return(0,V.useEffect)(()=>{x&&!_&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[j,x,_]),(0,W.jsxs)(N,{open:x,onOpenChange:S,children:[(0,W.jsx)(ge,{render:(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsxs)(c,{variant:`outline`,size:`sm`,className:`relative bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,onClick:()=>S(!0),children:[(0,W.jsx)(B,{className:`size-4`}),O>0&&(0,W.jsx)(`span`,{className:i(`ml-2 px-1.5 py-0.5 text-xs rounded-full text-white font-semibold`,A),children:O})]}),nativeButton:!0}),(0,W.jsx)(s,{children:(0,W.jsxs)(`div`,{className:`text-xs space-y-1`,children:[(0,W.jsxs)(`p`,{className:`font-semibold`,children:[O,` console `,O===1?`log`:`logs`]}),T>0&&(0,W.jsxs)(`p`,{className:`text-red-400`,children:[T,` error`,T===1?``:`s`]}),E>0&&(0,W.jsxs)(`p`,{className:`text-yellow-400`,children:[E,` warning`,E===1?``:`s`]}),D>0&&(0,W.jsxs)(`p`,{className:`text-zinc-400`,children:[D,` info`]})]})})]}),nativeButton:!1}),(0,W.jsxs)(pe,{side:`bottom`,className:`flex flex-col p-0 transition-none m-0 gap-0`,style:{height:u},children:[(0,W.jsx)(`div`,{className:`h-1.5 w-full shrink-0 cursor-ns-resize bg-zinc-200 dark:bg-zinc-700 hover:bg-zinc-300 dark:hover:bg-zinc-600 transition-colors`,onMouseDown:m}),(0,W.jsxs)(P,{className:`px-4 py-4 m-0 border-b border-zinc-200 dark:border-zinc-800 shrink-0`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(F,{className:`flex items-center gap-2`,children:[(0,W.jsx)(B,{className:`size-4`}),`Widget Console Logs`,y.length>0&&(0,W.jsxs)(`span`,{className:`text-sm font-normal text-zinc-500 dark:text-zinc-400`,children:[`(`,y.length,` `,y.length===1?`log`:`logs`,`)`]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-4 pr-4`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(ve,{id:`proxy-console-toggle`,checked:r,onCheckedChange:l}),(0,W.jsx)(d,{htmlFor:`proxy-console-toggle`,className:`text-sm font-normal cursor-pointer`,children:`Proxy logs to page console`})]}),y.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(c,{variant:`ghost`,size:`sm`,onClick:async()=>{try{await L(j.map(e=>{let t=new Date(e.timestamp).toLocaleTimeString();return`[${e.level.toUpperCase()}] ${t}${e.url?` ${e.url}`:``}\n${K(e.args).join(`
3
- `)}`}).join(`
4
-
5
- `)),I.success(`Copied ${j.length} logs to clipboard`)}catch{I.error(`Failed to copy logs to clipboard`)}},className:`-my-2`,children:[(0,W.jsx)(ue,{className:`size-4 mr-1`}),`Copy All`]}),(0,W.jsxs)(c,{variant:`ghost`,size:`sm`,onClick:b,className:`-my-2`,children:[(0,W.jsx)(Fe,{className:`size-4 mr-1`}),`Clear`]})]})]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-1 pt-1`,children:[(0,W.jsxs)(`button`,{onClick:()=>g(`all`),className:i(`px-2 py-0.5 text-xs rounded font-medium transition-colors`,h===`all`?`bg-zinc-200 dark:bg-zinc-700 text-zinc-900 dark:text-zinc-100`:`text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800`),children:[`All`,O>0&&(0,W.jsx)(`span`,{className:`ml-1 text-[10px] opacity-70`,children:O})]}),Ge.map(e=>{let t=w[e];return(0,W.jsxs)(`button`,{onClick:()=>g(h===e?`all`:e),className:i(`px-2 py-0.5 text-xs rounded font-medium transition-colors`,h===e?`bg-zinc-200 dark:bg-zinc-700 text-zinc-900 dark:text-zinc-100`:`text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800`),children:[(0,W.jsx)(`span`,{className:i(t>0&&Ke[e]),children:e.charAt(0).toUpperCase()+e.slice(1)}),t>0&&(0,W.jsx)(`span`,{className:i(`ml-1 text-[10px]`,Ke[e]),children:t})]},e)}),(0,W.jsxs)(`div`,{className:`ml-auto flex items-center gap-1 relative`,children:[(0,W.jsx)(n,{className:`absolute left-2 size-3 text-zinc-400 dark:text-zinc-500 pointer-events-none`}),(0,W.jsx)(`input`,{type:`text`,placeholder:`Filter logs…`,value:_,onChange:e=>v(e.target.value),className:`pl-6 pr-6 py-0.5 text-xs rounded border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-zinc-900 dark:text-zinc-100 placeholder-zinc-400 dark:placeholder-zinc-500 focus:outline-none focus:ring-1 focus:ring-zinc-400 dark:focus:ring-zinc-500 w-44`}),_&&(0,W.jsx)(`button`,{onClick:()=>v(``),"aria-label":`Clear search`,className:`absolute right-1.5 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300`,children:(0,W.jsx)(k,{className:`size-3`})})]})]})]}),(0,W.jsx)(`div`,{ref:C,className:`flex-1 overflow-auto bg-zinc-50 dark:bg-zinc-950`,children:j.length===0?(0,W.jsx)(`div`,{className:`flex items-center justify-center h-full text-zinc-500 dark:text-zinc-400`,children:(0,W.jsxs)(`div`,{className:`text-center`,children:[(0,W.jsx)(B,{className:`size-8 mx-auto mb-2 opacity-50`}),(0,W.jsx)(`p`,{className:`text-sm`,children:y.length===0?`No console logs yet`:_?`No logs match "${_}"`:`No logs match the current filter`}),(0,W.jsx)(`p`,{className:`text-xs mt-1`,children:y.length===0?`Logs from iframes will appear here`:`${y.length} log${y.length===1?``:`s`} hidden by filter`})]})}):(0,W.jsx)(`div`,{children:j.map(e=>(0,W.jsx)(Ue,{log:e},e.id))})})]})]})}function J(e){let t=e.trim(),n=t.match(/```(?:json)?\s*([\s\S]*?)```/);n&&(t=n[1].trim());let r=t.indexOf(`{`);if(r<0)return null;let i=0;for(let e=r;e<t.length;e++)if(t[e]===`{`)i++;else if(t[e]===`}`&&(i--,i===0))try{return JSON.parse(t.slice(r,e+1))}catch{return null}return null}function Je({llmConfig:e}){return{generateProps:(0,V.useCallback)(async({resource:t,resourceAnnotations:n,propsSchema:r})=>{if(!e)throw Error(`LLM config is not available`);let i=t.mimeType||n?.mimeType||`unknown`,a=t.description||n?.description||`N/A`;if(r?.properties){let n=Object.keys(r.properties).map(e=>{let t=r.properties[e],n=` - ${e} (${t.type||`string`})`,i=t.description?`: ${t.description}`:``,a=``;return t.type===`array`&&t.items?.type===`object`&&t.items?.properties&&(a=` — array of objects with keys: {${Object.keys(t.items.properties).join(`, `)}}`),`${n}${a}${i}`}).join(`
6
- `),i=[{role:`system`,content:`You are helping a developer configure props for a UI widget. The widget has a defined schema with specific props. Generate appropriate values for ONLY the props listed in the schema. Return ONLY a JSON object with these exact keys. For array props, each item must match the specified structure.`},{role:`user`,content:`Widget: ${t.name||t.uri}
7
- Description: ${a}
8
-
9
- Props Schema:
10
- ${n}
11
-
12
- Generate appropriate default/example values for these props. Return ONLY a JSON object with the exact prop names as keys.
13
- Example: {"query": "example search term", "results": [{"fruit": "Apple", "color": "red"}]}`}],o=J(await R({config:{provider:e.provider,model:e.model,apiKey:e.apiKey,temperature:e.temperature,baseUrl:e.baseUrl},messages:i}));if(o)return Object.entries(o).map(([e,t])=>({key:e,value:typeof t==`object`&&t?JSON.stringify(t):String(t)}));throw Error(`Could not parse props from LLM response`)}let o=t.uri?.startsWith(`ui://`)||t.mimeType===`text/html;profile=mcp-app`||!!n?.ui,s=o?`You are helping preview an MCP App widget in the inspector.
14
- Generate sample tool result data (structuredContent) that the widget receives via useToolContext().
15
- Return ONLY a JSON object with realistic sample data the widget needs to render — query strings, item arrays, IDs, labels, etc.
16
- Do NOT generate UI styling props like theme, width, height, or showFilters unless explicitly required.
17
- For search/list widgets, always include the collection array (e.g. "items") with at least 2 sample entries.`:`You are helping a developer configure props for a UI widget/resource.
18
- Analyze the provided information and suggest appropriate props in key-value format.
19
- Return ONLY a JSON object with key-value pairs, where both keys and values are strings.
20
- Example format: {"theme": "dark", "width": "400", "title": "My Widget"}`,c=o?`Widget: ${t.name||t.uri}
21
- Description: ${a}
22
-
23
- Generate sample structuredContent for previewing this widget in the inspector.
24
- Include every data field the widget likely reads from toolOutput (arrays must be non-empty).
25
- Example for a fruit search widget: {"query": "apple", "items": [{"id": "apple", "name": "Apple"}, {"id": "banana", "name": "Banana"}]}
26
- Return ONLY JSON.`:`Resource Information:
27
- - URI: ${t.uri}
28
- - Name: ${t.name||`N/A`}
29
- - Type: ${i}
30
- - Description: ${a}
31
-
32
- Based on this information, suggest 3-5 common customizable properties like theme, dimensions, colors, titles, or configuration options that would be useful for this type of resource. Keep it simple and practical.`,l=[{role:`system`,content:s},{role:`user`,content:c}],u=await R({config:{provider:e.provider,model:e.model,apiKey:e.apiKey,temperature:e.temperature,baseUrl:e.baseUrl},messages:l});try{let e=J(u);if(e)return Object.entries(e).map(([e,t])=>({key:e,value:typeof t==`object`&&t?JSON.stringify(t):String(t)}));let t=u.split(`
33
- `),n=[];for(let e of t){let t=e.match(/^\s*["']?(\w+)["']?\s*[:=]\s*["']?(.+?)["']?\s*,?\s*$/);t&&n.push({key:t[1].trim(),value:t[2].trim().replace(/^["']|["']$/g,``)})}if(n.length>0)return n;throw Error(`Could not parse props from LLM response`)}catch(e){throw console.error(`[usePropsLLM] Failed to parse LLM response:`,e),Error(`Failed to parse props from LLM response: ${u.slice(0,100)}...`)}},[e]),isAvailable:e!==null}}function Y(e,t){if(!e?.$ref)return e;let n=e.$ref;if(n.startsWith(`#/`)){let r=n.substring(2).split(`/`),i=t;for(let t of r)if(i&&typeof i==`object`&&t in i)i=i[t];else return console.warn(`Could not resolve $ref: ${n}`),e;return i}return e}function Ye(e,t){if(e.anyOf&&Array.isArray(e.anyOf)){let n=e.anyOf.find(e=>e.type!==`null`);if(n)return{...Y(n,t),nullable:!0}}return e}function Xe(e){return Array.isArray(e.enum)?e.enum:null}function X({name:e,schema:t,value:n,onChange:r,required:i=!1,disabled:a=!1,rootSchema:o}){let s=o||t,c=Ye(t,s);c=Y(c,s);let u=Xe(c),_=c.type===`string`&&u!==null,v=c;return v.type===`object`||v.type===`array`?(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(d,{htmlFor:e,className:`text-sm font-medium`,children:[e,i&&(0,W.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),(0,W.jsx)(z,{id:e,value:n,onChange:e=>r(e.target.value),placeholder:v?.description||v?.default?JSON.stringify(v.default,null,2):`Enter ${e}`,className:`min-h-[100px]`,disabled:a}),v?.description&&(0,W.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:v.description})]}):_&&u?(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(d,{htmlFor:e,className:`text-sm font-medium`,children:[e,i&&(0,W.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),(0,W.jsxs)(g,{value:n||``,onValueChange:r,disabled:a,children:[(0,W.jsx)(p,{id:e,className:`w-full`,children:(0,W.jsx)(f,{placeholder:v.description||`Select an option`})}),(0,W.jsx)(m,{children:u.map((e,t)=>(0,W.jsx)(h,{value:e,children:v.enumNames?.[t]||e},e))})]}),v.description&&(0,W.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:v.description})]}):(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(d,{htmlFor:e,className:`text-sm font-medium`,children:[e,i&&(0,W.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),(0,W.jsx)(l,{id:e,value:n,onChange:e=>r(e.target.value),placeholder:v?.description||(v?.default===void 0?`Enter ${e}`:String(v.default)),type:v.type===`number`?`number`:`text`,disabled:a}),v?.description&&(0,W.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:v.description})]})}function Ze({open:e,onOpenChange:t,onSave:n,existingPresets:r,resource:i,resourceAnnotations:a,llmConfig:o,editingPreset:s}){let u=(0,V.useMemo)(()=>{let e=e=>{if(!e)return null;if(e.type===`object`&&e.properties)return e;let t=e?.def?.shape??e?._def?.shape;if(t&&typeof t==`object`){let e={},n=[],r=e=>({ZodString:`string`,string:`string`,ZodNumber:`number`,number:`number`,ZodBoolean:`boolean`,boolean:`boolean`,ZodArray:`array`,array:`array`,ZodObject:`object`,object:`object`})[e]||`string`,i=e=>e?.typeName??e?.type??``,a=e=>{let t=e?._def??e?.def??{},n=e,a=i(t);for(;a===`ZodOptional`||a===`ZodDefault`||a===`ZodNullable`;)n=t.innerType??n,a=i(n?._def??n?.def??{});let o=r(a);if(o===`array`){let e=n?._def?.type??n?.def?.element??n?.element;if(e){let t=e._def??e.def??{};if(r(i(t))===`object`){let n=t.shape??e._def?.shape??e.def?.shape??{};return{type:`array`,items:{type:`object`,properties:Object.fromEntries(Object.entries(n).map(([e,t])=>[e,{type:r(i(t?._def??t?.def??{}))}]))}}}}return{type:`array`}}return{type:o}};for(let[r,o]of Object.entries(t)){let t=o,s=t?._def??t?.def??{},c=i(s),l=c===`ZodOptional`||c===`ZodDefault`||c===`ZodNullable`,u=a(t);e[r]={type:u.type,...u.items&&{items:u.items},description:t?.description??s.description},l||n.push(r)}if(Object.keys(e).length>0)return{type:`object`,properties:e,required:n.length>0?n:void 0}}return null},t=a;if(t?.[`mcp-use/propsSchema`])return e(t[`mcp-use/propsSchema`]);let n=i.annotations;return n?.[`mcp-use/propsSchema`]?e(n[`mcp-use/propsSchema`]):null},[a,i.annotations,i.uri,i.name]),f=!!u,[p,m]=(0,V.useState)(``),[h,g]=(0,V.useState)({}),[_,v]=(0,V.useState)([{id:crypto.randomUUID(),key:``,value:``}]),[x,S]=(0,V.useState)(!1),[w,E]=(0,V.useState)(null),{generateProps:O,isAvailable:k}=Je({llmConfig:o});(0,V.useEffect)(()=>{if(e){if(s)if(m(s.name),f)g(s.props);else{let e=Object.entries(s.props).map(([e,t])=>({id:crypto.randomUUID(),key:e,value:t}));v(e.length>0?e:[{id:crypto.randomUUID(),key:``,value:``}])}else m(``),f?g({}):v([{id:crypto.randomUUID(),key:``,value:``}]);E(null)}},[e,s,f]);let A=()=>{v([..._,{id:crypto.randomUUID(),key:``,value:``}])},ne=e=>{_.length>1&&v(_.filter(t=>t.id!==e))},re=(e,t,n)=>{v(_.map(r=>r.id===e?{...r,[t]:n}:r))};return(0,W.jsx)(ee,{open:e,onOpenChange:t,children:(0,W.jsxs)(b,{scrollable:!0,className:`sm:max-w-[600px] max-h-[80vh]`,"data-testid":`props-config-dialog`,children:[(0,W.jsxs)(te,{children:[(0,W.jsx)(C,{children:s?`Edit Preset`:`Create Props Preset`}),(0,W.jsxs)(M,{children:[`Configure props for `,i.name||i.uri,`. You can manually add key-value pairs or generate them with AI.`]})]}),(0,W.jsxs)(ye,{className:`space-y-4 py-4`,children:[(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(d,{htmlFor:`preset-name`,children:`Preset Name`}),(0,W.jsx)(l,{id:`preset-name`,"data-testid":`props-config-preset-name`,value:p,onChange:e=>m(e.target.value),placeholder:`e.g., Dark Theme, Production Config`,disabled:x})]}),(0,W.jsxs)(`div`,{className:`space-y-2 p-3 bg-muted rounded-lg`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsx)(d,{className:`text-sm font-medium`,children:`Generate with AI`}),k&&(0,W.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Using `,o?.provider,` (`,o?.model,`)`]})]}),k?(0,W.jsx)(c,{onClick:async()=>{if(!k){I.error(`LLM not configured`,{description:`Please configure LLM in the Chat tab first.`});return}S(!0),E(null);try{let e=await O({resource:i,resourceAnnotations:a,propsSchema:f?u:void 0});if(f){let t={};for(let n of e)u.properties?.[n.key]&&(t[n.key]=n.value);g(t)}else v(e.map(e=>({id:crypto.randomUUID(),key:e.key,value:e.value})));I.success(`Props generated successfully`,{description:`Generated ${e.length} prop(s) using ${o?.provider}`})}catch(e){let t=e instanceof Error?e.message:`Failed to generate props`;E(t),I.error(`LLM Generation Failed`,{description:t})}finally{S(!1)}},disabled:x,size:`sm`,variant:`outline`,className:`w-full`,"data-testid":`props-config-generate-llm-button`,children:x?(0,W.jsxs)(`span`,{"data-testid":`props-config-generating`,className:`flex items-center gap-2`,children:[(0,W.jsx)(de,{className:`h-4 w-4 mr-2 animate-spin`}),`Generating...`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(y,{className:`h-4 w-4 mr-2`}),`Generate Props with LLM`]})}):(0,W.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`LLM not configured. Please configure LLM in the Chat tab to use this feature.`}),w&&(0,W.jsx)(`p`,{className:`text-xs text-destructive`,"data-testid":`props-config-error`,children:w})]}),(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsx)(d,{className:`text-sm font-medium`,children:`Props`}),f?(0,W.jsx)(`div`,{className:`space-y-4`,children:Object.entries(u.properties||{}).map(([e,t])=>(0,W.jsx)(X,{name:e,schema:t,value:h[e]||``,onChange:t=>g(n=>({...n,[e]:t})),required:u.required?.includes(e),disabled:x,rootSchema:u},e))}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,W.jsxs)(c,{onClick:A,size:`sm`,variant:`ghost`,disabled:x,"data-testid":`props-config-add-prop`,children:[(0,W.jsx)(j,{className:`h-4 w-4 mr-1`}),`Add Prop`]})}),_.map((e,t)=>(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsxs)(`div`,{className:`flex-1 grid grid-cols-2 gap-2`,children:[(0,W.jsx)(l,{placeholder:`Key`,value:e.key,onChange:t=>re(e.id,`key`,t.target.value),disabled:x,"data-testid":`props-config-key-${t}`}),(0,W.jsx)(l,{placeholder:`Value`,value:e.value,onChange:t=>re(e.id,`value`,t.target.value),disabled:x,"data-testid":`props-config-value-${t}`})]}),(0,W.jsx)(c,{variant:`ghost`,size:`sm`,onClick:()=>ne(e.id),disabled:_.length===1||x,className:`h-9 w-9 p-0`,"data-testid":`props-config-remove-${t}`,children:(0,W.jsx)(D,{className:`h-4 w-4 text-muted-foreground`})})]},e.id))]})]})]}),(0,W.jsxs)(T,{children:[(0,W.jsx)(c,{variant:`outline`,onClick:()=>t(!1),disabled:x,"data-testid":`props-config-cancel-button`,children:`Cancel`}),(0,W.jsxs)(c,{onClick:()=>{if(!p.trim()){I.error(`Preset name required`,{description:`Please enter a name for this preset.`});return}if(r.find(e=>e.name.toLowerCase()===p.toLowerCase()&&e.id!==s?.id)){I.error(`Duplicate preset name`,{description:`A preset with this name already exists.`});return}let e;if(f)e={...h};else{e={};for(let t of _)t.key.trim()&&(e[t.key.trim()]=t.value)}if(Object.keys(e).length===0){I.error(`No props defined`,{description:`Please add at least one prop with a key.`});return}let i={id:s?.id||crypto.randomUUID(),name:p.trim(),props:e};n(i),t(!1),I.success(s?`Preset updated`:`Preset created`,{description:`Preset "${i.name}" saved successfully.`})},disabled:x,"data-testid":`props-config-save-button`,children:[s?`Update`:`Create`,` Preset`]})]})]})})}function Qe({value:e,onChange:t}){let n=(n,r)=>{let i=parseInt(r,10);isNaN(i)||t({...e,[n]:i})};return(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Top`}),(0,W.jsx)(l,{type:`number`,min:`0`,value:e.top,onChange:e=>n(`top`,e.target.value),className:`h-8`,"data-testid":`debugger-safe-area-top`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Right`}),(0,W.jsx)(l,{type:`number`,min:`0`,value:e.right,onChange:e=>n(`right`,e.target.value),className:`h-8`,"data-testid":`debugger-safe-area-right`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Bottom`}),(0,W.jsx)(l,{type:`number`,min:`0`,value:e.bottom,onChange:e=>n(`bottom`,e.target.value),className:`h-8`,"data-testid":`debugger-safe-area-bottom`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Left`}),(0,W.jsx)(l,{type:`number`,min:`0`,value:e.left,onChange:e=>n(`left`,e.target.value),className:`h-8`,"data-testid":`debugger-safe-area-left`})]})]})}function $e(e,t){let n=new Set(t?.connectDomains??[]),r=new Set(t?.resourceDomains??[]),i=new Set(t?.frameDomains??[]),a=new Set([`script-src`,`style-src`,`img-src`,`font-src`,`media-src`]);for(let t of e){let e=(t.blockedUri||``).trim();if(!e||e===`(inline)`||e.startsWith(`blob:`)||e.startsWith(`data:`))continue;let o=null;try{o=new URL(e).origin}catch{continue}if(!o)continue;let s=(t.effectiveDirective||t.directive||``).toLowerCase();s===`connect-src`?(n.add(o),o.startsWith(`http://`)?n.add(o.replace(`http://`,`ws://`)):o.startsWith(`https://`)&&n.add(o.replace(`https://`,`wss://`))):a.has(s)?r.add(o):s===`frame-src`&&i.add(o)}let o={connectDomains:Array.from(n).sort(),resourceDomains:Array.from(r).sort()};return i.size>0&&(o.frameDomains=Array.from(i).sort()),o}var Z=`https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/bcfffb6585ea4fb1e3a9da39fb8911b83399fa71/specification/2026-01-26/apps.mdx`,et=`https://mcp-use.com/docs/typescript/server/csp`;function tt(e,t,n,r){let i=[`Fix the Content Security Policy (CSP) for this MCP Apps widget. The widget has CSP violations that block network requests and resources.`,``,`**References:**`,`- MCP Apps CSP spec: ${Z}`,`- mcp-use CSP docs: ${et}`,``];if(i.push(`**Current declared CSP:**`),e?(i.push(`connectDomains: ${JSON.stringify(e.connectDomains??[])}`),i.push(`resourceDomains: ${JSON.stringify(e.resourceDomains??[])}`),i.push(`frameDomains: ${JSON.stringify(e.frameDomains??[])}`),i.push(`baseUriDomains: ${JSON.stringify(e.baseUriDomains??[])}`)):i.push(`No CSP declared.`),i.push(``),t&&(i.push(`**Effective policy (originalPolicy):**`),i.push("```"),i.push(t),i.push("```"),i.push(``)),n.length>0){i.push(`**Blocked requests (${n.length}):**`);for(let e of n){let t=e.effectiveDirective||e.directive,n=e.blockedUri||`(inline)`;i.push(`- ${t}: ${n}`)}i.push(``)}return r?(i.push(`**Apply this CSP config to fix the violations:**`),i.push(`Add these domains to the widget's CSP metadata (resource _meta.ui.csp). Use camelCase for MCP Apps (connectDomains, resourceDomains).`),i.push(``),i.push("```json"),i.push(JSON.stringify({connectDomains:r.connectDomains,resourceDomains:r.resourceDomains,...r.frameDomains?.length?{frameDomains:r.frameDomains}:{}},null,2)),i.push("```")):i.push(`No blocked requests - no fix needed.`),i.join(`
34
- `)}var Q=`__no_props__`,$=`__tool_props__`,nt=`__create_preset__`,rt=[{value:`desktop`,label:`Desktop`,icon:he},{value:`mobile`,label:`Mobile`,icon:Me},{value:`tablet`,label:`Tablet`,icon:Pe}];function it({options:e,value:t,onValueChange:n,placeholder:r,contentTestId:i,searchTestId:a,optionTestId:o,trigger:s}){let[c,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(``),p=(0,V.useRef)(null);(0,V.useEffect)(()=>{if(!c){f(``);return}let e=requestAnimationFrame(()=>p.current?.focus());return()=>cancelAnimationFrame(e)},[c]);let m=(0,V.useMemo)(()=>{let t=d.trim().toLowerCase();return t?e.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):[...e]},[e,d]),h=m.findIndex(e=>e.value===t);return(0,W.jsxs)(ne,{open:c,onOpenChange:u,children:[s,(0,W.jsxs)(E,{"data-testid":i,checkedIndex:h>=0?h:void 0,className:`w-80 overflow-hidden`,children:[(0,W.jsx)(`div`,{className:`border-b border-border p-2`,onKeyDown:e=>e.stopPropagation(),children:(0,W.jsx)(l,{ref:p,value:d,onChange:e=>f(e.target.value),placeholder:r,"data-testid":a,className:`h-8`})}),(0,W.jsx)(`div`,{className:`max-h-64 overflow-y-auto`,children:m.length===0?(0,W.jsx)(`p`,{className:`px-3 py-4 text-xs text-muted-foreground`,children:`No results found.`}):m.map((e,r)=>(0,W.jsx)(w,{index:r,label:e.label,checked:t===e.value,"data-testid":o(e.value),onSelect:()=>{n(e.value),u(!1)}},e.value))})]})]})}function at({displayMode:e,onDisplayModeChange:t,toolCallId:n,propsContext:i,resourceUri:l,toolInput:u,resourceAnnotations:d,llmConfig:f,resource:p,onPropsChange:m,requiredProps:h}){let{resolvedTheme:g,setTheme:_}=fe(),{playground:y,updatePlaygroundSettings:T,widgets:k,clearCspViolations:j}=me(),M=k.get(n),N=M?.cspViolations??[],P=M?.declaredCsp,F=M?.effectivePolicy,de=N.length>0?$e(N,P):null,pe=N.length>0?tt(P,F,N,de):``,ge=e===`fullscreen`,ve=e===`pip`,{presets:R,activePresetId:z,savePreset:Ce,deletePreset:Ee,setActivePreset:B,getActiveProps:Fe}=ze(l),[Le,H]=(0,V.useState)(!1),U=!!h?.length&&!z,[Be,Ve]=(0,V.useState)(()=>U);(0,V.useEffect)(()=>{U&&Ve(!0)},[U]);let[G,K]=(0,V.useState)(null),[He,Ue]=(0,V.useState)(!1),[q,We]=(0,V.useState)(`mode`),[Ge,Ke]=(0,V.useState)(!0),J=(0,V.useMemo)(()=>be(P),[P]),Je=(0,V.useMemo)(()=>xe(F),[F]),Y=(0,V.useMemo)(()=>we(J,Je),[J,Je]),Ye=(0,V.useMemo)(()=>Se({mode:y.cspMode,declared:P,effectivePolicy:F,violations:N}),[y.cspMode,P,F,N]),Xe=(0,V.useCallback)(()=>i===`tool`&&u?$:Q,[i,u]),[X,Z]=(0,V.useState)(Xe());(0,V.useEffect)(()=>{z&&i!==`tool`?Z(z):X!==Q&&X!==$&&Z(Xe())},[z,X,Xe,i]),(0,V.useEffect)(()=>{if(m){if(X===Q||X===$)m(null);else if(z&&X===z){let e=Fe();e&&m(e)}}},[X,z,u,Fe,m,R]);let et=e=>{if(e===nt){K(null),H(!0);return}if(e===Q||e===$)B(null),Z(e),m?.(null);else{B(e),Z(e);let t=R.find(t=>t.id===e);m?.(t?.props??null)}},at=e=>{Ce(e),B(e.id),Z(e.id),m?.(e.props)},ot=(e,t)=>{t.stopPropagation();let n=R.find(t=>t.id===e);n&&(Ee(e),I.success(`Preset deleted`,{description:`Preset "${n.name}" has been deleted.`}))},st=(e,t)=>{t.stopPropagation(),K(e),H(!0)},ct=()=>{switch(y.deviceType){case`mobile`:return(0,W.jsx)(Me,{className:`size-3`});case`tablet`:return(0,W.jsx)(Pe,{className:`size-3`});default:return(0,W.jsx)(he,{className:`size-3`})}},lt=rt.findIndex(e=>e.value===y.deviceType);return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!ge&&!ve&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(c,{"data-testid":`debugger-fullscreen-button`,variant:`outline`,size:`sm`,className:`bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,onClick:()=>t(`fullscreen`),children:(0,W.jsx)(v,{className:`size-4`})}),nativeButton:!0}),(0,W.jsx)(s,{children:`Enter fullscreen mode`})]}),(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(c,{"data-testid":`debugger-pip-button`,variant:`outline`,size:`sm`,className:`bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,onClick:()=>t(`pip`),children:(0,W.jsx)(Oe,{className:`size-4`})}),nativeButton:!0}),(0,W.jsx)(s,{children:`Picture-in-picture`})]})]}),(0,W.jsxs)(ne,{children:[(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(ie,{render:(0,W.jsx)(c,{"data-testid":`debugger-device-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,children:ct()}),nativeButton:!0}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Device: `,y.deviceType]})]}),(0,W.jsx)(E,{"data-testid":`debugger-device-dialog`,checkedIndex:lt>=0?lt:void 0,className:`w-56`,children:rt.map((e,t)=>(0,W.jsx)(w,{index:t,icon:e.icon,label:e.label,checked:y.deviceType===e.value,"data-testid":`debugger-device-option-${e.value}`,onSelect:()=>T({deviceType:e.value})},e.value))})]}),(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(c,{"data-testid":`debugger-theme-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,onClick:()=>{_(g===`dark`?`light`:`dark`)},children:g===`dark`?(0,W.jsx)(_e,{className:`size-3.5`}):(0,W.jsx)(ae,{className:`size-3.5`})}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Theme: `,g===`dark`?`Dark`:`Light`]})]}),(0,W.jsx)(it,{options:Ie,value:y.locale,onValueChange:e=>T({locale:e}),placeholder:`Search locales...`,contentTestId:`debugger-locale-dialog`,searchTestId:`debugger-locale-search`,optionTestId:e=>`debugger-locale-option-${e}`,trigger:(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(ie,{render:(0,W.jsx)(c,{"data-testid":`debugger-locale-button`,variant:`outline`,size:`sm`,className:`h-8 min-w-[50px] px-2 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,children:(0,W.jsx)(`span`,{className:`text-xs font-mono`,children:y.locale})}),nativeButton:!0}),nativeButton:!0}),(0,W.jsx)(s,{children:`Locale`})]})}),(0,W.jsx)(it,{options:Re,value:y.timeZone,onValueChange:e=>T({timeZone:e}),placeholder:`Search timezones...`,contentTestId:`debugger-timezone-dialog`,searchTestId:`debugger-timezone-search`,optionTestId:e=>`debugger-timezone-option-${e.replace(/\//g,`-`)}`,trigger:(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(ie,{render:(0,W.jsx)(c,{"data-testid":`debugger-timezone-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,children:(0,W.jsx)(le,{className:`size-3.5`})}),nativeButton:!0}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Timezone: `,y.timeZone]})]})}),(0,W.jsxs)(ee,{open:He,onOpenChange:Ue,children:[(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(O,{render:(0,W.jsxs)(c,{"data-testid":`debugger-csp-button`,variant:`outline`,size:`sm`,className:`relative h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,children:[y.cspMode===`permissive`?(0,W.jsx)(je,{className:`size-3.5`}):(0,W.jsx)(Ae,{className:`size-3.5`}),N.length>0&&(0,W.jsx)(`span`,{className:`absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full px-0.5 text-[9px] font-bold text-white leading-none ${y.cspMode===`permissive`?`bg-yellow-500`:`bg-red-500`}`,children:N.length>99?`99+`:N.length})]}),nativeButton:!0}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`CSP:`,` `,y.cspMode===`permissive`?`Permissive`:`Declared`,N.length>0&&` · ${N.length} ${y.cspMode===`permissive`?`would be blocked`:`blocked`}`]})]}),(0,W.jsxs)(b,{scrollable:!0,className:`sm:max-w-[520px] max-h-[85vh]`,"data-testid":`debugger-csp-dialog`,children:[(0,W.jsx)(te,{children:(0,W.jsx)(C,{children:`CSP Mode`})}),(0,W.jsxs)(ye,{className:`space-y-3`,children:[(0,W.jsx)(`div`,{role:`tablist`,"aria-label":`CSP diagnostics`,className:`grid grid-cols-3 rounded-md border border-zinc-200 dark:border-zinc-700 p-1`,children:[[`mode`,`Mode`],[`diff`,`Policy Diff`],[`findings`,`Findings`]].map(([e,t])=>(0,W.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":q===e,onClick:()=>We(e),className:`rounded px-2 py-1.5 text-xs font-medium ${q===e?`bg-zinc-100 dark:bg-zinc-800`:`text-muted-foreground`}`,children:t},e))}),q===`mode`&&(0,W.jsxs)(`div`,{role:`tabpanel`,className:`space-y-2`,children:[(0,W.jsxs)(c,{"data-testid":`debugger-csp-option-permissive`,variant:y.cspMode===`permissive`?`default`:`outline`,className:`w-full justify-start`,onClick:()=>T({cspMode:`permissive`}),children:[(0,W.jsx)(je,{className:`size-4 mr-2`}),`Permissive`]}),(0,W.jsxs)(c,{"data-testid":`debugger-csp-option-widget-declared`,variant:y.cspMode===`widget-declared`?`default`:`outline`,className:`w-full justify-start`,onClick:()=>T({cspMode:`widget-declared`}),children:[(0,W.jsx)(Ae,{className:`size-4 mr-2`}),`Widget-Declared`]}),(0,W.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Permissive records would-be blocks; Widget-Declared enforces the resource metadata policy.`})]}),q===`diff`&&(0,W.jsxs)(`div`,{role:`tabpanel`,className:`space-y-2`,children:[Y.length?(0,W.jsx)(`div`,{className:`max-h-64 overflow-y-auto rounded border border-zinc-200 dark:border-zinc-700`,children:Y.map(e=>(0,W.jsxs)(`div`,{className:`border-b border-zinc-100 dark:border-zinc-800 p-2 text-xs last:border-0`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsx)(`code`,{children:e.directive}),(0,W.jsx)(`span`,{className:`text-[10px] uppercase text-muted-foreground`,children:e.status})]}),(0,W.jsxs)(`div`,{className:`mt-1 font-mono text-[10px] text-muted-foreground break-all`,children:[`requested: `,e.requested.join(` `)||`—`,(0,W.jsx)(`br`,{}),`effective: `,e.effective.join(` `)||`—`]})]},e.directive))}):(0,W.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No requested or effective policy data yet.`}),F&&(0,W.jsxs)(c,{variant:`outline`,size:`sm`,onClick:async()=>{try{await L(F),I.success(`Policy copied to clipboard`)}catch{I.error(`Failed to copy`)}},children:[(0,W.jsx)(ue,{className:`size-3.5 mr-2`}),`Copy effective policy`]})]}),q===`findings`&&(0,W.jsxs)(`div`,{role:`tabpanel`,className:`space-y-2`,children:[(0,W.jsx)(`div`,{className:`space-y-1.5`,children:Ye.map((e,t)=>(0,W.jsxs)(`div`,{className:`rounded border border-zinc-200 dark:border-zinc-700 p-2`,children:[(0,W.jsx)(`div`,{className:`text-xs font-medium`,children:e.title}),(0,W.jsx)(`div`,{className:`text-[11px] text-muted-foreground break-all`,children:e.detail})]},`${e.title}-${t}`))}),N.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`span`,{className:`text-xs font-medium`,children:[N.length,` observed request`,N.length===1?``:`s`]}),(0,W.jsx)(`button`,{className:`text-xs text-muted-foreground underline`,onClick:()=>j(n),children:`Clear`})]}),(0,W.jsxs)(`div`,{className:`border border-amber-200 dark:border-amber-800 rounded-md overflow-hidden`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between bg-amber-50 dark:bg-amber-950/30 px-3 py-2`,children:[(0,W.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 text-xs font-medium text-amber-800 dark:text-amber-200`,onClick:()=>Ke(e=>!e),children:[Ge?(0,W.jsx)(se,{className:`size-3.5`}):(0,W.jsx)(r,{className:`size-3.5`}),`Prompt for Agents`]}),(0,W.jsx)(c,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:()=>void L(pe),"aria-label":`Copy prompt for agents`,children:(0,W.jsx)(ue,{className:`size-3.5`})})]}),Ge&&(0,W.jsx)(`pre`,{className:`max-h-48 overflow-auto whitespace-pre-wrap p-2 text-[11px]`,"data-testid":`debugger-csp-prompt-for-agents`,children:pe})]})]})]})]})]})]}),(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(c,{"data-testid":`debugger-touch-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${y.capabilities.touch?`border-blue-500 dark:border-blue-400`:``}`,onClick:()=>{T({capabilities:{...y.capabilities,touch:!y.capabilities.touch}})},children:(0,W.jsx)(ke,{className:`size-3.5 ${y.capabilities.touch?`text-blue-600 dark:text-blue-400`:``}`})}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Touch: `,y.capabilities.touch?`Enabled`:`Disabled`]})]}),(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(c,{"data-testid":`debugger-hover-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${y.capabilities.hover?`border-blue-500 dark:border-blue-400`:``}`,onClick:()=>{T({capabilities:{...y.capabilities,hover:!y.capabilities.hover}})},children:(0,W.jsx)(De,{className:`size-3.5 ${y.capabilities.hover?`text-blue-600 dark:text-blue-400`:``}`})}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Hover: `,y.capabilities.hover?`Enabled`:`Disabled`]})]}),(0,W.jsxs)(S,{children:[(0,W.jsx)(A,{render:(0,W.jsx)(c,{"data-testid":`debugger-safe-area-button`,variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,children:(0,W.jsx)(Ne,{className:`size-3.5`})}),nativeButton:!0}),(0,W.jsx)(x,{className:`w-64 p-3`,"data-testid":`debugger-safe-area-dialog`,children:(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(`label`,{className:`text-xs font-medium`,children:`Safe Area Insets`}),(0,W.jsx)(Qe,{value:y.safeAreaInsets,onChange:e=>{T({safeAreaInsets:e})}})]})})]}),i===`tool`?(0,W.jsxs)(ee,{children:[(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(O,{render:(0,W.jsx)(c,{variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900`,"data-testid":`debugger-props-button`,children:(0,W.jsx)(Te,{className:`size-3.5`})}),nativeButton:!0}),nativeButton:!0}),(0,W.jsx)(s,{children:`View Tool Props`})]}),(0,W.jsxs)(b,{scrollable:!0,className:`sm:max-w-[600px] max-h-[85vh]`,"data-testid":`debugger-props-dialog`,children:[(0,W.jsx)(te,{children:(0,W.jsx)(C,{children:`Tool Props`})}),(0,W.jsx)(ye,{children:(0,W.jsx)(re,{children:(0,W.jsx)(ce,{data:u??{},filename:`tool-props.json`})})})]})]}):(0,W.jsxs)(S,{open:Be,onOpenChange:Ve,children:[(0,W.jsxs)(o,{children:[(0,W.jsx)(a,{render:(0,W.jsx)(A,{render:(0,W.jsx)(c,{variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 backdrop-blur-sm shadow-sm ${U?`bg-amber-50 dark:bg-amber-950/40 border-amber-300 dark:border-amber-700 hover:bg-amber-100 dark:hover:bg-amber-900/50 animate-pulse`:`bg-white/90 dark:bg-zinc-900/90 hover:bg-white dark:hover:bg-zinc-900`}`,"data-testid":`debugger-props-button`,children:(0,W.jsx)(Te,{className:`size-3.5 ${U?`text-amber-500`:``}`})}),nativeButton:!0}),nativeButton:!0}),(0,W.jsxs)(s,{children:[`Props:`,` `,X===Q?`No Props`:X===$?`Tool Props`:R.find(e=>e.id===X)?.name||`Custom`]})]}),(0,W.jsxs)(x,{className:`w-64 p-2`,"data-testid":`debugger-props-popover`,children:[U&&(0,W.jsxs)(`div`,{className:`mb-2 rounded-md border border-amber-200 dark:border-amber-800/50 bg-amber-50 dark:bg-amber-950/30 px-3 py-2`,children:[(0,W.jsx)(`p`,{className:`text-xs font-medium text-amber-700 dark:text-amber-300 mb-0.5`,children:`Props required to render this widget:`}),(0,W.jsx)(`p`,{className:`text-xs font-mono text-amber-600 dark:text-amber-400`,children:h.join(`, `)}),(0,W.jsx)(`p`,{className:`text-xs text-amber-500 dark:text-amber-400 mt-1`,children:`Create a preset below to set them.`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsx)(c,{variant:X===Q?`secondary`:`ghost`,size:`sm`,className:`w-full justify-start`,onClick:()=>et(Q),"data-testid":`debugger-props-no-props`,children:`No Props`}),R.map(e=>(0,W.jsxs)(`div`,{className:`relative group flex items-center`,children:[(0,W.jsx)(c,{variant:X===e.id?`secondary`:`ghost`,size:`sm`,className:`w-full justify-start pr-14`,onClick:()=>et(e.id),"data-testid":`debugger-props-preset-${e.id}`,children:e.name}),(0,W.jsxs)(`div`,{className:`absolute right-2 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,W.jsx)(c,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:t=>st(e,t),"data-testid":`debugger-props-edit-${e.id}`,children:(0,W.jsx)(oe,{className:`h-3 w-3`})}),(0,W.jsx)(c,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:t=>ot(e.id,t),"data-testid":`debugger-props-delete-${e.id}`,children:(0,W.jsx)(D,{className:`h-3 w-3 text-destructive`})})]})]},e.id)),(0,W.jsx)(c,{variant:`ghost`,size:`sm`,className:`w-full justify-start text-primary`,onClick:()=>et(nt),"data-testid":`debugger-props-create-preset`,children:`+ Create Preset...`})]})]})]}),(0,W.jsx)(qe,{iframeId:n,enabled:!0}),p&&(0,W.jsx)(Ze,{open:Le,onOpenChange:H,onSave:at,existingPresets:R,resource:p,resourceAnnotations:d,llmConfig:f||null,editingPreset:G})]})}function ot({children:e,className:t,noWrapper:n}){return n?e:(0,W.jsx)(`div`,{className:i(`flex flex-1 items-center justify-center bg-zinc-50 dark:bg-zinc-800`,`[background-image:radial-gradient(circle,rgba(0,0,0,0.12)_1px,transparent_1px)]`,`dark:[background-image:radial-gradient(circle,rgba(255,255,255,0.1)_1px,transparent_1px)]`,`bg-[length:32px_32px]`,t),children:e})}export{at as n,Ee as r,ot as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-B3b8EU0b.js";var t=e(`brush`,[[`path`,{d:`m11 10 3 3`,key:`fzmg1i`}],[`path`,{d:`M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z`,key:`p4q2r7`}],[`path`,{d:`M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031`,key:`wy6l02`}]]);export{t};
@@ -1 +0,0 @@
1
- import{Lr as e}from"./input-CLYhA7PK.js";import{t}from"./jsx-runtime-Cjj9sGSy.js";import{g as n,h as r,vn as i}from"./index-TQ5V7cM9.js";var a=t();function o({className:t,...o}){return(0,a.jsx)(n,{"data-slot":`checkbox`,className:e(`peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary`,t),...o,children:(0,a.jsx)(r,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none [&>svg]:size-3.5`,children:(0,a.jsx)(i,{})})})}export{o as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-B3b8EU0b.js";var t=e(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]);export{t};
@@ -1 +0,0 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";var n=e(t()),r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),i=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),a=e=>{let t=i(e);return t.charAt(0).toUpperCase()+t.slice(1)},o=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),s=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0},c={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},l=(0,n.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:r=2,absoluteStrokeWidth:i,className:a=``,children:l,iconNode:u,...d},f)=>(0,n.createElement)(`svg`,{ref:f,...c,width:t,height:t,stroke:e,strokeWidth:i?Number(r)*24/Number(t):r,className:o(`lucide`,a),...!l&&!s(d)&&{"aria-hidden":`true`},...d},[...u.map(([e,t])=>(0,n.createElement)(e,t)),...Array.isArray(l)?l:[l]])),u=(e,t)=>{let i=(0,n.forwardRef)(({className:i,...s},c)=>(0,n.createElement)(l,{ref:c,iconNode:t,className:o(`lucide-${r(a(e))}`,`lucide-${e}`,i),...s}));return i.displayName=a(e),i};export{u as t};
@@ -1,21 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-TQ5V7cM9.js","assets/react-CU_d2d5K.js","assets/input-CLYhA7PK.js","assets/createLucideIcon-B3b8EU0b.js","assets/jsx-runtime-Cjj9sGSy.js","assets/FormContext-DH2caWKO.js","assets/select-CJ57-Bor.js","assets/AnimatePresence-C5p0yiY1.js","assets/label-Cdim77Jw.js","assets/index-fBX3akc8.css"])))=>i.map(i=>d[i]);
2
- import{At as e,Mt as t,kt as n}from"./index-TQ5V7cM9.js";var r=class{disallowedTools;connectorToolMap=new Map;constructor(e){this.disallowedTools=e??[]}static async createTools(e,t){let r=new this(t);(!e.activeSessions||Object.keys(e.activeSessions).length===0)&&(n.debug(`No active sessions found, creating new ones...`),await e.createAllSessions());let i=e.getAllActiveSessions(),a=Object.values(i).map(e=>e.connector);return r.createToolsFromConnectors(a)}async loadToolsForConnector(e){if(this.connectorToolMap.has(e)){let t=this.connectorToolMap.get(e);return n.debug(`Returning ${t.length} existing tools for connector`),t}let t=[];if(!await this.ensureConnectorInitialized(e))return[];for(let n of e.tools){let r=this.convertTool(n,e);r&&t.push(r)}return this.connectorToolMap.set(e,t),n.debug(`Loaded ${t.length} new tools for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`),t}async createToolsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadToolsForConnector(n);t.push(...e)}return n.debug(`Available tools: ${t.length}`),t}async loadResourcesForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listAllResources())?.resources||[];if(this.convertResource)for(let n of r){let r=this.convertResource(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new resources for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading resources for connector: ${e}`)}return t}async loadPromptsForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listPrompts())?.prompts||[];if(this.convertPrompt)for(let n of r){let r=this.convertPrompt(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new prompts for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading prompts for connector: ${e}`)}return t}async createResourcesFromConnectors(e){let t=[];for(let n of e){let e=await this.loadResourcesForConnector(n);t.push(...e)}return n.debug(`Available resources: ${t.length}`),t}async createPromptsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadPromptsForConnector(n);t.push(...e)}return n.debug(`Available prompts: ${t.length}`),t}checkConnectorInitialized(e){return!!(e.tools&&e.tools.length)}async ensureConnectorInitialized(e){if(!this.checkConnectorInitialized(e)){n.debug(`Connector doesn't have tools, initializing it`);try{return await e.initialize(),!0}catch(e){return n.error(`Error initializing connector: ${e}`),!1}}return!0}};function i(e){return e.replace(/[^A-Za-z0-9_]+/g,`_`).toLowerCase().replace(/^_+|_+$/g,``)}var a=class extends r{usedToolNames=new Set;handlers=new Map;constructor(e=[]){super(e)}async createToolsFromConnectors(e){return this.usedToolNames.clear(),this.handlers.clear(),super.createToolsFromConnectors(e)}createCallTool(){let e=this.handlers;return async(t,r)=>{let i=e.get(t);if(!i)throw Error(`Unknown tool: ${t}`);try{if(i.kind===`tool`)return await i.connector.callTool(i.mcpName,r);if(i.kind===`resource`){let e=i.resourceUri??i.mcpName;return await i.connector.readResource(e)}return await i.connector.getPrompt(i.mcpName,r)}catch(e){throw n.error(`Error executing native MCP tool ${t}: ${e}`),e}}}toProviderTools(e){return e.map(({name:e,description:t,inputSchema:n})=>({name:e,description:t,inputSchema:n}))}reserveName(e,t){if(!this.usedToolNames.has(e))return this.usedToolNames.add(e),e;if(t){let n=`${t}_${e}`;if(!this.usedToolNames.has(n))return this.usedToolNames.add(n),n;let r=2;for(;this.usedToolNames.has(`${n}_${r}`);)r++;let i=`${n}_${r}`;return this.usedToolNames.add(i),i}let n=2;for(;this.usedToolNames.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return this.usedToolNames.add(r),r}register(e,t){return this.handlers.set(e.name,t),e}convertTool(e,t){if(this.disallowedTools.includes(e.name))return null;let n=this.reserveName(e.name??`tool`),r={name:n,dispatchKey:n,description:e.description??``,inputSchema:e.inputSchema??{type:`object`,properties:{}}};return this.register(r,{connector:t,kind:`tool`,mcpName:e.name})}convertResource(e,t){let n=i(e.name||e.uri)||`resource`,r=this.reserveName(n,`resource`),a={name:r,dispatchKey:r,description:e.description||`Return the content of the resource located at URI ${e.uri}.`,inputSchema:{type:`object`,properties:{}}};return this.register(a,{connector:t,kind:`resource`,mcpName:e.uri,resourceUri:e.uri})}convertPrompt(e,t){let n={},r=[];if(e.arguments?.length)for(let t of e.arguments)n[t.name]={type:`string`,description:t.description},t.required!==!1&&r.push(t.name);let a=i(e.name||`prompt`)||`prompt`,o=this.reserveName(a,`prompt`),s={name:o,dispatchKey:o,description:e.description||``,inputSchema:{type:`object`,properties:n,...r.length>0?{required:r}:{}}};return this.register(s,{connector:t,kind:`prompt`,mcpName:e.name})}};function o(e){return{type:`text`,text:e}}function s(e,t){return{type:`image`,url:`data:${t};base64,${e}`,mimeType:t,data:e}}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.content)?!0:`structuredContent`in t}function l(e){return typeof e==`object`&&!!e&&e.isError===!0}function u(e){if(!e||typeof e!=`object`)return null;switch(e.type){case`text`:{let t=e.text;return typeof t==`string`&&t.length>0?o(t):null}case`image`:{let t=e;if(typeof t.data!=`string`||!t.data)return null;let n=typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`image/png`;return s(t.data,n)}case`audio`:{let t=e;return o(`[audio: ${typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`audio/*`}, base64 omitted (${typeof t.data==`string`?t.data.length:0} chars)]`)}case`resource`:{let t=e.resource??{};return typeof t.text==`string`&&t.text.length>0?o(t.text):typeof t.blob==`string`&&typeof t.mimeType==`string`&&t.mimeType.startsWith(`image/`)?s(t.blob,t.mimeType):o(`[resource: ${typeof t.uri==`string`?t.uri:`<unknown>`} (${typeof t.mimeType==`string`?t.mimeType:`unknown`})]`)}case`resource_link`:{let t=e,n=typeof t.uri==`string`?t.uri:`<unknown>`;return o(`[resource_link${typeof t.name==`string`?` "${t.name}"`:``}: ${n}]`)}default:return o(`[unsupported tool content block: ${String(e.type)}]`)}}function ee(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let{_meta:t,...n}=e;return n}return e}function te(e){let t=ee(e);if(typeof t==`string`)return t.length>0?[o(t)]:[];if(c(t)){let e=t,n=[];if(Array.isArray(e.content))for(let t of e.content){let e=u(t);e&&n.push(e)}if(e.structuredContent!==void 0)try{n.push(o(`structuredContent: ${JSON.stringify(e.structuredContent)}`))}catch{}return e.isError&&n.unshift(o(`[tool reported isError=true]`)),n}try{return[o(JSON.stringify(t))]}catch{return[o(String(t))]}}function ne(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
3
- `):null}function d(e){let t=te(e),n=ne(t);return n===null?t:n}function f(e){if(typeof e==`string`)return{text:e,imageParts:[],isString:!0};let t=[],n=[];for(let r of e)r.type===`text`?r.text&&t.push(r.text):r.type===`image`&&n.push(r);return{text:t.join(`
4
- `),imageParts:n,isString:!1}}function p(e,t){return`(Tool "${e??`<tool>`}" returned the following image${t===1?``:`s`}:)`}function m(e){let t=typeof e.content==`string`?e.content:Array.isArray(e.content)?e.content.map(e=>e?.text??``).join(`
5
- `):JSON.stringify(e.content??``);return t.trim()?t.trim():e.parts?.length?e.parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(``).trim():``}function re(e){let t=[];return e.forEach((e,n)=>{if(e.role===`user`){let n=m(e)||`[no content]`;if(e.attachments?.length){let r=[{type:`text`,text:n}];for(let t of e.attachments)t.type===`image`&&r.push({type:`image`,url:`data:${t.mimeType};base64,${t.data}`,mimeType:t.mimeType,data:t.data});t.push({role:`user`,content:r})}else t.push({role:`user`,content:n});return}let r=(e.parts??[]).filter(e=>e.type===`tool-invocation`&&e.toolInvocation&&e.toolInvocation.result!==void 0);if(r.length===0){let n=m(e)||`[no content]`;t.push({role:`assistant`,content:n});return}let i=m(e),a=r.map((e,t)=>({id:`call_${n}_${t}_${e.toolInvocation.toolName}`,name:e.toolInvocation.toolName,args:e.toolInvocation.args}));t.push({role:`assistant`,content:i,toolCalls:a}),r.forEach((e,r)=>{let i=e.toolInvocation.result;t.push({role:`tool`,content:d(i),toolCallId:`call_${n}_${r}_${e.toolInvocation.toolName}`,toolName:e.toolInvocation.toolName,toolResult:i,toolIsError:l(i)})})}),t}function ie(e){let t=[],n=[];for(let r of e)if(r.role===`system`){if(typeof r.content==`string`)t.push(r.content);else if(Array.isArray(r.content))for(let e of r.content)e.type===`text`&&t.push(e.text)}else n.push(r);return{system:t.length>0?t.join(`
6
-
7
- `):void 0,rest:n}}function h(e){let t=e.match(/^data:([^;,]+);base64,(.+)$/);return t?{mimeType:t[1],data:t[2]}:null}async function*g(e,t){let n=e.getReader(),r=new TextDecoder(`utf-8`),i=``;try{for(;;){if(t?.aborted)return;let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o;for(;(o=ae(i))!==-1;){let e=i.slice(0,o);i=i.slice(o).replace(/^(\r\n\r\n|\n\n|\r\r)/,``);let t=_(e);t&&(yield t)}}if(i.trim()){let e=_(i);e&&(yield e)}}finally{try{n.releaseLock()}catch{}}}function ae(e){let t=e.indexOf(`
8
-
9
- `),n=e.indexOf(`\r
10
- \r
11
- `);return t===-1?n:n===-1?t:Math.min(t,n)}function _(e){let t,n=[];for(let r of e.split(/\r?\n/)){if(!r||r.startsWith(`:`))continue;let e=r.indexOf(`:`),i=e===-1?r:r.slice(0,e),a=e===-1?``:r.slice(e+1);a.startsWith(` `)&&(a=a.slice(1)),i===`event`?t=a:i===`data`&&n.push(a)}return n.length===0?null:{event:t,data:n.join(`
12
- `)}}function v(e,...t){for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t}}function y(e){if(!e||typeof e!=`object`)return;let t=e,n=v(t,`inputTokens`,`input_tokens`,`prompt_tokens`,`promptTokenCount`,`prompt_eval_count`),r=v(t,`outputTokens`,`output_tokens`,`completion_tokens`,`candidatesTokenCount`,`eval_count`),i=v(t,`totalTokens`,`total_tokens`,`totalTokenCount`)??(n!==void 0&&r!==void 0?n+r:void 0),a=t.input_tokens_details&&typeof t.input_tokens_details==`object`?t.input_tokens_details:void 0,o=t.output_tokens_details&&typeof t.output_tokens_details==`object`?t.output_tokens_details:void 0,s=v(t,`cachedInputTokens`,`cache_read_input_tokens`)??(a?v(a,`cached_tokens`):void 0),c=v(t,`reasoningTokens`,`thoughtsTokenCount`)??(o?v(o,`reasoning_tokens`):void 0);if(!(n===void 0&&r===void 0&&i===void 0&&s===void 0&&c===void 0))return{inputTokens:n,outputTokens:r,totalTokens:i,cachedInputTokens:s,reasoningTokens:c}}var b=`https://api.anthropic.com/v1/messages`,x=`2023-06-01`,oe=4096;function S(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}};let t=h(e.url);return t?{type:`image`,source:{type:`base64`,media_type:t.mimeType,data:t.data}}:{type:`image`,source:{type:`url`,url:e.url}}}function se(e){if(typeof e==`string`)return[{type:`text`,text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else{let e=S(n);e&&t.push(e)}return t.length===0&&t.push({type:`text`,text:`[no content]`}),t}function ce(e){if(typeof e==`string`)return e;let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else if(n.type===`image`){let e=S(n);e&&t.push(e)}return t.length===0?`[no content]`:t}function le(e){let t=[];for(let n of e){if(n.role===`tool`){let e=t[t.length-1],r={type:`tool_result`,tool_use_id:n.toolCallId,content:ce(n.content),...n.toolIsError?{is_error:!0}:{}};e&&e.role===`user`&&Array.isArray(e.content)?e.content.push(r):t.push({role:`user`,content:[r]});continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({type:`text`,text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({type:`tool_use`,id:t.id,name:t.name,input:t.args??{}});e.length===0&&e.push({type:`text`,text:`[no content]`}),t.push({role:`assistant`,content:e});continue}t.push({role:`user`,content:se(n.content)})}return t}function C(e,t){let{config:n,messages:r,tools:i}=e,{system:a,rest:o}=ie(r),s={model:n.model,max_tokens:n.maxTokens??oe,messages:le(o),...t?{stream:!0}:{}};return n.temperature!==void 0&&(s.temperature=n.temperature),a&&(s.system=a),i&&i.length>0&&(s.tools=i.map(e=>({name:e.name,description:e.description,input_schema:e.inputSchema}))),s}async function*ue(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!0)),signal:n});if(!r.ok||!r.body){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=new Map,a;for await(let e of g(r.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}let n=t?.type;if(n===`message_start`)a=y(t?.message?.usage);else if(n===`message_delta`){let e=y(t?.usage);e&&(a={...a,...e})}else if(n===`content_block_start`){let e=t.index,n=t.content_block??{};if(n.type===`tool_use`){i.set(e,{kind:`tool_use`,id:n.id,name:n.name,argsJson:``,emittedStart:!1}),yield{type:`tool-call-start`,index:e,toolCallId:n.id,toolName:n.name};let t=i.get(e);t&&(t.emittedStart=!0)}else i.set(e,{kind:`text`,argsJson:``,emittedStart:!1})}else if(n===`content_block_delta`){let e=t.index,n=t.delta??{},r=i.get(e);if(!r)continue;n.type===`text_delta`&&typeof n.text==`string`?yield{type:`text-delta`,delta:n.text}:n.type===`input_json_delta`&&typeof n.partial_json==`string`&&r.kind===`tool_use`&&(r.argsJson+=n.partial_json,yield{type:`tool-call-args-delta`,index:e,toolCallId:r.id,toolName:r.name,argsDelta:n.partial_json})}else if(n===`content_block_stop`){let e=t.index,n=i.get(e);if(n&&n.kind===`tool_use`&&n.id&&n.name){let t={};if(n.argsJson)try{t=JSON.parse(n.argsJson)}catch{t={}}yield{type:`tool-call-ready`,index:e,toolCallId:n.id,toolName:n.name,args:t}}}else if(n===`message_stop`){if(a){let e=a.totalTokens??(a.inputTokens!==void 0&&a.outputTokens!==void 0?a.inputTokens+a.outputTokens:void 0);yield{type:`usage`,usage:{...a,totalTokens:e}}}}else n===`error`&&(yield{type:`error`,message:t?.error?.message??`Anthropic stream error`})}yield{type:`done`}}async function de(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!1)),signal:n});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=await r.json(),a=``,o=[];for(let e of i?.content??[])e.type===`text`&&typeof e.text==`string`?a+=e.text:e.type===`tool_use`&&o.push({id:e.id,name:e.name,args:e.input&&typeof e.input==`object`?e.input:{}});return{text:a,toolCalls:o}}var fe=new Set([`type`,`description`,`enum`,`properties`,`required`,`items`,`format`,`nullable`,`minimum`,`maximum`,`minItems`,`maxItems`,`minLength`,`maxLength`,`pattern`]);function pe(e){if(!e||typeof e!=`object`)return{type:`object`};let t=w(e);if(typeof t!=`object`||!t)return{type:`object`};let n=t;return n.type||=`object`,n}function w(e){if(Array.isArray(e))return e.map(w);if(!e||typeof e!=`object`)return e;let t=e;for(let e of[`oneOf`,`anyOf`,`allOf`]){let n=t[e];if(Array.isArray(n)&&n.length===1)return w(n[0])}let n={};for(let[e,r]of Object.entries(t))if(fe.has(e))if(e===`properties`&&r&&typeof r==`object`){let t={};for(let[e,n]of Object.entries(r))t[e]=w(n);n[e]=t}else e===`items`?n[e]=w(r):n[e]=r;return n}function me(e){let t=e.trim();return t.startsWith(`models/`)?t.slice(7):t}function he(e,t){let n=t===`stream`?`streamGenerateContent?alt=sse`:`generateContent`;return`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(me(e))}:${n}`}function ge(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{inlineData:{mimeType:e.mimeType,data:e.data}};let t=h(e.url);return t?{inlineData:{mimeType:t.mimeType,data:t.data}}:null}function _e(e){if(typeof e==`string`)return[{text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({text:n.text});else{let e=ge(n);e&&t.push(e)}return t.length===0&&t.push({text:`[no content]`}),t}function ve(e){if(typeof e==`string`){let t;try{t=JSON.parse(e)}catch{t={result:e}}return(!t||typeof t!=`object`)&&(t={result:t}),{response:t,imageParts:[]}}let{text:t,imageParts:n}=f(e),r={};return t&&(r.text=t),n.length>0&&(r.images=n.map(e=>({mimeType:e.mimeType??`image/*`,omitted:!0})),r.note=`Image bytes were sent in the next user turn as inlineData.`),Object.keys(r).length===0&&(r.result=null),{response:r,imageParts:n}}function ye(e){let t=[];for(let n of e){if(n.role===`tool`){let{response:e,imageParts:r}=ve(n.content),i=t[t.length-1],a={functionResponse:{name:n.toolName,response:e}};if(i&&i.role===`function`?i.parts.push(a):t.push({role:`function`,parts:[a]}),r.length>0){let e=[{text:p(n.toolName,r.length)}];for(let t of r){let n=ge(t);n&&e.push(n)}t.push({role:`user`,parts:e})}continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({functionCall:{name:t.name,args:t.args??{}}});e.length===0&&e.push({text:`[no content]`}),t.push({role:`model`,parts:e});continue}t.push({role:`user`,parts:_e(n.content)})}return t}function T(e){let{config:t,messages:n,tools:r}=e,{system:i,rest:a}=ie(n),o={contents:ye(a)};i&&(o.systemInstruction={parts:[{text:i}]});let s={};return t.temperature!==void 0&&(s.temperature=t.temperature),t.maxTokens!==void 0&&(s.maxOutputTokens=t.maxTokens),Object.keys(s).length>0&&(o.generationConfig=s),r&&r.length>0&&(o.tools=[{functionDeclarations:r.map(e=>({name:e.name,description:e.description,parameters:pe(e.inputSchema)}))}]),o}async function*be(e){let{config:t,signal:n}=e,r=`${he(t.model,`stream`)}&key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok||!i.body){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=0,o;for await(let e of g(i.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}o=y(t?.usageMetadata)??o;let n=t?.candidates?.[0]?.content?.parts??[];for(let e of n)if(typeof e.text==`string`&&e.text.length>0)yield{type:`text-delta`,delta:e.text};else if(e.functionCall&&typeof e.functionCall==`object`){let t=a++,n=`call_${t}_${e.functionCall.name??`tool`}`,r=e.functionCall.name??``,i=e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{};yield{type:`tool-call-start`,index:t,toolCallId:n,toolName:r};let o=JSON.stringify(i);o&&o!==`{}`&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:n,toolName:r,argsDelta:o}),yield{type:`tool-call-ready`,index:t,toolCallId:n,toolName:r,args:i}}}o&&(yield{type:`usage`,usage:o}),yield{type:`done`}}async function xe(e){let{config:t,signal:n}=e,r=`${he(t.model,`single`)}?key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=await i.json(),o=``,s=[],c=a?.candidates?.[0]?.content?.parts??[];for(let e of c)typeof e.text==`string`?o+=e.text:e.functionCall&&s.push({id:`call_${s.length}_${e.functionCall.name??`tool`}`,name:e.functionCall.name??``,args:e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{}});return{text:o,toolCalls:s}}async function*Se(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;;){if(t?.aborted)return;let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
13
- `);i=o.pop()??``;for(let e of o){let t=e.trim();if(t)try{yield JSON.parse(t)}catch{}}}let e=i.trim();if(e)try{yield JSON.parse(e)}catch{}}finally{n.releaseLock()}}var Ce=`http://localhost:11434`;function E(e){let t=(e||`http://localhost:11434`).trim(),n=t.length;for(;n>0&&t.charCodeAt(n-1)===47;)n--;let r=t.slice(0,n);return r.endsWith(`/api`)?r.slice(0,-4):r}function D(e,t){return`${E(e)}${t}`}var we=class extends Error{constructor(e){super("Could not reach Ollama. If it's running, allow this origin by starting Ollama with `OLLAMA_ORIGINS=*` (or your inspector origin) and try again."),this.name=`OllamaCorsError`,this.cause=e}};function Te(e){let t=[];for(let n of e){if(n.type!==`image`)continue;if(n.data){t.push(n.data);continue}let e=h(n.url);e?.data&&t.push(e.data)}return t}function O(e){if(typeof e==`string`)return{content:e};let t=e.filter(e=>e.type===`text`).map(e=>e.text).join(``),n=Te(e);return{content:t,...n.length>0?{images:n}:{}}}function Ee(e){return e.map(e=>e.role===`tool`?{role:`tool`,tool_name:e.toolName,content:typeof e.content==`string`?e.content:JSON.stringify(e.toolResult??e.content)}:e.role===`assistant`?{role:`assistant`,...typeof e.content==`string`?{content:e.content}:O(e.content),...e.toolCalls?.length?{tool_calls:e.toolCalls.map((e,t)=>({type:`function`,function:{index:t,name:e.name,arguments:e.args}}))}:{}}:{role:e.role,...O(e.content)})}function k(e,t){let{config:n,messages:r,tools:i}=e,a={model:n.model,messages:Ee(r),stream:t},o={};return n.temperature!==void 0&&(o.temperature=n.temperature),n.maxTokens!==void 0&&(o.num_predict=n.maxTokens),Object.keys(o).length>0&&(a.options=o),i&&i.length>0&&(a.tools=i.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}}))),a}function A(e){return{"Content-Type":`application/json`,...e.apiKey.trim()?{Authorization:`Bearer ${e.apiKey.trim()}`}:{}}}function j(e){return Array.isArray(e)?e.map(e=>{let t=e&&typeof e==`object`?e.function:void 0,n=typeof t?.name==`string`?t.name:``,r=t?.arguments;return{name:n,args:r&&typeof r==`object`?r:{}}}).filter(e=>e.name):[]}async function*De(e){let{config:t,signal:n}=e,r=await fetch(D(t.baseUrl,`/api/chat`),{method:`POST`,headers:A(t),body:JSON.stringify(k(e,!0)),signal:n});if(!r.ok||!r.body){let e=await r.text().catch(()=>``);throw Error(`Ollama request failed (${r.status} ${r.statusText}): ${e}`)}let i=!1,a;for await(let e of Se(r.body,n)){let t=e&&typeof e==`object`?e.message:void 0;if(typeof t?.content==`string`&&t.content.length>0&&(yield{type:`text-delta`,delta:t.content}),!i){let e=j(t?.tool_calls);if(e.length>0){for(let[t,n]of e.entries()){let e=`call_${t}_${n.name||`tool`}`;yield{type:`tool-call-start`,index:t,toolCallId:e,toolName:n.name};let r=JSON.stringify(n.args);r&&r!==`{}`&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:e,toolName:n.name,argsDelta:r}),yield{type:`tool-call-ready`,index:t,toolCallId:e,toolName:n.name,args:n.args}}i=!0}}e&&typeof e==`object`&&e.error&&(yield{type:`error`,message:String(e.error)}),a=y(e)??a}a&&(yield{type:`usage`,usage:a}),yield{type:`done`}}async function Oe(e){let{config:t,signal:n}=e,r=await fetch(D(t.baseUrl,`/api/chat`),{method:`POST`,headers:A(t),body:JSON.stringify(k(e,!1)),signal:n});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Ollama request failed (${r.status} ${r.statusText}): ${e}`)}let i=(await r.json())?.message??{};return{text:typeof i.content==`string`?i.content:``,toolCalls:j(i.tool_calls).map((e,t)=>({id:`call_${t}_${e.name||`tool`}`,name:e.name,args:e.args}))}}var M=class extends Error{status;body;constructor(e,t,n){super(t),this.name=`LlmRequestError`,this.status=e,this.body=n}};async function N(e){let t=await e.text().catch(()=>``),n=t;if(t)try{n=JSON.parse(t)}catch{}throw new M(e.status,`OpenAI request failed (${e.status} ${e.statusText}): ${t}`,n)}var ke=`https://api.openai.com/v1`;function P(e,t){return`${e.baseUrl??ke}${t}`}function F(e){let t={"Content-Type":`application/json`,...e.extraHeaders};return e.apiKey&&(t.Authorization=`Bearer ${e.apiKey}`),t}function Ae(e){return typeof e==`string`?e:e.map(e=>e.type===`text`?{type:`text`,text:e.text}:{type:`image_url`,image_url:{url:e.url}})}function I(e){let t=[];for(let n of e){if(n.role===`tool`){let{text:e,imageParts:r}=f(n.content),i=r.length>0?`[image content; see next message]`:`[no content]`;if(t.push({role:`tool`,tool_call_id:n.toolCallId,content:e||i}),r.length>0){let e=[{type:`text`,text:p(n.toolName,r.length)},...r.map(e=>({type:`image_url`,image_url:{url:e.url}}))];t.push({role:`user`,content:e})}continue}if(n.role===`assistant`){let e={role:`assistant`,content:typeof n.content==`string`&&n.content.length>0?n.content:null};n.toolCalls?.length&&(e.tool_calls=n.toolCalls.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.args)}}))),t.push(e);continue}t.push({role:n.role,content:Ae(n.content)})}return t}async function*L(e){let{config:t,messages:n,tools:r,signal:i}=e,a={model:t.model,messages:I(n),stream:!0};t.provider===`openrouter`&&(a.stream_options={include_usage:!0}),t.temperature!==void 0&&(a.temperature=t.temperature),t.maxTokens!==void 0&&(a.max_tokens=t.maxTokens),r&&r.length>0&&(a.tools=r.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}})));let o=P(t,`/chat/completions`),s=await fetch(o,{method:`POST`,headers:F(t),body:JSON.stringify(a),signal:i,...t.credentials?{credentials:t.credentials}:{}}),c=s.body;s.ok||await N(s),c||await N(s);let l=c,u=new Map;for await(let e of g(l,i)){if(!e.data||e.data===`[DONE]`)continue;let t;try{t=JSON.parse(e.data)}catch{continue}let n=y(t?.usage);n&&(yield{type:`usage`,usage:n});let r=t?.choices?.[0];if(!r)continue;let i=r.delta??{};if(typeof i.content==`string`&&i.content.length>0&&(yield{type:`text-delta`,delta:i.content}),Array.isArray(i.tool_calls))for(let e of i.tool_calls){let t=typeof e.index==`number`?e.index:0,n=u.get(t);n||(n={id:e.id??`call_${t}`,name:e.function?.name??``,argsJson:``,started:!1},u.set(t,n)),(e.id&&!n.id.startsWith(`call_`)||e.id)&&(n.id=e.id),e.function?.name&&(n.name=e.function.name),!n.started&&n.name&&(n.started=!0,yield{type:`tool-call-start`,index:t,toolCallId:n.id,toolName:n.name});let r=e.function?.arguments;typeof r==`string`&&r.length>0&&(n.argsJson+=r,n.started&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:n.id,toolName:n.name,argsDelta:r}))}if(r.finish_reason){for(let[e,t]of u){let n={};if(t.argsJson)try{n=JSON.parse(t.argsJson)}catch{n={}}yield{type:`tool-call-ready`,index:e,toolCallId:t.id,toolName:t.name,args:n}}u.clear()}}yield{type:`done`}}async function R(e){let{config:t,messages:n,tools:r,signal:i}=e,a={model:t.model,messages:I(n)};t.temperature!==void 0&&(a.temperature=t.temperature),t.maxTokens!==void 0&&(a.max_tokens=t.maxTokens),r&&r.length>0&&(a.tools=r.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}})));let o=P(t,`/chat/completions`),s=await fetch(o,{method:`POST`,headers:F(t),body:JSON.stringify(a),signal:i,...t.credentials?{credentials:t.credentials}:{}});s.ok||await N(s);let c=(await s.json())?.choices?.[0]?.message;return{text:typeof c?.content==`string`?c.content:``,toolCalls:Array.isArray(c?.tool_calls)?c.tool_calls.map(e=>{let t={};try{t=JSON.parse(e?.function?.arguments??`{}`)}catch{t={}}return{id:e.id,name:e.function?.name??``,args:t}}):[]}}function z(e){return{...e,config:{...e.config,baseUrl:`https://openrouter.ai/api/v1`,extraHeaders:{"HTTP-Referer":`https://inspector.mcp-use.com`,"X-Title":`mcp-use Inspector`}}}}function je(e){switch(e.config.provider){case`openai`:throw Error(`provider 'openai' uses the Responses API via OpenAIResponsesDriver, not streamChat`);case`openai-compatible`:return L(e);case`anthropic`:return ue(e);case`google`:return be(e);case`openrouter`:return L(z(e));case`ollama`:return De(e);default:throw Error(`Unsupported LLM provider: ${e.config.provider}`)}}function Me(e){switch(e.config.provider){case`openai`:throw Error(`provider 'openai' uses the Responses API via OpenAIResponsesDriver, not chat`);case`openai-compatible`:return R(e);case`anthropic`:return de(e);case`google`:return xe(e);case`openrouter`:return R(z(e));case`ollama`:return Oe(e);default:throw Error(`Unsupported LLM provider: ${e.config.provider}`)}}var Ne=`https://api.openai.com/v1`;function B(e,t){return`${(e.baseUrl??Ne).replace(/\/$/,``)}${t}`}function V(e){let t={"Content-Type":`application/json`,...e.extraHeaders};return e.apiKey&&(t.Authorization=`Bearer ${e.apiKey}`),t}async function H(e){let t=await e.text().catch(()=>``);return`OpenAI request failed (${e.status} ${e.statusText}): ${t}`}function Pe(e){return typeof e==`string`?e:e.map(e=>e.type===`text`?{type:`input_text`,text:e.text}:{type:`input_image`,image_url:e.url})}function U(e){let t=[],n=[];for(let r of e){if(r.role===`system`){let e=typeof r.content==`string`?r.content:r.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
14
- `);e&&t.push(e);continue}if(r.role===`user`){n.push({role:`user`,content:Pe(r.content)});continue}if(r.role===`assistant`){typeof r.content==`string`&&r.content.length>0&&n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r.content}]});for(let e of r.toolCalls??[])n.push({type:`function_call`,call_id:e.id,name:e.name,arguments:JSON.stringify(e.args)});continue}if(r.role===`tool`){let{text:e,imageParts:t}=f(r.content),i=t.length>0?`[image content; see next message]`:`[no content]`;n.push({type:`function_call_output`,call_id:r.toolCallId,output:e||i}),t.length>0&&n.push({role:`user`,content:[{type:`input_text`,text:p(r.toolName,t.length)},...t.map(e=>({type:`input_image`,image_url:e.url}))]})}}return{instructions:t.length>0?t.join(`
15
-
16
- `):void 0,input:n}}function Fe(e){return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.inputSchema,strict:!1}))}function W(e,t,n,r){let i=d(r);if(typeof i==`string`){e.push({type:`function_call_output`,call_id:t,output:i});return}let{text:a,imageParts:o}=f(i);e.push({type:`function_call_output`,call_id:t,output:a||`[image content; see next message]`}),o.length>0&&e.push({role:`user`,content:[{type:`input_text`,text:p(n,o.length)},...o.map(e=>({type:`input_image`,image_url:e.url}))]})}function G(e,t){let n={model:e.config.model,input:e.input,store:!1,include:[`reasoning.encrypted_content`],reasoning:{effort:e.config.reasoningEffort??`low`},stream:t};return e.instructions&&(n.instructions=e.instructions),e.tools&&e.tools.length>0&&(n.tools=Fe(e.tools)),e.config.maxTokens!==void 0&&(n.max_output_tokens=e.config.maxTokens),n}function K(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.type===`function_call`&&(typeof e.call_id!=`string`||typeof e.name!=`string`||t.push({call_id:e.call_id,name:e.name,arguments:typeof e.arguments==`string`?e.arguments:`{}`}))}return t}function Ie(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(e.type!==`message`||e.role!==`assistant`)continue;let r=e.content;if(Array.isArray(r))for(let e of r){if(!e||typeof e!=`object`)continue;let n=e;n.type===`output_text`&&typeof n.text==`string`&&t.push(n.text)}}return t.join(``)}function q(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}}async function*J(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!0)),signal:e.signal});if(!t.ok||!t.body)throw Error(await H(t));let n=new Map,r=0,i=[];for await(let a of g(t.body,e.signal)){if(!a.data||a.data===`[DONE]`)continue;let e;try{e=JSON.parse(a.data)}catch{continue}let t=typeof e.type==`string`?e.type:a.event;if(t===`response.output_text.delta`){let t=e.delta;typeof t==`string`&&t.length>0&&(yield{type:`text-delta`,delta:t});continue}if(t===`response.output_item.added`){let t=e.item;if(t?.type===`function_call`){let e=typeof t.call_id==`string`?t.call_id:`call_${r}`,i=typeof t.name==`string`?t.name:``,a=r++;n.set(e,{index:a,name:i,argsJson:``,started:!0}),yield{type:`tool-call-start`,index:a,toolCallId:e,toolName:i}}continue}if(t===`response.function_call_arguments.delta`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.delta==`string`?e.delta:``,i=n.get(t);i&&r.length>0&&(i.argsJson+=r,yield{type:`tool-call-args-delta`,index:i.index,toolCallId:t,toolName:i.name,argsDelta:r});continue}if(t===`response.function_call_arguments.done`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.arguments==`string`?e.arguments:``,i=n.get(t);i&&(r&&(i.argsJson=r),yield{type:`tool-call-ready`,index:i.index,toolCallId:t,toolName:i.name,args:q(i.argsJson||r)});continue}if(t===`response.completed`){let t=e.response;t&&Array.isArray(t.output)&&(i=t.output);let n=y(t?.usage);n&&(yield{type:`usage`,usage:n});continue}if(t===`error`)return yield{type:`error`,message:typeof e.message==`string`?e.message:`OpenAI Responses stream error`},[]}return yield{type:`done`},i}async function Y(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!1)),signal:e.signal});if(!t.ok)throw Error(await H(t));let n=await t.json(),r=n.status;if(r!==`completed`&&r!==void 0)throw Error(`OpenAI response ended with status ${String(r)}`);let i=Array.isArray(n.output)?n.output:[],a=K(i);return{text:typeof n.output_text==`string`?n.output_text:Ie(i),output:i,toolCalls:a.map(e=>({id:e.call_id,name:e.name,args:q(e.arguments)}))}}var Le=class{constructor(e){this.config=e}managesToolLoop=!0;stream(e){return this.streamSingleTurn(e)}async complete(e){let{instructions:t,input:n}=U(e.messages),r=await Y({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});return{text:r.text,toolCalls:r.toolCalls}}async*streamToolLoop(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10;for(let n=0;n<i;n++){if(e.signal?.aborted)return;let n=J({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal}),i=[];for(;;){let e=await n.next();if(e.done){i=e.value??[];break}if(yield e.value,e.value.type===`error`)return}r.push(...i);let a=K(i);if(a.length===0)return;for(let t of a){if(e.signal?.aborted)return;let n={};try{n=JSON.parse(t.arguments)}catch{n={}}let i,a=!1;try{i=await e.callTool(t.name,n),a=l(i)}catch(e){a=!0,i={isError:!0,error:e instanceof Error?e.message:String(e)}}W(r,t.call_id,t.name,i),yield{type:`tool-result`,toolCallId:t.call_id,toolName:t.name,result:i,isError:a}}}}async runToolLoopNonStreaming(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10,a=[],o=``;for(let n=0;n<i&&!e.signal?.aborted;n++){let n=await Y({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal});if(r.push(...n.output),n.toolCalls.length===0){o=n.text;break}for(let t of n.toolCalls){let n;try{n=await e.callTool(t.name,t.args),l(n)}catch(e){n={isError:!0,error:e instanceof Error?e.message:String(e)}}a.push({toolName:t.name,args:t.args,result:n}),W(r,t.id,t.name,n)}}return{content:o,toolCalls:a}}async*streamSingleTurn(e){let{instructions:t,input:n}=U(e.messages),r=J({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});for(;;){let e=await r.next();if(e.done||(yield e.value,e.value.type===`error`))return}}};function X(e){return e.provider===`openai`?new Le(e):new Re(e)}var Re=class{constructor(e){this.config=e}stream(e){return je({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal})}async complete(e){let t=await Me({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal});return{text:t.text,toolCalls:t.toolCalls}}};async function*ze(e){if(e.driver.managesToolLoop&&e.driver.streamToolLoop){yield*e.driver.streamToolLoop(e);return}let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages];for(let e=0;e<a;e++){if(i?.aborted)return;let e=[],a=``;try{for await(let r of t.stream({messages:o,tools:n,signal:i}))r.type===`text-delta`?a+=r.delta:r.type===`tool-call-ready`&&e.push({id:r.toolCallId,name:r.toolName,args:r.args}),yield r}catch(e){if(e instanceof M)throw e;yield{type:`error`,message:e instanceof Error?e.message:String(e)};return}if(e.length===0)return;o.push({role:`assistant`,content:a,toolCalls:e});for(let t of e){if(i?.aborted)return;let e,n=!1;try{e=await r(t.name,t.args),n=l(e)}catch(t){n=!0,e={isError:!0,error:t instanceof Error?t.message:String(t)}}o.push({role:`tool`,content:d(e),toolCallId:t.id,toolName:t.name,toolResult:e,toolIsError:n}),yield{type:`tool-result`,toolCallId:t.id,toolName:t.name,result:e,isError:n}}}}async function Be(e){if(e.driver.managesToolLoop&&e.driver.runToolLoopNonStreaming)return e.driver.runToolLoopNonStreaming(e);let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages],s=[],c=``;for(let e=0;e<a&&!i?.aborted;e++){let{text:e,toolCalls:a}=await t.complete({messages:o,tools:n,signal:i});if(a.length===0){c=e;break}o.push({role:`assistant`,content:e,toolCalls:a});for(let e of a){let t,n=!1;try{t=await r(e.name,e.args),n=l(t)}catch(e){n=!0,t={isError:!0,error:e instanceof Error?e.message:String(e)}}s.push({toolName:e.name,args:e.args,result:t}),o.push({role:`tool`,content:d(t),toolCallId:e.id,toolName:e.name,toolResult:t,toolIsError:n})}}return{content:c,toolCalls:s}}async function*Z(e,t){yield*ze({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})}async function*Ve(e,t){let n=``,r=null;for await(let i of Z(e,t))if(i.type===`text-delta`)n+=i.delta;else if(i.type===`tool-call-ready`)r={action:{tool:i.toolName,toolInput:i.args,log:`Calling tool ${i.toolName}`},observation:``},yield r;else if(i.type===`tool-result`&&r){let e=typeof i.result==`string`?i.result:JSON.stringify(i.result??``);yield{action:r.action,observation:e},r=null}else if(i.type===`error`)throw Error(i.message);return n}async function He(e,t){return(await Be({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})).content}var Ue={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GOOGLE_API_KEY`,`GOOGLE_GENERATIVE_AI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],ollama:[],"openai-compatible":[`OPENAI_API_KEY`]};function We(e,t){if(t?.apiKey)return t.apiKey;let r=Ue[e]??[];if(typeof process<`u`)for(let t of r){let r={}[t];if(r)return n.debug(`Using API key from ${t} for ${e}`),r}if(e===`ollama`)return``;let i=r.length>0?r.join(` or `):`apiKey in llmConfig`;throw Error(`API key not found for provider '${e}'. Set ${i}.`)}function Q(e,t){let n=e.split(`/`);if(n.length<2)throw Error(`Invalid LLM string '${e}'. Expected 'provider/model'.`);let r=n[0].toLowerCase(),i=n.slice(1).join(`/`),a=[`openai`,`anthropic`,`google`,`openrouter`,`ollama`,`openai-compatible`];if(!a.includes(r))throw Error(`Unsupported provider '${r}'. Supported: ${a.join(`, `)}`);return{provider:r,model:i,apiKey:We(r,t),temperature:t?.temperature,maxTokens:t?.maxTokens,baseUrl:t?.baseUrl,extraHeaders:t?.extraHeaders,credentials:t?.credentials}}function Ge(e,t,n){return{provider:e,model:t,apiKey:We(e,n),temperature:n?.temperature,maxTokens:n?.maxTokens,baseUrl:n?.baseUrl,extraHeaders:n?.extraHeaders,credentials:n?.credentials}}var Ke=`2.0.0-beta.3`;function qe(){return Ke}function $(e,t,n,r,i,a){return typeof e==`object`&&e?{prompt:e.prompt,maxSteps:e.maxSteps,manageConnector:e.manageConnector,messages:e.messages,schema:e.schema,signal:e.signal}:{prompt:e,maxSteps:t,manageConnector:n,schema:i,signal:a}}var Je=`/api/v1/chats`,Ye=`/api/v1/chats/{chat_id}/execute`;function Xe(e,t,n,r,i){if(typeof e==`object`&&e){let t=e;return{query:t.prompt??``,maxSteps:t.maxSteps,manageConnector:t.manageConnector,externalHistory:t.externalHistory,outputSchema:t.schema}}return{query:e,maxSteps:t,manageConnector:n,externalHistory:r,outputSchema:i}}var Ze=class{agentId;apiKey;baseUrl;chatId=null;constructor(e){this.agentId=e.agentId,this.baseUrl=e.baseUrl??`https://cloud.manufact.com`;let t=e.apiKey??(typeof process<`u`&&{}.MCP_USE_API_KEY);if(!t)throw Error(`API key is required for remote execution. Please provide it as a parameter or set the MCP_USE_API_KEY environment variable. You can get an API key from https://cloud.manufact.com`);this.apiKey=t}pydanticToJsonSchema(e){return t(e)}parseStructuredResponse(e,t){let r;if(typeof e==`object`&&e)if(`result`in e){let t=e.result;r=typeof t==`object`&&t&&`result`in t?t.result:t}else r=e;else if(typeof e==`string`)try{r=JSON.parse(e)}catch{r={content:e}}else r=e;try{return t.parse(r)}catch(e){n.warn(`Failed to parse structured output: ${e}`);let i=t._def?.shape();if(i&&`content`in i)return t.parse({content:String(r)});throw e}}async createChatSession(){let e={title:`Remote Agent Session - ${this.agentId}`,agent_id:this.agentId,type:`agent_execution`},t={"Content-Type":`application/json`,"x-api-key":this.apiKey},r=`${this.baseUrl}${Je}`;n.debug(`\u{1F4DD} Creating chat session for agent ${this.agentId}`);try{let i=await fetch(r,{method:`POST`,headers:t,body:JSON.stringify(e)});if(!i.ok){let e=await i.text(),t=i.status;throw Error(t===404?`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`:`Failed to create chat session: ${t} - ${e}`)}let a=(await i.json()).id;return n.debug(`\u2705 Chat session created: ${a}`),a}catch(e){throw e instanceof Error?TypeError(`Failed to create chat session: ${e.message}`):Error(`Failed to create chat session: ${String(e)}`)}}async run(e,t,r,i,a){let{query:o,maxSteps:s,externalHistory:c,outputSchema:l}=Xe(e,t,r,i,a);c!==void 0&&n.warn(`External history is not yet supported for remote execution`);try{n.debug(`\u{1F310} Executing query on remote agent ${this.agentId}`),this.chatId===null&&(this.chatId=await this.createChatSession());let e=this.chatId,t={query:o,max_steps:s??10};l&&(t.output_schema=this.pydanticToJsonSchema(l),n.debug(`🔧 Using structured output with schema`));let r={"Content-Type":`application/json`,"x-api-key":this.apiKey},i=`${this.baseUrl}${Ye.replace(`{chat_id}`,e)}`;n.debug(`\u{1F680} Executing agent in chat ${e}`);let a=await fetch(i,{method:`POST`,headers:r,body:JSON.stringify(t),signal:AbortSignal.timeout(3e5)});if(!a.ok){let e=await a.text(),t=a.status;throw t===401?(n.error(`\u274C Authentication failed: ${e}`),Error(`Authentication failed: Invalid or missing API key. Please check your API key and ensure the MCP_USE_API_KEY environment variable is set correctly.`)):t===403?(n.error(`\u274C Access forbidden: ${e}`),Error(`Access denied: You don't have permission to execute agent '${this.agentId}'. Check if the agent exists and you have the necessary permissions.`)):t===404?(n.error(`\u274C Agent not found: ${e}`),Error(`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`)):t===422?(n.error(`\u274C Validation error: ${e}`),Error(`Request validation failed: ${e}. Please check your query parameters and output schema format.`)):t===500?(n.error(`\u274C Server error: ${e}`),Error(`Internal server error occurred during agent execution. Please try again later or contact support if the issue persists.`)):(n.error(`\u274C Remote execution failed with status ${t}: ${e}`),Error(`Remote agent execution failed: ${t} - ${e}`))}let c=await a.json();if(n.debug(`\u{1F527} Response: ${JSON.stringify(c)}`),n.debug(`✅ Remote execution completed successfully`),typeof c==`object`&&c){if(c.status===`error`||c.error!==null){let e=c.error??String(c);throw n.error(`\u274C Remote agent execution failed: ${e}`),Error(`Remote agent execution failed: ${e}`)}if(String(c).includes(`failed to initialize`))throw n.error(`\u274C Agent initialization failed: ${c}`),Error(`Agent initialization failed on remote server. This usually indicates:
17
- \u2022 Invalid agent configuration (LLM model, system prompt)
18
- \u2022 Missing or invalid MCP server configurations
19
- \u2022 Network connectivity issues with MCP servers
20
- \u2022 Missing environment variables or credentials
21
- Raw error: ${c}`)}return l?this.parseStructuredResponse(c,l):typeof c==`object`&&c&&`result`in c?c.result:typeof c==`string`?c:String(c)}catch(e){throw e instanceof Error?e.name===`AbortError`?(n.error(`\u274C Remote execution timed out: ${e}`),Error(`Remote agent execution timed out. The server may be overloaded or the query is taking too long to process. Try again or use a simpler query.`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${e.message}`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${String(e)}`))}}async*stream(e,t,n,r,i){return await this.run(e,t,n,r,i)}async close(){n.debug(`🔌 Remote agent client closed`)}},Qe=class{static getPackageVersion(){return qe()}driver;client;connectors=[];clientOwnedByAgent=!1;nativeAdapter;providerTools=[];callTool;maxSteps;autoInitialize;systemPrompt;disallowedTools;exposeResourcesAsTools;exposePromptsAsTools;initialized=!1;isRemote=!1;remoteAgent=null;isSimplifiedMode=!1;llmString;llmConfig;mcpServersConfig;explicitProviderConfig;conversationMessages=[];memoryEnabled;boundConnections;constructor(e){if(e.agentId){this.isRemote=!0,this.remoteAgent=new Ze({agentId:e.agentId,apiKey:e.apiKey,baseUrl:e.baseUrl}),this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.nativeAdapter=new a,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=[],this.exposeResourcesAsTools=!0,this.exposePromptsAsTools=!0,this.memoryEnabled=e.memoryEnabled??!0;return}if(this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=e.disallowedTools??[],this.exposeResourcesAsTools=e.exposeResourcesAsTools??!0,this.exposePromptsAsTools=e.exposePromptsAsTools??!0,this.memoryEnabled=e.memoryEnabled??!0,this.nativeAdapter=new a(this.disallowedTools),this.llmConfig=e.llmConfig,this.resolveMcpServers(e.mcpServers),typeof e.llm==`string`){if(this.isSimplifiedMode=!0,this.llmString=e.llm,!this.hasLiveConnections()&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0)&&!e.client&&!e.connectors?.length)throw Error(`Simplified mode requires mcpServers, or an existing client/connectors.`)}else if(this.explicitProviderConfig=e.llm,this.client=e.client,this.connectors=e.connectors??[],!this.hasLiveConnections()&&!this.client&&this.connectors.length===0&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0))throw Error(`Explicit mode requires mcpServers, client, or connectors.`);e.client&&(this.client=e.client),e.connectors?.length&&(this.connectors=e.connectors),this.hasLiveConnections()&&this.explicitProviderConfig?this.bindConnections(this.boundConnections,this.explicitProviderConfig):this.hasLiveConnections()&&this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)),this.bindConnections(this.boundConnections,Q(this.llmString,this.llmConfig)))}resolveMcpServers(e){if(e){if(Array.isArray(e)){this.boundConnections=e;return}this.mcpServersConfig=e}}hasLiveConnections(){return(this.boundConnections?.length??0)>0}async initialize(){if(this.isRemote){this.initialized=!0;return}if(!this.initialized){if(this.isSimplifiedMode){if(!this.client&&this.mcpServersConfig){let{MCPClient:t}=await e(async()=>{let{MCPClient:e}=await import(`./index-TQ5V7cM9.js`).then(e=>e.Ot);return{MCPClient:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));this.client=new t({mcpServers:this.mcpServersConfig}),this.clientOwnedByAgent=!0}this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)))}else this.explicitProviderConfig&&(this.driver=X(this.explicitProviderConfig));if(!this.driver)throw Error(`LLM driver not configured.`);this.hasLiveConnections()||await this.loadTools(),this.initialized=!0,n.debug(`MCPAgent initialized`)}}async loadTools(){let e=[];if(this.client){(!this.client.activeSessions||Object.keys(this.client.activeSessions).length===0)&&await this.client.createAllSessions();let t=this.client.getAllActiveSessions(),n=Object.values(t).map(e=>e.connector);e.push(...await this.nativeAdapter.createToolsFromConnectors(n)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(n)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(n))}else{for(let e of this.connectors)e.isClientConnected||await e.connect();e.push(...await this.nativeAdapter.createToolsFromConnectors(this.connectors)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(this.connectors)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(this.connectors))}this.providerTools=this.nativeAdapter.toProviderTools(e),this.callTool=this.nativeAdapter.createCallTool()}bindConnections(e,t){let n=new Set(this.disallowedTools),r=new Set,i=new Map,a=e=>{if(!r.has(e))return r.add(e),e;let t=2;for(;r.has(`${e}_${t}`);)t++;let n=`${e}_${t}`;return r.add(n),n},o=[];for(let t of e)for(let e of t.tools??[]){if(n.has(e.name))continue;let r=a(e.name);i.set(r,{connection:t,mcpName:e.name}),o.push({name:r,description:e.description,inputSchema:e.inputSchema??{type:`object`,properties:{}}})}this.providerTools=o,this.callTool=async(e,t)=>{let n=i.get(e);if(!n)throw Error(`Unknown tool: ${e}`);return n.connection.callTool(n.mcpName,t)},this.driver=X(t),this.initialized=!0}buildMessages(e){let t=[{role:`system`,content:this.systemPrompt}];return this.memoryEnabled&&this.conversationMessages.length>0&&t.push(...this.conversationMessages),e.messages?.length&&t.push(...e.messages),e.prompt&&t.push({role:`user`,content:e.prompt}),t}getConversationHistory(){return[...this.conversationMessages]}clearConversationHistory(){this.conversationMessages=[]}setSystemMessage(e){this.systemPrompt=e}async ensureReady(e=!0){if(e&&!this.initialized)if(this.autoInitialize)await this.initialize();else throw Error(`MCPAgent not initialized. Call initialize() first.`);if(!this.driver||!this.callTool)throw Error(`MCPAgent driver or tools not ready.`)}nativeRunParams(e){return{messages:this.buildMessages(e),tools:this.providerTools,callTool:this.callTool,maxSteps:e.maxSteps??this.maxSteps,signal:e.signal}}async run(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(o.schema)throw Error(`Structured output requires @mcp-use/agent/langchain or pass a JSON schema via prompt.`);if(this.isRemote&&this.remoteAgent)return this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=await He(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*stream(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)return await this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=yield*Ve(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*streamEvents(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)throw Error(`streamEvents is not supported for remote agents.`);await this.ensureReady(o.manageConnector??!0),yield*Z(this.driver,this.nativeRunParams(o))}async chat(e){return await this.ensureReady(),(await this.driver.complete({messages:e.messages,tools:[],signal:e.signal})).text}async close(){this.clientOwnedByAgent&&this.client&&await this.client.closeAllSessions?.(),this.initialized=!1}};async function $e(e){return(await X(e.config).complete({messages:e.messages,tools:[],signal:e.signal})).text}export{$e as a,Ge as c,D as i,Qe as n,re as o,we as r,E as s,Ce as t};