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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/cdn/{AnimatePresence-Dcw-FOy8.js → AnimatePresence-D1bZ5_-l.js} +79 -78
  2. package/dist/cdn/{ChatTab-B255lH5i.js → ChatTab-DtUGK07C.js} +1628 -1561
  3. package/dist/cdn/CheckboxIndicator-BjF73mGX.js +252 -0
  4. package/dist/cdn/{ConnectionSettingsForm-DF-NS58d.js → ConnectionSettingsForm-CNuMa6jp.js} +202 -202
  5. package/dist/cdn/{ConnectionSettingsTab-dI-Cqe79.js → ConnectionSettingsTab-qSVQ1aIF.js} +36 -35
  6. package/dist/cdn/{ElicitationTab-CL1KJ0bz.js → ElicitationTab-PEmEDvC5.js} +47 -46
  7. package/dist/cdn/{FormContext-tmgN_Vdr.js → FormContext-NtUiZclE.js} +26 -26
  8. package/dist/cdn/{InspectorContext-UjtEbNod.js → InspectorContext-BBKCdfmK.js} +1 -1
  9. package/dist/cdn/{JSONDisplay-BFxf5oEu.js → JSONDisplay-BJqMz7Ny.js} +22 -22
  10. package/dist/cdn/{ListTabHeader-Cv-GmtGF.js → ListTabHeader-DzmTtN1e.js} +20 -19
  11. package/dist/cdn/{WidgetWrapper-B4H3Fek7.js → MCPAppsDebugControls-BpP-Ifap.js} +514 -550
  12. package/dist/cdn/{ManufactOAuthCallback-B98kSYCj.js → ManufactOAuthCallback-ChbbjFIT.js} +2 -2
  13. package/dist/cdn/{MarkdownRenderer-Ba7nA4Ie.js → MarkdownRenderer-bX1BrKgI.js} +23 -23
  14. package/dist/cdn/McpAppsViewPanel-jlsYQ7uS.js +56 -0
  15. package/dist/cdn/{NotificationsTab-CeImSrhx.js → NotificationsTab-B7uebqMV.js} +21 -21
  16. package/dist/cdn/{OAuthCallback-Blc2Asxc.js → OAuthCallback--NZdLoWx.js} +3 -3
  17. package/dist/cdn/PromptsTab-BlXDcau3.js +902 -0
  18. package/dist/cdn/{ResourcesTab-BGualKW-.js → ResourcesTab-D45_JojP.js} +116 -114
  19. package/dist/cdn/{SamplingTab-BeZBUeni.js → SamplingTab-r7tImM6L.js} +34 -33
  20. package/dist/cdn/{ServerMetadataTab-CvrKX8fz.js → ServerMetadataTab-BM3VhSLf.js} +9 -9
  21. package/dist/cdn/{StatusIcon-D0-ARyOh.js → StatusIcon-Q3n3YRtE.js} +10 -11
  22. package/dist/cdn/{ToolsTab-j6n4O_3s.js → ToolsTab-DOAO8HnS.js} +664 -652
  23. package/dist/cdn/{ViewPreview-DihyG6Qd.js → ViewPreview-CBhrVdwx.js} +3 -3
  24. package/dist/cdn/{WidgetDebugContext-D4usL_MA.js → WidgetDebugContext-B6yoOVVV.js} +1 -11
  25. package/dist/cdn/WidgetWrapper-BlbQAh_X.js +12 -0
  26. package/dist/cdn/{bell-CGjAO_0s.js → bell-GrTZcnD2.js} +1 -1
  27. package/dist/cdn/{browser-CbQIH4w2.js → browser-DG2Z8392.js} +1 -1
  28. package/dist/cdn/{brush-B_mKhyxG.js → brush-CelVvMGp.js} +1 -1
  29. package/dist/cdn/button-CB4uOoUV.js +2509 -0
  30. package/dist/cdn/card-BA-DQk-G.js +41 -0
  31. package/dist/cdn/{checkbox-By0FklhG.js → checkbox-kwVa4gRX.js} +7 -7
  32. package/dist/cdn/{clock-CmUbSx_B.js → clock-YMF8Gtw5.js} +1 -1
  33. package/dist/cdn/{code-V_0nf5rg.js → code-C8sN2OGR.js} +1 -1
  34. package/dist/cdn/{jsx-runtime-CIxvMpEo.js → createLucideIcon-BONxC1L5.js} +57 -24
  35. package/dist/cdn/{dialog-BsDpuJd3.js → dialog-CJGnC5Ag.js} +171 -171
  36. package/dist/cdn/{dist-DaMB0Su9.js → dist-CTJnCYmk.js} +1 -1
  37. package/dist/cdn/{dist-DbX5yidW.js → dist-SxRsB1iS.js} +5 -4
  38. package/dist/cdn/{external-link-CjmfT6rW.js → external-link-Bo4lQxr1.js} +1 -1
  39. package/dist/cdn/{eye-B7H96av8.js → eye-pSGG7nvf.js} +1 -1
  40. package/dist/cdn/{folder-open-B3lu2rG_.js → folder-open-aM8CPtBO.js} +1 -1
  41. package/dist/cdn/{hash-BVQnWi7q.js → hash-DDs2vE1k.js} +1 -1
  42. package/dist/cdn/{history-Csw4rb44.js → history-BfUFpL1d.js} +1 -1
  43. package/dist/cdn/{index-browser-DkQOzkvX.js → index-browser-Dm3R1Mfe.js} +1 -1
  44. package/dist/cdn/{info-CNiOwqkf.js → info-BMkB68mB.js} +1 -1
  45. package/dist/cdn/{input-C2OBd4PJ.js → input-BCpgLXU1.js} +2993 -5499
  46. package/dist/cdn/inspector.css +1 -1
  47. package/dist/cdn/inspector.js +7106 -7140
  48. package/dist/cdn/{label-B9Jmm9be.js → label-A0UGV8FE.js} +9 -9
  49. package/dist/cdn/{loader-circle-BLy9A_pp.js → loader-circle-BKRHJEB7.js} +1 -1
  50. package/dist/cdn/{maximize-2-CH5Lq90B.js → maximize-2-DdrB_spi.js} +1 -1
  51. package/dist/cdn/{maximize-BALCV_ep.js → maximize-hSOCz133.js} +1 -1
  52. package/dist/cdn/{message-square-BnxdpJxZ.js → message-square-D3tKB3uJ.js} +1 -1
  53. package/dist/cdn/{not-found-DEtSM_Wd.js → not-found-BajFyZpp.js} +9 -11
  54. package/dist/cdn/{play-vuZ5PLnI.js → play-B1leulYf.js} +1 -1
  55. package/dist/cdn/providerMeta-CjGU4rID.js +436 -0
  56. package/dist/cdn/{react-BajV-X4P.js → react-Bl-hSkvn.js} +628 -571
  57. package/dist/cdn/{refresh-cw-BXY-Pa0U.js → refresh-cw-CyvXrS91.js} +1 -1
  58. package/dist/cdn/{save-Tgil_AJZ.js → save-CmdEPUAm.js} +1 -1
  59. package/dist/cdn/{select-DDdiIPR2.js → select-CCFHjOGk.js} +808 -807
  60. package/dist/cdn/{servers-Dm72iTpY.js → servers-Dd0Vcp81.js} +5 -1
  61. package/dist/cdn/{shared-DaILIQPP.js → shared-CJVHJhag.js} +36 -36
  62. package/dist/cdn/{sheet-Br_l2kry.js → sheet-oyq1mIyg.js} +620 -619
  63. package/dist/cdn/{sparkles-BntO2rDR.js → sparkles-CxeZpVtX.js} +1 -1
  64. package/dist/cdn/spinner-Be1GlSGX.js +15 -0
  65. package/dist/cdn/{square-check-big-BvwQ17Bl.js → square-check-big-C_4wbfwF.js} +1 -1
  66. package/dist/cdn/{switch-C3IyQuid.js → switch-DHXEA_N5.js} +190 -189
  67. package/dist/cdn/{tabs-subtle-CkdI6Mac.js → tabs-subtle-Dubd6Kj8.js} +269 -268
  68. package/dist/cdn/{telemetry-DabTAQ8x.js → telemetry-TwPKZlFf.js} +2 -2
  69. package/dist/cdn/{textarea-DSbwcFVt.js → textarea-CwmI8_uI.js} +6 -6
  70. package/dist/cdn/{trash-2-RwpJY5SL.js → trash-2-BhumJAFE.js} +1 -1
  71. package/dist/cdn/{useAriaLabelledBy-DqAdnppm.js → useAriaLabelledBy-Cra6w3YY.js} +2 -1
  72. package/dist/cdn/{useCompositeItem-BRqEzYh-.js → useCompositeItem-Dhnm-7el.js} +3 -3
  73. package/dist/cdn/{useConfig-Btmh8wjJ.js → useConfig-leHVjdjl.js} +2 -2
  74. package/dist/cdn/{useSavedRequests-Ci2I919u.js → useSavedRequests-mSIsDd4c.js} +1 -1
  75. package/dist/cdn/{useViewHostProps-B6SKeeH9.js → useViewHostProps-CDOm2w6u.js} +124 -109
  76. package/dist/cdn/{wrench-DzGmCfnb.js → wrench-DvK20LUT.js} +1 -1
  77. package/dist/cdn/{x-C3vRQIYu.js → x-EilKPiCX.js} +1 -1
  78. package/dist/cdn/{zap-Mb-pbw2X.js → zap-0Wr9QO7N.js} +1 -1
  79. package/dist/cli.js +1 -1
  80. package/dist/client/components/ChatTab.d.ts.map +1 -1
  81. package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
  82. package/dist/client/components/ToolsTab.d.ts.map +1 -1
  83. package/dist/client/components/chat/ConfigurationDialog.d.ts.map +1 -1
  84. package/dist/client/components/chat/MessageList.d.ts +1 -0
  85. package/dist/client/components/chat/MessageList.d.ts.map +1 -1
  86. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
  87. package/dist/client/components/chat/partialToolArgs.d.ts +10 -0
  88. package/dist/client/components/chat/partialToolArgs.d.ts.map +1 -0
  89. package/dist/client/components/chat/types.d.ts +1 -0
  90. package/dist/client/components/chat/types.d.ts.map +1 -1
  91. package/dist/client/components/chat/useChatMessages.d.ts.map +1 -1
  92. package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +1 -1
  93. package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts +29 -0
  94. package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts.map +1 -0
  95. package/dist/client/components/tools/ToolExecutionPanel.d.ts.map +1 -1
  96. package/dist/client/components/tools/ToolResultDisplay.d.ts +2 -1
  97. package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
  98. package/dist/client/components/tools/useToolsTabNavigation.d.ts.map +1 -1
  99. package/dist/client/components/ui/MeshGradientCanvas.d.ts.map +1 -1
  100. package/dist/client/components/ui/mesh-animation-pause.d.ts +14 -0
  101. package/dist/client/components/ui/mesh-animation-pause.d.ts.map +1 -0
  102. package/dist/client/components/ui/mesh-gradient-colors.d.ts +6 -0
  103. package/dist/client/components/ui/mesh-gradient-colors.d.ts.map +1 -0
  104. package/dist/client/components/ui/mesh-tab-background.d.ts +1 -1
  105. package/dist/client/components/ui/mesh-tab-background.d.ts.map +1 -1
  106. package/dist/client/components/ui/not-found.d.ts.map +1 -1
  107. package/dist/client/context/WidgetDebugContext.d.ts +1 -11
  108. package/dist/client/context/WidgetDebugContext.d.ts.map +1 -1
  109. package/dist/client/hooks/useDeviceViewport.d.ts +1 -5
  110. package/dist/client/hooks/useDeviceViewport.d.ts.map +1 -1
  111. package/dist/client/hooks/useViewHostProps.d.ts +1 -1
  112. package/dist/client/hooks/useViewHostProps.d.ts.map +1 -1
  113. package/dist/client/index.js +2238 -1935
  114. package/dist/client/utils/servers.d.ts +5 -0
  115. package/dist/client/utils/servers.d.ts.map +1 -1
  116. package/dist/server/cdn-shell.js +2 -2
  117. package/dist/server/{chunk-ZCGLU5T7.js → chunk-5GVQGIAX.js} +1 -1
  118. package/dist/server/{chunk-DSTNUYWX.js → chunk-UZZDBVKF.js} +1 -1
  119. package/dist/server/{chunk-SQ4XNMLT.js → chunk-VFVFLXKP.js} +1 -1
  120. package/dist/server/cli.js +2 -2
  121. package/dist/server/index.js +3 -3
  122. package/dist/server/middleware.js +3 -3
  123. package/dist/server/version.js +1 -1
  124. package/dist/web/assets/AnimatePresence-FfDQQNFJ.js +9 -0
  125. package/dist/web/assets/ChatTab-B6ubLbeA.js +18 -0
  126. package/dist/web/assets/ConnectionSettingsTab-Cb2eDgEu.js +1 -0
  127. package/dist/web/assets/ElicitationTab-CbnCrmu9.js +1 -0
  128. package/dist/web/assets/FormContext-sV-yByKz.js +1 -0
  129. package/dist/web/assets/ListTabHeader-CrGae306.js +1 -0
  130. package/dist/web/assets/MCPAppsDebugControls-sRglMhat.js +34 -0
  131. package/dist/web/assets/{ManufactOAuthCallback-CS3ydSZg.js → ManufactOAuthCallback-D4uYGigW.js} +1 -1
  132. package/dist/web/assets/{MarkdownRenderer-BeeBfQhv.js → MarkdownRenderer-Cwxp9fLj.js} +2 -2
  133. package/dist/web/assets/McpAppsViewPanel-jQYFoZNX.js +1 -0
  134. package/dist/web/assets/{NotificationsTab-Uj0_DrmK.js → NotificationsTab-DuSm762_.js} +1 -1
  135. package/dist/web/assets/{OAuthCallback-C0ljgCiw.js → OAuthCallback-VLHlUe2c.js} +1 -1
  136. package/dist/web/assets/PromptsTab-DK6XZxR8.js +15 -0
  137. package/dist/web/assets/ResourcesTab-CUE4MAtJ.js +2 -0
  138. package/dist/web/assets/SamplingTab-BYNkVCTu.js +1 -0
  139. package/dist/web/assets/ServerMetadataTab-DWjNFMbq.js +1 -0
  140. package/dist/web/assets/ToolsTab-BisWWY2p.js +8 -0
  141. package/dist/web/assets/{ViewPreview-Ba1Ec5uA.js → ViewPreview-COrmPpRr.js} +1 -1
  142. package/dist/web/assets/WidgetWrapper-cv_BM1bY.js +1 -0
  143. package/dist/web/assets/{brush--0LobUi4.js → brush-DX0UZ_pI.js} +1 -1
  144. package/dist/web/assets/button-C8Xa2k4x.js +1 -0
  145. package/dist/web/assets/checkbox-B6dtF73d.js +1 -0
  146. package/dist/web/assets/code-B14rVdNt.js +1 -0
  147. package/dist/web/assets/createLucideIcon-BEHeJH0M.js +1 -0
  148. package/dist/web/assets/{dist-C5JjLJN9.js → dist-9Oy7e0v8.js} +5 -5
  149. package/dist/web/assets/index-BMaSsizY.js +499 -0
  150. package/dist/web/assets/index-D7TVTIt9.css +1 -0
  151. package/dist/web/assets/input-C0OQCUZy.js +1 -0
  152. package/dist/web/assets/{label-Cdim77Jw.js → label-CI7JWQOo.js} +1 -1
  153. package/dist/web/assets/{maximize-2-BTT9QQU9.js → maximize-2-Br1WQzT2.js} +1 -1
  154. package/dist/web/assets/{maximize-_O55kFcr.js → maximize-CJNgRe6S.js} +1 -1
  155. package/dist/web/assets/{refresh-cw-C9wQl8_d.js → refresh-cw-B5iaAZKn.js} +1 -1
  156. package/dist/web/assets/{save-B-MsgxX9.js → save-TM6fvNrt.js} +1 -1
  157. package/dist/web/assets/select-D6jzbLJn.js +1 -0
  158. package/dist/web/assets/shared-CFs9CZfB.js +1 -0
  159. package/dist/web/assets/{sparkles-2OAsc1aP.js → sparkles-BGYTDThM.js} +1 -1
  160. package/dist/web/assets/tabs-subtle-D2XkWhLL.js +1 -0
  161. package/dist/web/assets/textarea-CRTXuRmE.js +1 -0
  162. package/dist/web/assets/{useConfig-BAgALiZg.js → useConfig-B6tXvJOb.js} +1 -1
  163. package/dist/web/assets/useViewHostProps-DZqOwiAm.js +1 -0
  164. package/dist/web/assets/{zap-Du2Uc5pa.js → zap-BDWHCVHU.js} +1 -1
  165. package/dist/web/index.html +10 -10
  166. package/package.json +4 -4
  167. package/dist/cdn/CheckboxIndicator-Bt4IICtv.js +0 -251
  168. package/dist/cdn/PromptsTab-BYKnY7Rp.js +0 -901
  169. package/dist/cdn/card-DgiYnSg-.js +0 -41
  170. package/dist/cdn/createLucideIcon-C5fZZ6oB.js +0 -38
  171. package/dist/cdn/providerMeta-BQIfHuNL.js +0 -379
  172. package/dist/cdn/spinner-jQtC7EBj.js +0 -15
  173. package/dist/web/assets/AnimatePresence-C5p0yiY1.js +0 -9
  174. package/dist/web/assets/ChatTab-BCobuZDc.js +0 -18
  175. package/dist/web/assets/ConnectionSettingsTab-BjGkLwVu.js +0 -1
  176. package/dist/web/assets/ElicitationTab-D3ZUKHND.js +0 -1
  177. package/dist/web/assets/FormContext-DH2caWKO.js +0 -1
  178. package/dist/web/assets/ListTabHeader-R17w_JsB.js +0 -1
  179. package/dist/web/assets/PromptsTab-Bns2u0G-.js +0 -15
  180. package/dist/web/assets/ResourcesTab-CO24312V.js +0 -2
  181. package/dist/web/assets/SamplingTab-7gtN7FwU.js +0 -1
  182. package/dist/web/assets/ServerMetadataTab-CQwqYSjL.js +0 -1
  183. package/dist/web/assets/ToolsTab-bDdRxI1b.js +0 -8
  184. package/dist/web/assets/WidgetWrapper-CYHfzrtb.js +0 -34
  185. package/dist/web/assets/checkbox-CzBkaNKa.js +0 -1
  186. package/dist/web/assets/code-tME-5H6D.js +0 -1
  187. package/dist/web/assets/createLucideIcon-B3b8EU0b.js +0 -1
  188. package/dist/web/assets/index-TQ5V7cM9.js +0 -492
  189. package/dist/web/assets/index-fBX3akc8.css +0 -1
  190. package/dist/web/assets/input-CLYhA7PK.js +0 -1
  191. package/dist/web/assets/jsx-runtime-Cjj9sGSy.js +0 -1
  192. package/dist/web/assets/select-CJ57-Bor.js +0 -1
  193. package/dist/web/assets/shared-BF0rJNdE.js +0 -1
  194. package/dist/web/assets/tabs-subtle-6D79T1xd.js +0 -1
  195. package/dist/web/assets/textarea-DLAmNVf_.js +0 -1
  196. package/dist/web/assets/useViewHostProps-BYitt_6K.js +0 -1
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{a as n,n as r,r as i,sr as a,t as o}from"./input-C0OQCUZy.js";import{n as s}from"./createLucideIcon-BEHeJH0M.js";import{t as c}from"./button-C8Xa2k4x.js";import{t as l}from"./label-CI7JWQOo.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./shared-CFs9CZfB.js";import{t as g}from"./maximize-2-Br1WQzT2.js";import{P as _,Sn as v,Wt as y,Xt as b,_n as x,b as S,bt as C,en as w,jt as T,ot as E,vn as D,xt as O,yn as k}from"./index-BMaSsizY.js";import{t as A}from"./textarea-CRTXuRmE.js";import{t as j}from"./checkbox-B6dtF73d.js";import{n as M,t as N}from"./schemaHelpers-DLNTQr_6.js";var P=e(t(),1),F=s();function I({requests:e,selectedRequest:t,onRequestSelect:n,focusedIndex:r,formatRelativeTime:i}){return e.length===0?(0,F.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:(0,F.jsx)(y,{vertical:!0,noBorder:!0,message:`No elicitation requests`})}):(0,F.jsx)(`div`,{children:e.map((e,o)=>{let s=e.request.mode||`form`,c=s===`form`&&`requestedSchema`in e.request&&e.request.requestedSchema;return(0,F.jsx)(m,{id:`elicitation-request-${e.id}`,"data-testid":`elicitation-request-item-${o}`,isSelected:t?.id===e.id,isFocused:r===o,title:(0,F.jsxs)(`span`,{className:`flex items-center gap-3`,children:[e.serverName,(0,F.jsx)(a,{variant:`outline`,className:s===`url`?`bg-blue-500/20 text-blue-600 dark:text-blue-400 border-blue-500/50`:`bg-green-500/20 text-green-600 dark:text-green-400 border-green-500/50`,children:s})]}),description:(()=>{let t=i(e.timestamp),n=[];return c&&n.push(`with schema`),s===`url`&&n.push(`external action`),t+(n.length>0?` | ${n.join(`, `)}`:``)})(),onClick:()=>n(e)},e.id)})})}function L({request:e,formData:t,onFieldChange:n,idPrefix:r,testIdPrefix:i,fieldContainerClassName:a=`space-y-2`,textareaRows:s=4,showOuterLabelForBoolean:c=!0,emptyFallback:u}){return(0,F.jsx)(F.Fragment,{children:(0,P.useMemo)(()=>{if(!(`requestedSchema`in e.request))return null;let d=e.request.requestedSchema;if(!d||d.type!==`object`||!d.properties)return u??(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No form schema available`});let f=d.properties,p=d.required||[];return(0,F.jsx)(`div`,{className:`space-y-4`,children:Object.entries(f).map(([e,u])=>{let d=u,f=p.includes(e),m=d.type||`string`,h=d.title||e,g=d.description,_=M(d),v=_.length>0,y=Array.isArray(d.enum),b=m===`array`&&Array.isArray(d.items?.enum),x=N(d),S=m===`array`&&x.length>0,C=Array.isArray(t[e])?t[e]:[],w=`${r}-${e}`,T=`${i}-${e}`;return(0,F.jsxs)(`div`,{className:a,children:[(m!==`boolean`||c)&&(0,F.jsxs)(l,{htmlFor:w,children:[h,f&&(0,F.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),g&&(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:g}),m===`boolean`?(0,F.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,F.jsx)(j,{id:w,"data-testid":T,checked:t[e]||!1,onCheckedChange:t=>n(e,t)}),(0,F.jsxs)(l,{htmlFor:w,className:`text-sm font-normal cursor-pointer`,children:[h,!c&&f&&(0,F.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]})]}):m===`number`||m===`integer`?(0,F.jsx)(o,{id:w,"data-testid":T,type:`number`,value:t[e]??``,onChange:t=>{let r=m===`integer`?parseInt(t.target.value,10):parseFloat(t.target.value);n(e,isNaN(r)?``:r)},placeholder:d.default?.toString()||``}):v?(0,F.jsxs)(`select`,{id:w,"data-testid":T,value:t[e]||``,onChange:t=>n(e,t.target.value),className:`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:[(0,F.jsx)(`option`,{value:``,children:`Select...`}),_.map(e=>(0,F.jsx)(`option`,{value:e.const,children:e.title||e.const},e.const))]}):y?(0,F.jsxs)(`select`,{id:w,"data-testid":T,value:t[e]||``,onChange:t=>n(e,t.target.value),className:`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:[(0,F.jsx)(`option`,{value:``,children:`Select...`}),d.enum.map((e,t)=>(0,F.jsx)(`option`,{value:e,children:d.enumNames?.[t]||e},e))]}):b?(0,F.jsx)(`div`,{className:`space-y-2`,"data-testid":T,children:d.items.enum.map(t=>{let r=`${w}-${t}`;return(0,F.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,F.jsx)(j,{id:r,checked:C.includes(t),onCheckedChange:r=>{n(e,r?[...C,t]:C.filter(e=>e!==t))}}),(0,F.jsx)(l,{htmlFor:r,className:`text-sm font-normal cursor-pointer`,children:t})]},t)})}):S?(0,F.jsx)(`div`,{className:`space-y-2`,"data-testid":T,children:x.map(t=>{let r=`${w}-${t.const}`;return(0,F.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,F.jsx)(j,{id:r,checked:C.includes(t.const),onCheckedChange:r=>{n(e,r?[...C,t.const]:C.filter(e=>e!==t.const))}}),(0,F.jsx)(l,{htmlFor:r,className:`text-sm font-normal cursor-pointer`,children:t.title||t.const})]},t.const)})}):m===`string`&&(d.format===`textarea`||d.maxLength>100)?(0,F.jsx)(A,{id:w,"data-testid":T,value:t[e]||``,onChange:t=>n(e,t.target.value),placeholder:d.default||``,rows:s}):(0,F.jsx)(o,{id:w,"data-testid":T,type:`text`,value:t[e]||``,onChange:t=>n(e,t.target.value),placeholder:d.default||``})]},e)})})},[e,t,n,r,i,a,s,c,u])})}function R(e){let[t,n]=(0,P.useState)({}),[r,i]=(0,P.useState)(!1),a=e?.request.mode||`form`,o=a===`form`,s=a===`url`;return(0,P.useEffect)(()=>{if(e&&o&&`requestedSchema`in e.request){let t=e.request.requestedSchema,r={};if(t?.type===`object`&&t.properties)for(let[e,n]of Object.entries(t.properties)){let t=n;t.default===void 0?t.type===`array`?r[e]=[]:t.type===`boolean`?r[e]=!1:t.type===`number`||t.type===`integer`?r[e]=0:r[e]=``:r[e]=t.default}n(r)}i(!1)},[e?.id,o]),{formData:t,setFieldValue:(0,P.useCallback)((e,t)=>{n(n=>({...n,[e]:t}))},[]),getMissingRequiredFields:(0,P.useCallback)(()=>!e||!o||!(`requestedSchema`in e.request)?[]:(e.request.requestedSchema?.required??[]).filter(e=>t[e]===void 0||t[e]===``||t[e]===null),[e,t,o]),urlCompleted:r,setUrlCompleted:i,mode:a,isFormMode:o,isUrlMode:s}}function z({request:t,onApprove:o,onReject:s,onClose:u,previewMode:d,onTogglePreview:f,isCopied:p,onCopy:m,onDownload:h,onFullscreen:_}){let{formData:y,setFieldValue:C,getMissingRequiredFields:w,urlCompleted:O,setUrlCompleted:A,mode:M,isFormMode:N,isUrlMode:P}=R(t);return t?(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b dark:border-zinc-700`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h3`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:t.serverName}),(0,F.jsx)(a,{variant:`outline`,className:P?`bg-blue-500/20 text-blue-600 dark:text-blue-400 border-blue-500/50`:`bg-green-500/20 text-green-600 dark:text-green-400 border-green-500/50`,children:M}),(0,F.jsx)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:new Date(t.timestamp).toLocaleString()})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(r,{children:[(0,F.jsx)(n,{render:(0,F.jsx)(c,{variant:`ghost`,size:`sm`,onClick:m,className:`h-8 w-8 p-0`,children:p?(0,F.jsx)(v,{className:`h-4 w-4 text-green-600`}):(0,F.jsx)(k,{className:`h-4 w-4`})}),nativeButton:!0}),(0,F.jsx)(i,{children:`Copy request`})]}),(0,F.jsxs)(r,{children:[(0,F.jsx)(n,{render:(0,F.jsx)(c,{variant:`ghost`,size:`sm`,onClick:h,className:`h-8 w-8 p-0`,children:(0,F.jsx)(D,{className:`h-4 w-4`})}),nativeButton:!0}),(0,F.jsx)(i,{children:`Download request`})]}),(0,F.jsxs)(r,{children:[(0,F.jsx)(n,{render:(0,F.jsx)(c,{variant:`ghost`,size:`sm`,onClick:_,className:`h-8 w-8 p-0`,children:(0,F.jsx)(g,{className:`h-4 w-4`})}),nativeButton:!0}),(0,F.jsx)(i,{children:`Fullscreen`})]}),(0,F.jsx)(c,{variant:`ghost`,size:`sm`,onClick:u,className:`h-8 w-8 p-0`,children:(0,F.jsx)(b,{className:`h-4 w-4`})})]})]}),(0,F.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-6`,children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(`h4`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100`,children:`Message`}),(0,F.jsx)(`p`,{className:`text-sm text-gray-700 dark:text-gray-300`,children:t.request.message})]}),P&&`url`in t.request&&(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(`h4`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100`,children:`External Action Required`}),(0,F.jsxs)(`div`,{className:`bg-muted rounded-lg p-4 space-y-3`,children:[(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This request requires you to complete an action at an external URL:`}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-background rounded border`,children:[(0,F.jsx)(`code`,{className:`flex-1 text-xs font-mono break-all`,children:t.request.url}),(0,F.jsxs)(c,{size:`sm`,variant:`outline`,onClick:()=>{t&&P&&`url`in t.request&&(window.open(t.request.url,`_blank`),A(!0))},className:`flex items-center gap-2`,children:[(0,F.jsx)(x,{className:`h-4 w-4`}),`Open URL`]})]}),(0,F.jsxs)(`div`,{className:`flex items-center space-x-2 pt-2`,children:[(0,F.jsx)(j,{id:`url-completed`,checked:O,onCheckedChange:e=>A(!!e)}),(0,F.jsx)(l,{htmlFor:`url-completed`,className:`text-sm font-normal cursor-pointer`,children:`I have completed the required action`})]})]})]}),N&&(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(`h4`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100`,children:`Form Data`}),(0,F.jsx)(L,{request:t,formData:y,onFieldChange:C,idPrefix:`field`,testIdPrefix:`elicitation-field`,emptyFallback:(0,F.jsx)(`div`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:`No form schema available`})})]}),N&&`requestedSchema`in t.request&&t.request.requestedSchema&&(0,F.jsxs)(`details`,{className:`space-y-2`,children:[(0,F.jsx)(`summary`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100 cursor-pointer`,children:`Schema (for reference)`}),(0,F.jsx)(`div`,{className:`bg-muted rounded-lg p-3 max-h-64 overflow-auto`,children:(0,F.jsx)(S,{data:t.request.requestedSchema})})]})]}),(0,F.jsxs)(`div`,{className:`flex gap-2 p-4 border-t dark:border-zinc-700`,children:[(0,F.jsx)(c,{onClick:()=>{if(t){if(N){let e=w();if(e.length>0){E.error(`Missing required fields`,{description:`Please fill in: ${e.join(`, `)}`});return}o(t.id,{action:`accept`,content:y})}else P&&o(t.id,{action:`accept`});u(),T(()=>import(`./react-CU_d2d5K.js`).then(t=>e(t.t(),1)).then(e=>{let t=E(e.createElement(`div`,{className:`space-y-3`},e.createElement(`div`,null,e.createElement(`strong`,null,`Elicitation Response Sent`),e.createElement(`p`,{className:`text-sm text-muted-foreground mt-1`},`The tool will continue executing.`)),e.createElement(`div`,{className:`flex gap-2`},e.createElement(`button`,{"data-testid":`elicitation-view-tool-result`,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90`,onClick:()=>{let e=new globalThis.CustomEvent(`navigate-to-tool-result`,{detail:{toolName:null}});window.dispatchEvent(e),E.dismiss(t)}},`View Tool Result`))),{duration:5e3})}),[])}},className:`flex-1`,disabled:P&&!O,"data-testid":`elicitation-accept-button`,children:`Accept`}),(0,F.jsx)(c,{onClick:()=>{t&&(o(t.id,{action:`decline`}),u())},variant:`outline`,className:`flex-1`,"data-testid":`elicitation-decline-button`,children:`Decline`}),(0,F.jsx)(c,{onClick:()=>{t&&(s(t.id,`User cancelled elicitation request`),u())},variant:`outline`,className:`flex-1`,"data-testid":`elicitation-cancel-button`,children:`Cancel`})]})]}):(0,F.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:(0,F.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Select an elicitation request to view details`})})}function B({pendingRequests:e=[],onApprove:t,onReject:n,serverId:r,isConnected:i}){let{selectedElicitationRequestId:a,setSelectedElicitationRequestId:o}=_(),[s,c]=(0,P.useState)(null),[l,m]=(0,P.useState)(``),[g,v]=(0,P.useState)(-1),[y,x]=(0,P.useState)(!0),[S,T]=(0,P.useState)(!1),[E,D]=(0,P.useState)(!0),[k,A]=(0,P.useState)(!1),j=(0,P.useRef)(null),M=(0,P.useRef)(null),N=(0,P.useRef)(null),L=(0,P.useRef)(!1);(0,P.useEffect)(()=>{if(console.log(`[ElicitationTab] Auto-selection check:`,{selectedElicitationRequestId:a,pendingRequestsCount:e.length,currentSelectedId:s?.id}),a&&e.length>0){let t=e.find(e=>e.id===a);console.log(`[ElicitationTab] Found request for auto-selection:`,!!t,t?.id),t&&(console.log(`[ElicitationTab] Auto-selecting request:`,t.id),o(null),c(t),setTimeout(()=>{let e=document.getElementById(`elicitation-request-${t.id}`);console.log(`[ElicitationTab] Scrolling to element:`,!!e),e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`})},100))}},[a,e,o]),(0,P.useEffect)(()=>{let t=t=>{let n=t.detail.requestId;console.log(`[ElicitationTab] Custom navigate event received:`,n);let r=e.find(e=>e.id===n);r&&(console.log(`[ElicitationTab] Selecting request from event:`,n),c(r),setTimeout(()=>{let e=document.getElementById(`elicitation-request-${n}`);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`})},200))};return window.addEventListener(`navigate-to-elicitation`,t),()=>window.removeEventListener(`navigate-to-elicitation`,t)},[e]),(0,P.useEffect)(()=>{y&&e.length>0&&j.current&&!L.current&&(j.current.scrollTop=0)},[e.length,y]),(0,P.useEffect)(()=>{let e=j.current;if(!e)return;let t=()=>{e.scrollTop>0&&(L.current=!0,x(!1))};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[]),(0,P.useEffect)(()=>{e.length===0&&(L.current=!1,x(!0))},[e.length]),(0,P.useEffect)(()=>{S&&N.current&&N.current.focus()},[S]);let R=(0,P.useCallback)(()=>{l.trim()||T(!1)},[l]),B=(0,P.useMemo)(()=>{if(!l.trim())return e;let t=l.toLowerCase();return e.filter(e=>e.serverName.toLowerCase().includes(t)||e.request.message.toLowerCase().includes(t)||JSON.stringify(e.request||{}).toLowerCase().includes(t))},[e,l]);(0,P.useEffect)(()=>{v(-1)},[l]),(0,P.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=B;if(e.key===`ArrowDown`)e.preventDefault(),v(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),v(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&g>=0){e.preventDefault();let t=B[g];t&&V(t)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[g,B]),(0,P.useEffect)(()=>{if(g>=0){let e=`elicitation-request-${B[g]?.id}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[g,B]);let V=(0,P.useCallback)(e=>{c(e)},[]),H=(0,P.useCallback)(()=>{window.confirm(`Are you sure you want to cancel all elicitation requests? This cannot be undone.`)&&(e.forEach(e=>{n(e.id,`User cancelled all requests`)}),c(null))},[e,n]),U=(0,P.useCallback)(async()=>{if(s)try{await C(JSON.stringify({id:s.id,serverName:s.serverName,timestamp:s.timestamp,request:s.request},null,2)),A(!0),setTimeout(()=>A(!1),2e3)}catch(e){console.error(`[ElicitationTab] Failed to copy request:`,e)}},[s]),W=(0,P.useCallback)(()=>{if(s)try{let e=new globalThis.Blob([JSON.stringify({id:s.id,serverName:s.serverName,timestamp:s.timestamp,request:s.request},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`elicitation-request-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}catch(e){console.error(`[ElicitationTab] Failed to download request:`,e)}},[s]),G=(0,P.useCallback)(async()=>{if(M.current)try{document.fullscreenElement?await document.exitFullscreen():await M.current.requestFullscreen()}catch(e){console.error(`[ElicitationTab] Failed to toggle fullscreen:`,e)}},[]);return i?(0,F.jsxs)(p,{orientation:`horizontal`,className:`h-full`,children:[(0,F.jsx)(u,{defaultSize:40,minSize:30,children:(0,F.jsx)(p,{orientation:`vertical`,className:`h-full border-r dark:border-zinc-700`,children:(0,F.jsx)(u,{defaultSize:75,minSize:30,className:`h-full overflow-hidden`,children:(0,F.jsx)(f,{scrollRef:j,children:t=>(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(h,{isScrolled:t,title:`Elicitation`,icon:w,titleTestId:`elicitation-tab-header`,count:B.length,isSearchExpanded:S,searchQuery:l,searchPlaceholder:`Search requests...`,onSearchExpand:()=>T(!0),onSearchChange:m,onSearchBlur:R,bulkAction:{icon:b,label:`Cancel all`,onClick:H,disabled:e.length===0},searchInputRef:N}),(0,F.jsx)(I,{requests:B,selectedRequest:s,onRequestSelect:V,focusedIndex:g,formatRelativeTime:O})]})})})})}),(0,F.jsx)(d,{}),(0,F.jsx)(u,{defaultSize:60,minSize:40,children:(0,F.jsx)(`div`,{ref:M,className:`h-full bg-white dark:bg-zinc-900`,children:(0,F.jsx)(z,{request:s,onApprove:t,onReject:n,onClose:()=>c(null),previewMode:E,onTogglePreview:()=>D(!E),isCopied:k,onCopy:U,onDownload:W,onFullscreen:G})})})]}):(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,F.jsx)(w,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,F.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Not connected to server`})]})}export{B as ElicitationTab};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{_ as n,c as r,g as i,m as a,s as o}from"./button-C8Xa2k4x.js";var s=e(t(),1);function c(e,t){let r=s.useRef(e),a=n(t);i(()=>{r.current!==e&&a(r.current)},[e,a]),i(()=>{r.current=e},[e])}var l=function(e){return e.disabled=`data-disabled`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e}({}),u={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},d={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},f={disabled:!1,...d},p={valid(e){return e===null?null:e?{[l.valid]:``}:{[l.invalid]:``}}},m={invalid:void 0,name:void 0,validityData:{state:u,errors:[],error:``,value:``,initialValue:null},setValidityData:r,disabled:void 0,touched:d.touched,setTouched:r,dirty:d.dirty,setDirty:r,filled:d.filled,setFilled:r,focused:d.focused,setFocused:r,validate:()=>null,validationMode:`onSubmit`,validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:f,markedDirtyRef:{current:!1},registerFieldControl:r,validation:{getValidationProps:(e,t=o)=>t,inputRef:{current:null},registerInput:r,commit:async()=>{},change:r}},h=s.createContext(m);function g(e=!0){let t=s.useContext(h);if(t.setValidityData===r&&!e)throw Error(a(28));return t}function _(e,t,n,r,a=!0,o){let{registerFieldControl:c}=g(),l=s.useRef(null);l.current||=Symbol(),i(()=>{let i=l.current;if(!(!i||!a))return c(i,{controlRef:e,getValue:r,id:t,name:o,value:n}),()=>{c(i,void 0)}},[e,a,r,t,o,c,n])}var v=s.createContext({controlId:void 0,registerControlId:r,labelId:void 0,setLabelId:r,messageIds:[],setMessageIds:r,getDescriptionProps:e=>e});function y(){return s.useContext(v)}var b=s.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:r,validationMode:`onSubmit`,submitAttemptedRef:{current:!1}});function x(){return s.useContext(b)}export{h as a,p as c,_ as i,c as l,v as n,g as o,y as r,u as s,x as t};
@@ -0,0 +1 @@
1
+ import{G as e,a as t,d as n,l as r,n as i,r as a,sr as o,t as s,u as c}from"./input-C0OQCUZy.js";import{n as l}from"./createLucideIcon-BEHeJH0M.js";import{H as u,t as d}from"./button-C8Xa2k4x.js";import{t as f}from"./refresh-cw-B5iaAZKn.js";var p=l();function m({className:e,...t}){return(0,p.jsx)(`kbd`,{"data-slot":`kbd`,className:u(`bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none`,`[&_svg:not([class*='size-'])]:size-3`,`[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10`,e),...t})}var h=`h-3.5 w-3.5 shrink-0 text-muted-foreground`;function g({activeTab:l,isSearchExpanded:u,searchQuery:g,primaryTabTitle:_,secondaryTabTitle:v,primaryCount:y,secondaryCount:b,secondaryIcon:x,primaryIcon:S,searchPlaceholder:C=`Search...`,onSearchExpand:w,onSearchChange:T,onSearchBlur:E,onTabSwitch:D,searchInputRef:O,primaryTabName:k,onRefresh:A,isRefreshing:j=!1,isScrolled:M=!1}){let N=l===k,P=N?S:x,F=N?_:v;return(0,p.jsxs)(`div`,{className:`flex flex-row items-center justify-between gap-2 ${r(M)} ${c}`,children:[(0,p.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:u?(0,p.jsx)(s,{ref:O,placeholder:C,value:g,onChange:e=>T(e.target.value),onBlur:E,className:`h-8 border-gray-300 dark:border-zinc-600`}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`h2`,{className:`${n} flex items-center gap-1.5`,children:[(0,p.jsx)(P,{className:h,"aria-hidden":!0}),F]}),N&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{className:`bg-zinc-500/20 text-zinc-600 dark:text-zinc-400 border-transparent`,variant:`outline`,children:y}),(0,p.jsxs)(i,{children:[(0,p.jsx)(t,{render:(0,p.jsx)(d,{variant:`ghost`,size:`sm`,onClick:w,className:`h-8 w-8 p-0`,children:(0,p.jsx)(e,{className:`h-4 w-4`})}),nativeButton:!0}),(0,p.jsxs)(a,{side:`bottom`,className:`flex gap-2`,children:[`Search`,(0,p.jsx)(m,{children:`F`})]})]}),A&&(0,p.jsxs)(i,{children:[(0,p.jsx)(t,{render:(0,p.jsx)(d,{variant:`ghost`,size:`sm`,onClick:A,disabled:j,className:`h-8 w-8 p-0`,children:(0,p.jsx)(f,{className:`h-4 w-4 ${j?`animate-spin`:``}`})}),nativeButton:!0}),(0,p.jsxs)(a,{side:`bottom`,className:`flex gap-2`,children:[`Refresh list`,(0,p.jsx)(m,{children:`R`})]})]})]})]})}),(0,p.jsxs)(d,{variant:`ghost`,size:`sm`,onClick:D,className:`gap-2 flex-shrink-0`,children:[(0,p.jsx)(`span`,{className:`hidden sm:inline`,children:N?v:_}),N&&b>0&&(0,p.jsx)(o,{className:`bg-purple-500/20 text-purple-600 dark:text-purple-400 border-transparent`,variant:`outline`,children:b})]})]})}export{h as n,m as r,g as t};
@@ -0,0 +1,34 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{G as n,K as r,a as i,n as a,r as o,t as s}from"./input-C0OQCUZy.js";import{n as c,t as l}from"./createLucideIcon-BEHeJH0M.js";import{H as u,t as d}from"./button-C8Xa2k4x.js";import{t as f}from"./label-CI7JWQOo.js";import{a as p,i as m,n as h,r as g,t as _}from"./select-D6jzbLJn.js";import{t as v}from"./maximize-2-Br1WQzT2.js";import{t as y}from"./sparkles-BGYTDThM.js";import{$t as b,B as x,D as S,E as C,G as w,Gt as T,H as E,Jt as D,K as O,Kt as k,O as A,Qt as ee,R as te,U as ne,V as re,W as ie,Xt as ae,Yt as oe,an as se,b as ce,bn as le,bt as j,c as M,cn as N,d as P,f as F,k as ue,l as de,n as fe,nn as pe,on as me,ot as I,p as he,tn as ge,w as _e,xn as ve,yn as L,z as ye}from"./index-BMaSsizY.js";import{a as R}from"./dist-9Oy7e0v8.js";import{t as z}from"./textarea-CRTXuRmE.js";import{a as be,i as xe,n as Se,o as Ce,r as we}from"./useViewHostProps-DZqOwiAm.js";var Te=l(`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=l(`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=l(`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=l(`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=l(`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=l(`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=l(`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=l(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),Ne=l(`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`}]]),B=l(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Pe=l(`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),Fe=[{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 Ie(){return Intl.supportedValuesOf(`timeZone`).map(e=>({value:e,label:e.replace(/_/g,` `)}))}var Le=Ie(),H=e=>`mcp-inspector-resource-props-${e}`;function Re(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=c(),ze=200,Be=.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 Ve({level:e}){return(0,W.jsx)(`span`,{className:u(`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 He({log:e}){let[t,n]=(0,V.useState)(!1),i=(0,V.useMemo)(()=>{try{return new Date(e.timestamp).toLocaleTimeString()}catch{return``}},[e.timestamp]),a=(0,V.useMemo)(()=>K(e.args),[e.args]),o=(0,V.useMemo)(()=>{if(a.length===0)return``;let e=a[0].replace(/\s*\n\s*/g,` `).trim();return(e.length>120?e.slice(0,120)+`…`:e)+(a.length>1?` +${a.length-1}`:``)},[a]),s=async e=>{e.stopPropagation();try{await j(a.join(`
2
+ `)),I.success(`Copied to clipboard`)}catch{I.error(`Failed to copy`)}},c=u(`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`),l=u(`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:u(c,`group`),children:[(0,W.jsxs)(`div`,{className:u(`flex items-center gap-2 px-2 py-1.5`,l),onClick:()=>n(e=>!e),children:[(0,W.jsx)(`span`,{className:`text-zinc-400 dark:text-zinc-500 shrink-0`,children:t?(0,W.jsx)(ve,{className:`size-3`}):(0,W.jsx)(r,{className:`size-3`})}),(0,W.jsx)(Ve,{level:e.level}),(0,W.jsx)(`span`,{className:`text-zinc-500 dark:text-zinc-400 text-[10px] shrink-0`,children:i}),!t&&(0,W.jsx)(`span`,{className:u(`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:o}),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:s,"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)(L,{className:`size-3`})})]}),t&&(0,W.jsx)(`div`,{className:`pl-8 pr-2 pb-2 select-text`,children:a.map((t,n)=>(0,W.jsx)(`pre`,{className:u(`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`,Ue=`mcp-inspector-console-height`,We=[`log`,`info`,`warn`,`error`,`debug`,`trace`],Ge={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 Ke({iframeId:e,enabled:t=!0}){let[r,s]=(0,V.useState)(()=>{if(typeof window>`u`)return!0;try{return localStorage.getItem(q)===`true`}catch{return!0}}),[c,l]=(0,V.useState)(()=>{if(typeof window>`u`)return 400;try{let e=localStorage.getItem(Ue);return e?Math.max(ze,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*Be);l(Math.min(t,Math.max(ze,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(Ue,String(c))}catch{}},[c]);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,k=(0,V.useMemo)(()=>T>0?`bg-red-500`:E>0?`bg-yellow-500`:`bg-zinc-500`,[T,E,D]),A=(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)},[A,x,_]),(0,W.jsxs)(M,{open:x,onOpenChange:S,children:[(0,W.jsx)(he,{render:(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsxs)(d,{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:u(`ml-2 px-1.5 py-0.5 text-xs rounded-full text-white font-semibold`,k),children:O})]}),nativeButton:!0}),(0,W.jsx)(o,{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)(de,{side:`bottom`,className:`flex flex-col p-0 transition-none m-0 gap-0`,style:{height:c},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)(_e,{id:`proxy-console-toggle`,checked:r,onCheckedChange:s}),(0,W.jsx)(f,{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)(d,{variant:`ghost`,size:`sm`,onClick:async()=>{try{await j(A.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 ${A.length} logs to clipboard`)}catch{I.error(`Failed to copy logs to clipboard`)}},className:`-my-2`,children:[(0,W.jsx)(L,{className:`size-4 mr-1`}),`Copy All`]}),(0,W.jsxs)(d,{variant:`ghost`,size:`sm`,onClick:b,className:`-my-2`,children:[(0,W.jsx)(Pe,{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:u(`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})]}),We.map(e=>{let t=w[e];return(0,W.jsxs)(`button`,{onClick:()=>g(h===e?`all`:e),className:u(`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:u(t>0&&Ge[e]),children:e.charAt(0).toUpperCase()+e.slice(1)}),t>0&&(0,W.jsx)(`span`,{className:u(`ml-1 text-[10px]`,Ge[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)(ae,{className:`size-3`})})]})]})]}),(0,W.jsx)(`div`,{ref:C,className:`flex-1 overflow-auto bg-zinc-50 dark:bg-zinc-950`,children:A.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:A.map(e=>(0,W.jsx)(He,{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 qe({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 Je(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 Ye(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 c=o||t,l=Je(t,c);l=Y(l,c);let u=Ye(l),d=l.type===`string`&&u!==null,v=l;return v.type===`object`||v.type===`array`?(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(f,{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})]}):d&&u?(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(f,{htmlFor:e,className:`text-sm font-medium`,children:[e,i&&(0,W.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),(0,W.jsxs)(_,{value:n||``,onValueChange:r,disabled:a,children:[(0,W.jsx)(m,{id:e,className:`w-full`,children:(0,W.jsx)(p,{placeholder:v.description||`Select an option`})}),(0,W.jsx)(h,{children:u.map((e,t)=>(0,W.jsx)(g,{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)(f,{htmlFor:e,className:`text-sm font-medium`,children:[e,i&&(0,W.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),(0,W.jsx)(s,{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 Xe({open:e,onOpenChange:t,onSave:n,existingPresets:r,resource:i,resourceAnnotations:a,llmConfig:o,editingPreset:c}){let l=(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]),u=!!l,[p,m]=(0,V.useState)(``),[h,g]=(0,V.useState)({}),[_,v]=(0,V.useState)([{id:crypto.randomUUID(),key:``,value:``}]),[b,S]=(0,V.useState)(!1),[C,T]=(0,V.useState)(null),{generateProps:D,isAvailable:O}=qe({llmConfig:o});(0,V.useEffect)(()=>{if(e){if(c)if(m(c.name),u)g(c.props);else{let e=Object.entries(c.props).map(([e,t])=>({id:crypto.randomUUID(),key:e,value:t}));v(e.length>0?e:[{id:crypto.randomUUID(),key:``,value:``}])}else m(``),u?g({}):v([{id:crypto.randomUUID(),key:``,value:``}]);T(null)}},[e,c,u]);let k=()=>{v([..._,{id:crypto.randomUUID(),key:``,value:``}])},A=e=>{_.length>1&&v(_.filter(t=>t.id!==e))},ie=(e,t,n)=>{v(_.map(r=>r.id===e?{...r,[t]:n}:r))};return(0,W.jsx)(te,{open:e,onOpenChange:t,children:(0,W.jsxs)(x,{scrollable:!0,className:`sm:max-w-[600px] max-h-[80vh]`,"data-testid":`props-config-dialog`,children:[(0,W.jsxs)(ne,{children:[(0,W.jsx)(w,{children:c?`Edit Preset`:`Create Props Preset`}),(0,W.jsxs)(re,{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)(f,{htmlFor:`preset-name`,children:`Preset Name`}),(0,W.jsx)(s,{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:b})]}),(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)(f,{className:`text-sm font-medium`,children:`Generate with AI`}),O&&(0,W.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Using `,o?.provider,` (`,o?.model,`)`]})]}),O?(0,W.jsx)(d,{onClick:async()=>{if(!O){I.error(`LLM not configured`,{description:`Please configure LLM in the Chat tab first.`});return}S(!0),T(null);try{let e=await D({resource:i,resourceAnnotations:a,propsSchema:u?l:void 0});if(u){let t={};for(let n of e)l.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`;T(t),I.error(`LLM Generation Failed`,{description:t})}finally{S(!1)}},disabled:b,size:`sm`,variant:`outline`,className:`w-full`,"data-testid":`props-config-generate-llm-button`,children:b?(0,W.jsxs)(`span`,{"data-testid":`props-config-generating`,className:`flex items-center gap-2`,children:[(0,W.jsx)(N,{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.`}),C&&(0,W.jsx)(`p`,{className:`text-xs text-destructive`,"data-testid":`props-config-error`,children:C})]}),(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsx)(f,{className:`text-sm font-medium`,children:`Props`}),u?(0,W.jsx)(`div`,{className:`space-y-4`,children:Object.entries(l.properties||{}).map(([e,t])=>(0,W.jsx)(X,{name:e,schema:t,value:h[e]||``,onChange:t=>g(n=>({...n,[e]:t})),required:l.required?.includes(e),disabled:b,rootSchema:l},e))}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,W.jsxs)(d,{onClick:k,size:`sm`,variant:`ghost`,disabled:b,"data-testid":`props-config-add-prop`,children:[(0,W.jsx)(pe,{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)(s,{placeholder:`Key`,value:e.key,onChange:t=>ie(e.id,`key`,t.target.value),disabled:b,"data-testid":`props-config-key-${t}`}),(0,W.jsx)(s,{placeholder:`Value`,value:e.value,onChange:t=>ie(e.id,`value`,t.target.value),disabled:b,"data-testid":`props-config-value-${t}`})]}),(0,W.jsx)(d,{variant:`ghost`,size:`sm`,onClick:()=>A(e.id),disabled:_.length===1||b,className:`h-9 w-9 p-0`,"data-testid":`props-config-remove-${t}`,children:(0,W.jsx)(ee,{className:`h-4 w-4 text-muted-foreground`})})]},e.id))]})]})]}),(0,W.jsxs)(E,{children:[(0,W.jsx)(d,{variant:`outline`,onClick:()=>t(!1),disabled:b,"data-testid":`props-config-cancel-button`,children:`Cancel`}),(0,W.jsxs)(d,{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!==c?.id)){I.error(`Duplicate preset name`,{description:`A preset with this name already exists.`});return}let e;if(u)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:c?.id||crypto.randomUUID(),name:p.trim(),props:e};n(i),t(!1),I.success(c?`Preset updated`:`Preset created`,{description:`Preset "${i.name}" saved successfully.`})},disabled:b,"data-testid":`props-config-save-button`,children:[c?`Update`:`Create`,` Preset`]})]})]})})}function Ze({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)(s,{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)(s,{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)(s,{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)(s,{type:`number`,min:`0`,value:e.left,onChange:e=>n(`left`,e.target.value),className:`h-8`,"data-testid":`debugger-safe-area-left`})]})]})}function Qe(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`,$e=`https://mcp-use.com/docs/typescript/server/csp`;function et(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: ${$e}`,``];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__`,tt=`__create_preset__`,nt=[{value:`desktop`,label:`Desktop`,icon:me},{value:`mobile`,label:`Mobile`,icon:Me}];function rt({options:e,value:t,onValueChange:n,placeholder:r,contentTestId:i,searchTestId:a,optionTestId:o,trigger:c}){let[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(``),p=(0,V.useRef)(null);(0,V.useEffect)(()=>{if(!l){f(``);return}let e=requestAnimationFrame(()=>p.current?.focus());return()=>cancelAnimationFrame(e)},[l]);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)(T,{open:l,onOpenChange:u,children:[c,(0,W.jsxs)(k,{"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)(s,{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)(oe,{index:r,label:e.label,checked:t===e.value,"data-testid":o(e.value),onSelect:()=>{n(e.value),u(!1)}},e.value))})]})]})}function it({displayMode:e,onDisplayModeChange:t,toolCallId:n,propsContext:s,resourceUri:c,toolInput:l,resourceAnnotations:u,llmConfig:f,resource:p,onPropsChange:m,requiredProps:h}){let{resolvedTheme:g,setTheme:_}=ue(),{playground:y,updatePlaygroundSettings:E,widgets:re,clearCspViolations:ae}=fe(),M=re.get(n),N=M?.cspViolations??[],P=M?.declaredCsp,F=M?.effectivePolicy,de=N.length>0?Qe(N,P):null,pe=N.length>0?et(P,F,N,de):``,he=e===`fullscreen`,_e=e===`pip`,{presets:R,activePresetId:z,savePreset:Ce,deletePreset:Ee,setActivePreset:B,getActiveProps:Pe}=Re(c),[Ie,H]=(0,V.useState)(!1),U=!!h?.length&&!z,[ze,Be]=(0,V.useState)(()=>U);(0,V.useEffect)(()=>{U&&Be(!0)},[U]);let[G,K]=(0,V.useState)(null),[Ve,He]=(0,V.useState)(!1),[q,Ue]=(0,V.useState)(`mode`),[We,Ge]=(0,V.useState)(!0),J=(0,V.useMemo)(()=>be(P),[P]),qe=(0,V.useMemo)(()=>xe(F),[F]),Y=(0,V.useMemo)(()=>we(J,qe),[J,qe]),Je=(0,V.useMemo)(()=>Se({mode:y.cspMode,declared:P,effectivePolicy:F,violations:N}),[y.cspMode,P,F,N]),Ye=(0,V.useCallback)(()=>s===`tool`&&l?$:Q,[s,l]),[X,Z]=(0,V.useState)(Ye());(0,V.useEffect)(()=>{z&&s!==`tool`?Z(z):X!==Q&&X!==$&&Z(Ye())},[z,X,Ye,s]),(0,V.useEffect)(()=>{if(m){if(X===Q||X===$)m(null);else if(z&&X===z){let e=Pe();e&&m(e)}}},[X,z,l,Pe,m,R]);let $e=e=>{if(e===tt){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)}},it=e=>{Ce(e),B(e.id),Z(e.id),m?.(e.props)},at=(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.`}))},ot=(e,t)=>{t.stopPropagation(),K(e),H(!0)},st=()=>y.deviceType===`mobile`?(0,W.jsx)(Me,{className:`size-3`}):(0,W.jsx)(me,{className:`size-3`}),ct=nt.findIndex(e=>e.value===y.deviceType);return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!he&&!_e&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(d,{"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)(o,{children:`Enter fullscreen mode`})]}),(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(d,{"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)(o,{children:`Picture-in-picture`})]})]}),(0,W.jsxs)(T,{children:[(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(D,{render:(0,W.jsx)(d,{"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:st()}),nativeButton:!0}),nativeButton:!0}),(0,W.jsxs)(o,{children:[`Device: `,y.deviceType]})]}),(0,W.jsx)(k,{"data-testid":`debugger-device-dialog`,checkedIndex:ct>=0?ct:void 0,className:`w-56`,children:nt.map((e,t)=>(0,W.jsx)(oe,{index:t,icon:e.icon,label:e.label,checked:y.deviceType===e.value,"data-testid":`debugger-device-option-${e.value}`,onSelect:()=>E({deviceType:e.value})},e.value))})]}),(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(d,{"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)(se,{className:`size-3.5`}):(0,W.jsx)(b,{className:`size-3.5`})}),nativeButton:!0}),(0,W.jsxs)(o,{children:[`Theme: `,g===`dark`?`Dark`:`Light`]})]}),(0,W.jsx)(rt,{options:Fe,value:y.locale,onValueChange:e=>E({locale:e}),placeholder:`Search locales...`,contentTestId:`debugger-locale-dialog`,searchTestId:`debugger-locale-search`,optionTestId:e=>`debugger-locale-option-${e}`,trigger:(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(D,{render:(0,W.jsx)(d,{"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)(o,{children:`Locale`})]})}),(0,W.jsx)(rt,{options:Le,value:y.timeZone,onValueChange:e=>E({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)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(D,{render:(0,W.jsx)(d,{"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)(o,{children:[`Timezone: `,y.timeZone]})]})}),(0,W.jsxs)(te,{open:Ve,onOpenChange:He,children:[(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(O,{render:(0,W.jsxs)(d,{"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)(o,{children:[`CSP:`,` `,y.cspMode===`permissive`?`Permissive`:`Declared`,N.length>0&&` · ${N.length} ${y.cspMode===`permissive`?`would be blocked`:`blocked`}`]})]}),(0,W.jsxs)(x,{scrollable:!0,className:`sm:max-w-[520px] max-h-[85vh]`,"data-testid":`debugger-csp-dialog`,children:[(0,W.jsx)(ne,{children:(0,W.jsx)(w,{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:()=>Ue(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)(d,{"data-testid":`debugger-csp-option-permissive`,variant:y.cspMode===`permissive`?`default`:`outline`,className:`w-full justify-start`,onClick:()=>E({cspMode:`permissive`}),children:[(0,W.jsx)(je,{className:`size-4 mr-2`}),`Permissive`]}),(0,W.jsxs)(d,{"data-testid":`debugger-csp-option-widget-declared`,variant:y.cspMode===`widget-declared`?`default`:`outline`,className:`w-full justify-start`,onClick:()=>E({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)(d,{variant:`outline`,size:`sm`,onClick:async()=>{try{await j(F),I.success(`Policy copied to clipboard`)}catch{I.error(`Failed to copy`)}},children:[(0,W.jsx)(L,{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:Je.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:()=>ae(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:()=>Ge(e=>!e),children:[We?(0,W.jsx)(ve,{className:`size-3.5`}):(0,W.jsx)(r,{className:`size-3.5`}),`Prompt for Agents`]}),(0,W.jsx)(d,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:()=>void j(pe),"aria-label":`Copy prompt for agents`,children:(0,W.jsx)(L,{className:`size-3.5`})})]}),We&&(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)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(d,{"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:()=>{E({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)(o,{children:[`Touch: `,y.capabilities.touch?`Enabled`:`Disabled`]})]}),(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(d,{"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:()=>{E({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)(o,{children:[`Hover: `,y.capabilities.hover?`Enabled`:`Disabled`]})]}),(0,W.jsxs)(C,{children:[(0,W.jsx)(A,{render:(0,W.jsx)(d,{"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)(S,{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)(Ze,{value:y.safeAreaInsets,onChange:e=>{E({safeAreaInsets:e})}})]})})]}),s===`tool`?(0,W.jsxs)(te,{children:[(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(O,{render:(0,W.jsx)(d,{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)(o,{children:`View Tool Props`})]}),(0,W.jsxs)(x,{scrollable:!0,className:`sm:max-w-[600px] max-h-[85vh]`,"data-testid":`debugger-props-dialog`,children:[(0,W.jsx)(ne,{children:(0,W.jsx)(w,{children:`Tool Props`})}),(0,W.jsx)(ye,{children:(0,W.jsx)(ie,{children:(0,W.jsx)(ce,{data:l??{},filename:`tool-props.json`})})})]})]}):(0,W.jsxs)(C,{open:ze,onOpenChange:Be,children:[(0,W.jsxs)(a,{children:[(0,W.jsx)(i,{render:(0,W.jsx)(A,{render:(0,W.jsx)(d,{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)(o,{children:[`Props:`,` `,X===Q?`No Props`:X===$?`Tool Props`:R.find(e=>e.id===X)?.name||`Custom`]})]}),(0,W.jsxs)(S,{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)(d,{variant:X===Q?`secondary`:`ghost`,size:`sm`,className:`w-full justify-start`,onClick:()=>$e(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)(d,{variant:X===e.id?`secondary`:`ghost`,size:`sm`,className:`w-full justify-start pr-14`,onClick:()=>$e(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)(d,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:t=>ot(e,t),"data-testid":`debugger-props-edit-${e.id}`,children:(0,W.jsx)(ge,{className:`h-3 w-3`})}),(0,W.jsx)(d,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:t=>at(e.id,t),"data-testid":`debugger-props-delete-${e.id}`,children:(0,W.jsx)(ee,{className:`h-3 w-3 text-destructive`})})]})]},e.id)),(0,W.jsx)(d,{variant:`ghost`,size:`sm`,className:`w-full justify-start text-primary`,onClick:()=>$e(tt),"data-testid":`debugger-props-create-preset`,children:`+ Create Preset...`})]})]})]}),(0,W.jsx)(Ke,{iframeId:n,enabled:!0}),p&&(0,W.jsx)(Xe,{open:Ie,onOpenChange:H,onSave:it,existingPresets:R,resource:p,resourceAnnotations:u,llmConfig:f||null,editingPreset:G})]})}export{Ee as n,it as t};
@@ -1 +1 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{t as n}from"./jsx-runtime-Cjj9sGSy.js";import{in as r,j as i}from"./index-TQ5V7cM9.js";var a=e(t(),1),o=n();function s(){let[e,t]=(0,a.useState)(null);return(0,a.useEffect)(()=>{i().then(()=>window.close()).catch(e=>{t(e instanceof Error?e.message:String(e))})},[]),(0,o.jsx)(`div`,{className:`flex h-screen w-full items-center justify-center bg-background`,children:(0,o.jsx)(`div`,{className:`flex max-w-md flex-col items-center gap-4 p-6 text-center`,children:e?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`h1`,{className:`text-lg font-semibold text-destructive`,children:`Authorization failed`}),(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r,{className:`size-8 animate-spin text-muted-foreground`}),(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Completing Manufact authorization…`})]})})})}export{s as ManufactOAuthCallback};
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{cn as r,j as i}from"./index-BMaSsizY.js";var a=e(t(),1),o=n();function s(){let[e,t]=(0,a.useState)(null);return(0,a.useEffect)(()=>{i().then(()=>window.close()).catch(e=>{t(e instanceof Error?e.message:String(e))})},[]),(0,o.jsx)(`div`,{className:`flex h-screen w-full items-center justify-center bg-background`,children:(0,o.jsx)(`div`,{className:`flex max-w-md flex-col items-center gap-4 p-6 text-center`,children:e?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`h1`,{className:`text-lg font-semibold text-destructive`,children:`Authorization failed`}),(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r,{className:`size-8 animate-spin text-muted-foreground`}),(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Completing Manufact authorization…`})]})})})}export{s as ManufactOAuthCallback};
@@ -1,4 +1,4 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{Lr as n}from"./input-CLYhA7PK.js";import{t as r}from"./jsx-runtime-Cjj9sGSy.js";import{Dt as i,Ft as a,hn as o,vn as s,yt as c}from"./index-TQ5V7cM9.js";import{t as l}from"./checkbox-CzBkaNKa.js";var u=e(t(),1);function d({prompts:e,callPrompt:t,serverId:n}){let[r,o]=(0,u.useState)(null),[s,c]=(0,u.useState)({}),[l,d]=(0,u.useState)([]),[f,p]=(0,u.useState)(!1),[m,h]=(0,u.useState)(``),g=(0,u.useMemo)(()=>{if(!m.trim())return e;let t=m.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t))},[e,m]),_=(0,u.useCallback)(e=>{o(e);let t={};e.arguments&&e.arguments.forEach(e=>{t[e.name]=``}),c(t)},[]),v=(0,u.useCallback)((e,t)=>{c(n=>({...n,[e]:t}))},[]),y=(0,u.useCallback)(async(e,r)=>{if(f)return;p(!0);let o=Date.now();try{let s=await t(e.name,r),c=Date.now()-o;i(new a({promptName:e.name,serverId:n,success:!0})).catch(()=>{}),d(t=>[{promptName:e.name,args:r,result:s,timestamp:o,duration:c},...t])}catch(t){i(new a({promptName:e.name,serverId:n,success:!1,error:t instanceof Error?t.message:`Unknown error`})).catch(()=>{});let s=t instanceof Error?t.message:String(t),c={promptName:e.name,args:r,result:{error:s,isError:!0},error:s,timestamp:o,duration:Date.now()-o};d(e=>[c,...e])}finally{p(!1)}},[f,t,n]),b=(0,u.useCallback)(e=>{d(t=>t.filter((t,n)=>n!==e))},[]),x=(0,u.useCallback)(()=>{d([])},[]);return(0,u.useEffect)(()=>{if(r){let t=e.find(e=>e.name===r.name);if(!t){o(null);return}t!==r&&(JSON.stringify(t.arguments)!==JSON.stringify(r.arguments)||t.description!==r.description)&&o(t)}},[e,r]),{filteredPrompts:g,selectedPrompt:r,setSelectedPrompt:o,results:l,handleDeleteResult:b,promptArgs:s,setPromptArgs:c,isExecuting:f,handlePromptSelect:_,handleArgChange:v,executePrompt:y,executeSelectedPrompt:(0,u.useCallback)(async()=>{!r||f||y(r,s)},[r,s,f,y]),searchQuery:m,setSearchQuery:h,clearPromptResults:x}}var f;function p(e){if(!f)if(typeof document<`u`)f=document.createElement(`textarea`);else return;var t=`&`+e+`;`;f.innerHTML=t;var n=f.value;return n===t?void 0:n}var m=32,h=9,g=13,_=10,v=96,y=126,b=91,x=94,S=62,C=35,w=36,T=37,E=45,D=61,O=92,k=42,A=95,j=60,M=64,N=93,P=33,F=38,I=58,L=70,R=102,ee=104,te=119,z=116,ne=112,re=115,ie=160,ae=12,oe=44,se=59,ce=63,le=46,ue=47,de=39,fe=34,pe=43,B=124,me=123,he=125,ge=40,_e=41,ve=30,ye=31,V=48,H=57,U=65,W=90,G=97,K=122,be=128,q=32,J={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22};function xe(e){if(!Ne(e,`---`))return null;let t=3;for(;t<e.length&&(e[t]===` `||e[t]===` `);)t++;if(t<e.length&&e[t]===`\r`&&t++,t>=e.length||e[t]!==`
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{H as r}from"./button-C8Xa2k4x.js";import{It as i,Ot as a,Sn as o,bt as s,yn as c}from"./index-BMaSsizY.js";import{t as l}from"./checkbox-B6dtF73d.js";var u=e(t(),1);function d({prompts:e,callPrompt:t,serverId:n}){let[r,o]=(0,u.useState)(null),[s,c]=(0,u.useState)({}),[l,d]=(0,u.useState)([]),[f,p]=(0,u.useState)(!1),[m,h]=(0,u.useState)(``),g=(0,u.useMemo)(()=>{if(!m.trim())return e;let t=m.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t))},[e,m]),_=(0,u.useCallback)(e=>{o(e);let t={};e.arguments&&e.arguments.forEach(e=>{t[e.name]=``}),c(t)},[]),v=(0,u.useCallback)((e,t)=>{c(n=>({...n,[e]:t}))},[]),y=(0,u.useCallback)(async(e,r)=>{if(f)return;p(!0);let o=Date.now();try{let s=await t(e.name,r),c=Date.now()-o;a(new i({promptName:e.name,serverId:n,success:!0})).catch(()=>{}),d(t=>[{promptName:e.name,args:r,result:s,timestamp:o,duration:c},...t])}catch(t){a(new i({promptName:e.name,serverId:n,success:!1,error:t instanceof Error?t.message:`Unknown error`})).catch(()=>{});let s=t instanceof Error?t.message:String(t),c={promptName:e.name,args:r,result:{error:s,isError:!0},error:s,timestamp:o,duration:Date.now()-o};d(e=>[c,...e])}finally{p(!1)}},[f,t,n]),b=(0,u.useCallback)(e=>{d(t=>t.filter((t,n)=>n!==e))},[]),x=(0,u.useCallback)(()=>{d([])},[]);return(0,u.useEffect)(()=>{if(r){let t=e.find(e=>e.name===r.name);if(!t){o(null);return}t!==r&&(JSON.stringify(t.arguments)!==JSON.stringify(r.arguments)||t.description!==r.description)&&o(t)}},[e,r]),{filteredPrompts:g,selectedPrompt:r,setSelectedPrompt:o,results:l,handleDeleteResult:b,promptArgs:s,setPromptArgs:c,isExecuting:f,handlePromptSelect:_,handleArgChange:v,executePrompt:y,executeSelectedPrompt:(0,u.useCallback)(async()=>{!r||f||y(r,s)},[r,s,f,y]),searchQuery:m,setSearchQuery:h,clearPromptResults:x}}var f;function p(e){if(!f)if(typeof document<`u`)f=document.createElement(`textarea`);else return;var t=`&`+e+`;`;f.innerHTML=t;var n=f.value;return n===t?void 0:n}var m=32,h=9,g=13,_=10,v=96,y=126,b=91,x=94,S=62,C=35,w=36,T=37,E=45,D=61,O=92,k=42,A=95,j=60,M=64,N=93,P=33,F=38,I=58,L=70,R=102,ee=104,te=119,z=116,ne=112,re=115,ie=160,ae=12,oe=44,se=59,ce=63,le=46,ue=47,de=39,fe=34,pe=43,B=124,me=123,he=125,ge=40,_e=41,ve=30,ye=31,V=48,H=57,U=65,W=90,G=97,K=122,be=128,q=32,J={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22};function xe(e){if(!Ne(e,`---`))return null;let t=3;for(;t<e.length&&(e[t]===` `||e[t]===` `);)t++;if(t<e.length&&e[t]===`\r`&&t++,t>=e.length||e[t]!==`
2
2
  `)return null;t++;let n=!1;for(;t<e.length;){let r=t;for(;t<e.length&&e[t]!==`
3
3
  `&&e[t]!==`\r`;)t++;if(t>=e.length)break;let i=t;if(e[t]===`\r`&&t++,t<e.length&&e[t]===`
4
4
  `&&t++,Ne(e,`---`,r))return{endPos:t,hasValidYaml:n};let a=e.indexOf(`:`,r);a!==-1&&a<i&&(n=!0)}return null}var Se=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,Ce={class:`className`,for:`htmlFor`,allowfullscreen:`allowFullScreen`,allowtransparency:`allowTransparency`,autocomplete:`autoComplete`,autofocus:`autoFocus`,autoplay:`autoPlay`,cellpadding:`cellPadding`,cellspacing:`cellSpacing`,charset:`charSet`,classid:`classId`,colspan:`colSpan`,contenteditable:`contentEditable`,contextmenu:`contextMenu`,crossorigin:`crossOrigin`,enctype:`encType`,formaction:`formAction`,formenctype:`formEncType`,formmethod:`formMethod`,formnovalidate:`formNoValidate`,formtarget:`formTarget`,frameborder:`frameBorder`,hreflang:`hrefLang`,inputmode:`inputMode`,keyparams:`keyParams`,keytype:`keyType`,marginheight:`marginHeight`,marginwidth:`marginWidth`,maxlength:`maxLength`,mediagroup:`mediaGroup`,minlength:`minLength`,novalidate:`noValidate`,radiogroup:`radioGroup`,readonly:`readOnly`,rowspan:`rowSpan`,spellcheck:`spellCheck`,srcdoc:`srcDoc`,srclang:`srcLang`,srcset:`srcSet`,tabindex:`tabIndex`,usemap:`useMap`,viewbox:`viewBox`};function we(e){var t={};for(var n in e){var r=Ce[n.toLowerCase()];if(r)t[r]=e[n];else{var i=n.indexOf(`:`);i===-1?t[n]=e[n]:t[n.slice(0,i)+n[i+1].toUpperCase()+n.slice(i+2)]=e[n]}}return t}var Te=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\b)/i;function Y(e){return e.indexOf(`&`)===-1?e:e.replace(Se,(e,t)=>{var n=p(t);if(n)return n;if(t[0]===`#`){var r=t[1]===`x`||t[1]===`X`?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return r===0||r>=55296&&r<=57343||r>1114111?`�`:r<=65535?String.fromCharCode(r):String.fromCharCode(55296+(r-65536>>10),56320+(r-65536&1023))}return e})}var Ee=/(javascript|vbscript|data(?!:image)):/i;function De(e){if(Ee.test(e))return null;if(e.indexOf(`%`)===-1)return e;try{let t=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,``);if(Ee.test(t))return null}catch{return null}return e}var Oe={},ke,Ae;for(ke=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],Ae=0;Ae<ke.length;Ae++)Oe[ke[Ae]]=`a`;for(Oe[231]=Oe[199]=`c`,Oe[240]=Oe[208]=`d`,ke=[200,201,202,203,233,232,234,235],Ae=0;Ae<ke.length;Ae++)Oe[ke[Ae]]=`e`;for(ke=[207,239,206,238,205,237,204,236],Ae=0;Ae<ke.length;Ae++)Oe[ke[Ae]]=`i`;for(Oe[209]=Oe[241]=`n`,ke=[248,216,339,338,213,245,212,244,211,243,210,242],Ae=0;Ae<ke.length;Ae++)Oe[ke[Ae]]=`o`;for(ke=[220,252,219,251,218,250,217,249],Ae=0;Ae<ke.length;Ae++)Oe[ke[Ae]]=`u`;Oe[376]=Oe[255]=Oe[221]=Oe[253]=`y`;function je(e){return e<be&&(qe[e]&(Re|ze))!==0}function Me(e){for(var t=``,n=-1,r=0;r<e.length;r++){var i=e.charCodeAt(r);if(je(i))i>=U&&i<=W?(n>=0&&(t+=e.slice(n,r),n=-1),t+=String.fromCharCode(i+q)):n<0&&(n=r);else if(i===m||i===E)n>=0&&(t+=e.slice(n,r),n=-1),t+=`-`;else{n>=0&&(t+=e.slice(n,r),n=-1);var a=Oe[i];a&&(t+=a)}}return n>=0&&(t+=e.slice(n)),t}function Ne(e,t,n){return e.startsWith(t,n)}var Pe=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`,`circle`,`ellipse`,`line`,`path`,`polygon`,`polyline`,`rect`,`use`,`stop`,`animate`,`set`]);function Fe(e){let t=e.toLowerCase();if(Pe.has(t))return!0;let n=t.indexOf(`:`);return n===-1?!1:(t=t.slice(n+1),Pe.has(t))}var Ie=1,Le=2,Re=4,ze=8,Be=16,Ve=32,He=64,Ue=1,We=2,Ge=3,Ke=4,qe=(function(){let e=new Uint8Array(128),t;for(e[h]=Ie|Ve,e[_]=Ie|Be,e[ae]=Ie,e[g]=Ie|Be,e[m]=Ie|Ve,t=P;t<=ue;t++)e[t]=Le;for(t=I;t<=M;t++)e[t]=Le;for(t=b;t<=v;t++)e[t]=Le;for(t=me;t<=y;t++)e[t]=Le;for(t=V;t<=H;t++)e[t]=ze;for(t=U;t<=W;t++)e[t]=Re|He;for(t=G;t<=K;t++)e[t]=Re;return e})();(function(){let e=new Uint8Array(128);return e[O]=We,e[b]=Ke,e[k]=e[A]=e[y]=e[D]=Ge,e[v]=e[j]=e[M]=e[N]=e[_]=e[m]=e[P]=Ue,e[R]=e[ee]=e[te]=Ue,e})();var Je=[];function Ye(e){var t=e.indexOf(`\r`),n=e.indexOf(`\0`);if(t===-1&&n===-1)return e;var r=e.length;Je.length=0;var i=0,a=0;for(a=t===-1?n:n===-1||t<n?t:n;a<r;a++){var o=e.charCodeAt(a);o===g?(i<a&&Je.push(e.slice(i,a)),a+1<r&&e.charCodeAt(a+1)===_&&a++,Je.push(`
@@ -44,4 +44,4 @@ import{s as e,t}from"./react-CU_d2d5K.js";import{Lr as n}from"./input-CLYhA7PK.j
44
44
  `),endPos:i.end}:null}function Mn(e,t,n){Dn=0,e=Ye(e),!t.refs&&(t.refs={}),gt(e,t.refs,n);let r=An(e,t,n);return t.refs&&Object.keys(t.refs).length>0?[{type:J.refCollection,refs:t.refs},...r]:r}var Nn=/^\n+/,Pn;try{Pn=u.createElement(`div`).$$typeof}catch{Pn=Symbol.for(`react.transitional.element`)}function Fn(e,t,n){return{$$typeof:Pn,type:e,key:n==null?null:``+n,ref:null,props:t}}var In=typeof u.createContext<`u`?u.createContext(void 0):void 0;function Ln(e,t,n,r,i,a,o,s){switch(e.type){case J.blockQuote:{let i={key:n.key};return e.alert&&(i.className=`markdown-alert-`+a(e.alert.toLowerCase(),Me),e.children.unshift({attrs:{},children:[{type:J.text,text:e.alert}],d:!0,type:J.htmlBlock,tag:`header`})),r(`blockquote`,i,t(e.children,n))}case J.breakLine:return r(`br`,{key:n.key});case J.breakThematic:return r(`hr`,{key:n.key});case J.frontmatter:return s.preserveFrontmatter?r(`pre`,{key:n.key},e.text):null;case J.codeBlock:let h=e.lang?Y(e.lang):``;return r(`pre`,{key:n.key},r(`code`,{...we(e.attrs||{}),className:h?`language-${h} lang-${h}`:``},e.text));case J.codeInline:return r(`code`,{key:n.key},e.text);case J.footnoteReference:return r(`a`,{key:n.key,href:i(e.target,`a`,`href`)||void 0},r(`sup`,{key:n.key},e.text));case J.gfmTask:return r(`input`,{checked:e.completed,key:n.key,readOnly:!0,type:`checkbox`});case J.heading:return r(`h${e.level}`,{id:e.id,key:n.key},t(e.children,n));case J.htmlBlock:{let h=e;if(s.tagfilter&&tt(h.tag)){var c=``;if(h.attrs)for(var l in h.attrs){var d=h.attrs[l];d===!0?c+=` `+l:d!=null&&d!==!1&&(c+=` `+l+`="`+String(d)+`"`)}return r(`span`,{key:n.key},`<`+h.tag+c+`>`)}if(h.a&&h.d){let c=function(e){if((e.type===J.htmlSelfClosing||e.type===J.htmlBlock)&&e.b)return[];if(e.type===J.paragraph){let t=e.children;return t?t.flatMap(c):[]}return e.type===J.text?e.text?.trim()?[e]:[]:e.type===J.htmlBlock&&e.children?[{...e,children:e.children?.flatMap(c)}]:[e]},l=function(e){for(var t=0;t<e.length;t++)e[t].type===J.htmlBlock&&(e[t].d=!1),`children`in e[t]&&e[t].children&&l(e[t].children)},d=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.type===J.paragraph&&r.children)for(var i=r.children,a=0;a<i.length;a++){var o=i[a];if(o.type===J.htmlSelfClosing&&o.b&&o.tag.toLowerCase()===t){var s=e.slice(0,n);a>0&&s.push({type:J.paragraph,children:i.slice(0,a)});var c=[];if(a+1<i.length){var l=i.slice(a+1);l=l.filter(function(e){return!(e.type===J.htmlSelfClosing&&e.b)}),l.length>0&&(c=l)}return c=c.concat(e.slice(n+1)),{found:!0,beforeClose:s,afterClose:c}}}if((r.type===J.htmlSelfClosing||r.type===J.htmlBlock)&&r.b&&r.tag.toLowerCase()===t)return{found:!0,beforeClose:e.slice(0,n),afterClose:e.slice(n+1)}}return{found:!1,beforeClose:e,afterClose:[]}},g=h.tag.toLowerCase(),_=ft(g),v=h.children&&h.children.length>0,y=/<[a-z][^>]{0,100}>/i.test(h.a);if(_){let t=h.a.replace(RegExp(`\\s*</`+g+`>\\s*$`,`i`),``);return s.tagfilter&&(t=rt(t)),y?r(e.tag,{key:n.key,...we(e.attrs||{}),dangerouslySetInnerHTML:{__html:t}}):r(e.tag,{key:n.key,...we(e.attrs||{})},t)}let b=RegExp(`^<${h.tag}(\\s|>)`,`i`).test(h.a);if(v&&!b&&s.tagfilter&&nt(h.a))return r(e.tag,{key:n.key,...we(e.attrs||{})},t(h.children,n));if(pt(h.a)){let t=s.tagfilter?rt(h.a):h.a;return r(e.tag,{key:n.key,...we(e.attrs||{}),dangerouslySetInnerHTML:{__html:t}})}let x={slugify:e=>a(e,Me),sanitizer:i,tagfilter:!0},S=h.a.replace(/>\s+</g,`><`).replace(/\n+/g,` `).trim();if(RegExp(`^<${h.tag}(\\s[^>]*)?>(\\s*</${h.tag}>)?$`,`i`).test(S))return h.children&&h.children.length>0?r(e.tag,{key:n.key,...we(e.attrs||{})},t(h.children,n)):r(e.tag,{key:n.key,...we(e.attrs||{})});let C=Mn(S,{inline:!1,refs:o,inHTML:!1},x);l(C);let w=h.tag.toLowerCase(),T=`</`+w+`>`,E=RegExp(`^<${h.tag}(\\s|>)`,`i`).test(S),D=S.toLowerCase().trimEnd().endsWith(T),O=E&&D;if(O&&v)return r(e.tag,{key:n.key,...we(e.attrs||{})},t(h.children,n));if(O)return t(C.flatMap(c),n);var f=d(C,w);if(f.found&&f.afterClose.length>0){var p=f.beforeClose.flatMap(c),m=f.afterClose.flatMap(c);return Fn(u.Fragment,{children:[r(e.tag,{key:n.key,...we(e.attrs||{})},t(p,n)),t(m,n)]},null)}return r(e.tag,{key:n.key,...we(e.attrs||{})},t(C.flatMap(c),n))}return r(e.tag,{key:n.key,...we(e.attrs||{})},e.children?t(e.children,n):``)}case J.htmlSelfClosing:{let t=e;if(s.tagfilter&&tt(t.tag)){var c=``;if(t.attrs)for(var l in t.attrs){var d=t.attrs[l];d===!0?c+=` `+l:d!=null&&d!==!1&&(c+=` `+l+`="`+String(d)+`"`)}return r(`span`,{key:n.key},`<`+t.tag+c+` />`)}return r(e.tag,{key:n.key,...we(e.attrs||{})})}case J.image:{let t=e.target==null?null:i(e.target,`img`,`src`);return r(`img`,{key:n.key,alt:e.alt&&e.alt.length>0?e.alt:void 0,title:e.title||void 0,src:t||void 0})}case J.link:{let i={key:n.key};return e.target!=null&&(i.href=Ze(e.target)),e.title&&(i.title=e.title),r(`a`,i,t(e.children,n))}case J.table:{let i=e;return r(`table`,{key:n.key},r(`thead`,null,r(`tr`,null,i.header.map(function(e,a){return r(`th`,{key:a,style:i.align[a]==null?{}:{textAlign:i.align[a]}},t(e,n))}))),r(`tbody`,null,i.cells.map(function(e,a){return r(`tr`,{key:a},e.map(function(e,a){return r(`td`,{key:a,style:i.align[a]==null?{}:{textAlign:i.align[a]}},t(e,n))}))})))}case J.text:return e.text;case J.textFormatted:return r(e.tag,{key:n.key},t(e.children,n));case J.orderedList:case J.unorderedList:return r(e.type===J.orderedList?`ol`:`ul`,{key:n.key,start:e.type===J.orderedList?e.start:void 0},e.items.map(function(e,i){return r(`li`,{key:i},t(e,n))}));case J.paragraph:return r(`p`,{key:n.key},t(e.children,n));case J.ref:return null;default:return null}}var Rn=(e,t,n,r,i,a)=>{var o=e=>e.map(function(e){return`text`in e?e.text:``}),s=(c,l={})=>{var u=(l.renderDepth||0)+1;if(u>2500)return o(c);l.renderDepth=u;for(var d=l.key,f=[],p=!1,m=0;m<c.length;m++){l.key=m;var h=e?e(Ln.bind(null,c[m],s,l,t,n,r,i,a),c[m],s,l):Ln(c[m],s,l,t,n,r,i,a),g=typeof h==`string`;if(g&&p)f[f.length-1]+=h;else if(h!==null)if(Array.isArray(h))for(var _=0;_<h.length;_++)f.push(h[_]);else f.push(h);p=g}return l.key=d,l.renderDepth=u-1,f};return s},zn=(e,t)=>{let n=Xe(t,e,void 0);return n?typeof n==`function`||typeof n==`object`&&`render`in n?n:Xe(t,`${e}.component`,e):e};function Bn(e,t){let n={...t||{}};n.overrides=n.overrides||{};let r=n.slugify||Me,i=n.sanitizer||De,a=n.createElement,o=n.overrides&&Object.keys(n.overrides).length>0,s=e=>Vn(e,{...n,wrapper:null});function c(e,t,...r){var i=t||{};for(var c in i){var l=i[c];if(typeof l==`string`&&l.length>0&&l.charCodeAt(0)===j&&(it.test(l)||at.test(l)||jn(l,0))){var u=s(l.trim());i[c]=c===`innerHTML`&&Array.isArray(u)?u[0]:u}}var d=e;if(o){var f=Xe(n.overrides,e+`.props`,{});d=zn(e,n.overrides),i={...i,...f,className:Qe(i.className,f.className)||void 0}}if(!a){var p=i.key;return p!=null&&delete i.key,r.length===1?i.children=r[0]:r.length>1&&(i.children=r),Fn(d,i,p)}return a(d,i,...r)}let l={...n,slugify:e=>r(e,Me),sanitizer:i,tagfilter:n.tagfilter!==!1},u=e[0]&&e[0].type===J.refCollection?e[0].refs:{},d=Rn(n.renderRule,c,i,r,u,n),f=d(e,{inline:n.forceInline,refs:u}),p=[];for(let e in u)e.charCodeAt(0)===x&&p.push({identifier:e,footnote:u[e].target});if(p.length&&f.push(c(`footer`,{key:`footer`},p.map(function(e){let t=e.identifier.charCodeAt(0)===x?e.identifier.slice(1):e.identifier,n=Mn(e.footnote,{inline:!0,refs:u},l);return c(`div`,{id:r(t,Me),key:e.identifier},t+`: `,d(n,{inline:!0,refs:u}))}))),n.wrapper===null)return f;let m=n.wrapper||(n.forceInline?`span`:`div`),h;if(f.length>1||n.forceWrapper)h=f;else return f.length===1?f[0]:null;var g=n.wrapperProps?{...n.wrapperProps}:{};return g.children=h,Fn(m,g,`outer`)}function Vn(e=``,t={}){let n={...t||{}};n.overrides=n.overrides||{};let r=n.slugify||Me,i=n.sanitizer||De;function a(e){let t=n.forceInline||!n.forceBlock&&!Te.test(e),a={...n,slugify:e=>r(e,Me),sanitizer:i,tagfilter:n.tagfilter!==!1};t||gt(e,o,a);let s=e;if(!t){let e=s.length;for(;e>0&&(s[e-1]===`
45
45
  `||s[e-1]===`\r`);)e--;s=s.slice(0,e),s=`${s.replace(Nn,``)}
46
46
 
47
- `}if(n.optimizeForStreaming){let e=s.lastIndexOf(`<`);e!==-1&&s.slice(e).indexOf(`>`)===-1&&(s=s.slice(0,e))}return Bn(Mn(t?e:s,{inline:t,refs:o},a),{...a,forceInline:t})}let o={};return a(e)}var Hn=({children:e,options:t,...n})=>{if(!(typeof u.useContext<`u`)){let r={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...n}};return Vn(e??``,r)}let r=u.useContext(In),i=u.useMemo(()=>({...r,...t,overrides:{...r?.overrides,...t?.overrides},wrapperProps:{...r?.wrapperProps,...t?.wrapperProps,...n}}),[r,t,n]),a=e??``;return u.useMemo(()=>Vn(a,i),[a,i])},$=r(),Un=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,$.jsx)(`table`,{ref:r,className:n(`w-full caption-bottom text-sm`,e),...t})}));Un.displayName=`Table`;var Wn=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`thead`,{ref:r,className:n(`[&_tr]:border-b`,e),...t}));Wn.displayName=`TableHeader`;var Gn=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`tbody`,{ref:r,className:n(`[&_tr:last-child]:border-0`,e),...t}));Gn.displayName=`TableBody`;var Kn=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`tr`,{ref:r,className:n(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,e),...t}));Kn.displayName=`TableRow`;var qn=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`th`,{ref:r,className:n(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,e),...t}));qn.displayName=`TableHead`;var Jn=u.forwardRef(({className:e,...t},r)=>(0,$.jsx)(`td`,{ref:r,className:n(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,e),...t}));Jn.displayName=`TableCell`;function Yn({children:e,className:t}){let n=`text`;if(t){let e=t.match(/(?:lang(?:uage)?-)(\w+)/);n=e?e[1]:t.replace(/^(lang-|language-)\s*/,``).trim()}let[r,i]=(0,u.useState)(!1),a=String(e).trim();return(0,$.jsxs)(`div`,{className:`my-4 relative group/code bg-muted rounded-md p-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between mb-2 absolute top-0 left-0 w-full`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-mono text-muted-foreground/50 bg-transparent px-2 py-0 rounded`,children:n}),(0,$.jsx)(`button`,{className:`opacity-0 group-hover/code:opacity-100 transition-opacity text-muted-foreground hover:text-foreground text-xs flex items-center gap-1 px-2 py-1 rounded hover:bg-muted`,onClick:async()=>{await c(a),i(!0),setTimeout(()=>i(!1),2e3)},title:`Copy code`,children:r?(0,$.jsx)(s,{className:`h-3.5 w-3.5`}):(0,$.jsx)(o,{className:`h-3.5 w-3.5`})})]}),(0,$.jsx)(`pre`,{className:`text-sm m-0 p-4 pt-8 rounded-lg font-mono overflow-x-auto`,style:{background:`var(--muted)`},children:(0,$.jsx)(`code`,{children:a})})]})}function Xn({children:e}){return(0,$.jsx)(`code`,{className:`bg-muted px-1.5 py-0.5 rounded text-sm font-mono`,children:e})}function Zn({children:e,className:t}){return t?(0,$.jsx)(Yn,{className:t,children:e}):(0,$.jsx)(Xn,{children:e})}function Qn({children:e}){if(typeof e==`string`){let t=e.match(/^\[([ xX])\]\s*(.*)/);if(t){let e=t[1].toLowerCase()===`x`,n=t[2];return(0,$.jsxs)(`li`,{className:`text-foreground flex items-center gap-2`,children:[(0,$.jsx)(l,{checked:e,disabled:!0}),(0,$.jsx)(`span`,{children:n})]})}}if(Array.isArray(e)&&e.length>0){let t=e[0];if(typeof t==`string`){let n=t.match(/^\[([ xX])\]\s*(.*)/);if(n){let t=n[1].toLowerCase()===`x`,r=n[2];return(0,$.jsxs)(`li`,{className:`text-foreground flex items-center gap-2`,children:[(0,$.jsx)(l,{checked:t,disabled:!0}),(0,$.jsxs)(`span`,{children:[r,e.slice(1)]})]})}}}return(0,$.jsx)(`li`,{className:`text-foreground`,children:e})}function $n({content:e,className:t}){let n=(0,$.jsx)(Hn,{options:{overrides:{code:Zn,pre:({children:e})=>(0,$.jsx)($.Fragment,{children:e}),h1:({children:e})=>(0,$.jsx)(`h1`,{className:`text-xl font-bold text-foreground mb-2 mt-4`,children:e}),h2:({children:e})=>(0,$.jsx)(`h2`,{className:`text-lg font-bold text-foreground mb-2 mt-4`,children:e}),h3:({children:e})=>(0,$.jsx)(`h3`,{className:`text-base font-bold text-foreground mb-2 mt-4`,children:e}),h4:({children:e})=>(0,$.jsx)(`h4`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),h5:({children:e})=>(0,$.jsx)(`h5`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),h6:({children:e})=>(0,$.jsx)(`h6`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),p:({children:e})=>(0,$.jsx)(`p`,{className:`text-foreground mb-2 leading-relaxed`,children:e}),ul:({children:e})=>(0,$.jsx)(`ul`,{className:`list-disc list-outside pl-6 mb-3 space-y-1`,children:e}),ol:({children:e})=>(0,$.jsx)(`ol`,{className:`list-decimal list-outside pl-6 mb-3 space-y-1`,children:e}),li:Qn,table:({children:e})=>(0,$.jsx)(`div`,{className:`my-4`,children:(0,$.jsx)(Un,{children:e})}),thead:({children:e})=>(0,$.jsx)(Wn,{children:e}),tbody:({children:e})=>(0,$.jsx)(Gn,{children:e}),tr:({children:e})=>(0,$.jsx)(Kn,{children:e}),th:({children:e})=>(0,$.jsx)(qn,{children:e}),td:({children:e})=>(0,$.jsx)(Jn,{children:e}),blockquote:({children:e})=>(0,$.jsx)(`blockquote`,{className:`border-l-4 border-muted-foreground pl-4 italic text-muted-foreground mb-3`,children:e}),a:({children:e,href:t})=>(0,$.jsx)(`a`,{href:t,className:`text-primary hover:underline`,target:`_blank`,rel:`noopener noreferrer`,children:e}),strong:({children:e})=>(0,$.jsx)(`strong`,{className:`font-semibold text-foreground`,children:e}),em:({children:e})=>(0,$.jsx)(`em`,{className:`italic text-foreground`,children:e}),img:({src:e,alt:t})=>(0,$.jsx)(`img`,{src:e,alt:t||``,className:`max-w-full max-h-[500px] object-contain rounded-lg my-4 border border-border`,loading:`lazy`}),hr:()=>(0,$.jsx)(`hr`,{className:`my-4 border-t border-border`})}},children:e});return t?(0,$.jsx)(`div`,{className:t,children:n}):n}export{d as n,$n as t};
47
+ `}if(n.optimizeForStreaming){let e=s.lastIndexOf(`<`);e!==-1&&s.slice(e).indexOf(`>`)===-1&&(s=s.slice(0,e))}return Bn(Mn(t?e:s,{inline:t,refs:o},a),{...a,forceInline:t})}let o={};return a(e)}var Hn=({children:e,options:t,...n})=>{if(!(typeof u.useContext<`u`)){let r={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...n}};return Vn(e??``,r)}let r=u.useContext(In),i=u.useMemo(()=>({...r,...t,overrides:{...r?.overrides,...t?.overrides},wrapperProps:{...r?.wrapperProps,...t?.wrapperProps,...n}}),[r,t,n]),a=e??``;return u.useMemo(()=>Vn(a,i),[a,i])},$=n(),Un=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,$.jsx)(`table`,{ref:n,className:r(`w-full caption-bottom text-sm`,e),...t})}));Un.displayName=`Table`;var Wn=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`thead`,{ref:n,className:r(`[&_tr]:border-b`,e),...t}));Wn.displayName=`TableHeader`;var Gn=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`tbody`,{ref:n,className:r(`[&_tr:last-child]:border-0`,e),...t}));Gn.displayName=`TableBody`;var Kn=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`tr`,{ref:n,className:r(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,e),...t}));Kn.displayName=`TableRow`;var qn=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`th`,{ref:n,className:r(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,e),...t}));qn.displayName=`TableHead`;var Jn=u.forwardRef(({className:e,...t},n)=>(0,$.jsx)(`td`,{ref:n,className:r(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,e),...t}));Jn.displayName=`TableCell`;function Yn({children:e,className:t}){let n=`text`;if(t){let e=t.match(/(?:lang(?:uage)?-)(\w+)/);n=e?e[1]:t.replace(/^(lang-|language-)\s*/,``).trim()}let[r,i]=(0,u.useState)(!1),a=String(e).trim();return(0,$.jsxs)(`div`,{className:`my-4 relative group/code bg-muted rounded-md p-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between mb-2 absolute top-0 left-0 w-full`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-mono text-muted-foreground/50 bg-transparent px-2 py-0 rounded`,children:n}),(0,$.jsx)(`button`,{className:`opacity-0 group-hover/code:opacity-100 transition-opacity text-muted-foreground hover:text-foreground text-xs flex items-center gap-1 px-2 py-1 rounded hover:bg-muted`,onClick:async()=>{await s(a),i(!0),setTimeout(()=>i(!1),2e3)},title:`Copy code`,children:r?(0,$.jsx)(o,{className:`h-3.5 w-3.5`}):(0,$.jsx)(c,{className:`h-3.5 w-3.5`})})]}),(0,$.jsx)(`pre`,{className:`text-sm m-0 p-4 pt-8 rounded-lg font-mono overflow-x-auto`,style:{background:`var(--muted)`},children:(0,$.jsx)(`code`,{children:a})})]})}function Xn({children:e}){return(0,$.jsx)(`code`,{className:`bg-muted px-1.5 py-0.5 rounded text-sm font-mono`,children:e})}function Zn({children:e,className:t}){return t?(0,$.jsx)(Yn,{className:t,children:e}):(0,$.jsx)(Xn,{children:e})}function Qn({children:e}){if(typeof e==`string`){let t=e.match(/^\[([ xX])\]\s*(.*)/);if(t){let e=t[1].toLowerCase()===`x`,n=t[2];return(0,$.jsxs)(`li`,{className:`text-foreground flex items-center gap-2`,children:[(0,$.jsx)(l,{checked:e,disabled:!0}),(0,$.jsx)(`span`,{children:n})]})}}if(Array.isArray(e)&&e.length>0){let t=e[0];if(typeof t==`string`){let n=t.match(/^\[([ xX])\]\s*(.*)/);if(n){let t=n[1].toLowerCase()===`x`,r=n[2];return(0,$.jsxs)(`li`,{className:`text-foreground flex items-center gap-2`,children:[(0,$.jsx)(l,{checked:t,disabled:!0}),(0,$.jsxs)(`span`,{children:[r,e.slice(1)]})]})}}}return(0,$.jsx)(`li`,{className:`text-foreground`,children:e})}function $n({content:e,className:t}){let n=(0,$.jsx)(Hn,{options:{overrides:{code:Zn,pre:({children:e})=>(0,$.jsx)($.Fragment,{children:e}),h1:({children:e})=>(0,$.jsx)(`h1`,{className:`text-xl font-bold text-foreground mb-2 mt-4`,children:e}),h2:({children:e})=>(0,$.jsx)(`h2`,{className:`text-lg font-bold text-foreground mb-2 mt-4`,children:e}),h3:({children:e})=>(0,$.jsx)(`h3`,{className:`text-base font-bold text-foreground mb-2 mt-4`,children:e}),h4:({children:e})=>(0,$.jsx)(`h4`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),h5:({children:e})=>(0,$.jsx)(`h5`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),h6:({children:e})=>(0,$.jsx)(`h6`,{className:`text-sm font-bold text-foreground mb-2 mt-4`,children:e}),p:({children:e})=>(0,$.jsx)(`p`,{className:`text-foreground mb-2 leading-relaxed`,children:e}),ul:({children:e})=>(0,$.jsx)(`ul`,{className:`list-disc list-outside pl-6 mb-3 space-y-1`,children:e}),ol:({children:e})=>(0,$.jsx)(`ol`,{className:`list-decimal list-outside pl-6 mb-3 space-y-1`,children:e}),li:Qn,table:({children:e})=>(0,$.jsx)(`div`,{className:`my-4`,children:(0,$.jsx)(Un,{children:e})}),thead:({children:e})=>(0,$.jsx)(Wn,{children:e}),tbody:({children:e})=>(0,$.jsx)(Gn,{children:e}),tr:({children:e})=>(0,$.jsx)(Kn,{children:e}),th:({children:e})=>(0,$.jsx)(qn,{children:e}),td:({children:e})=>(0,$.jsx)(Jn,{children:e}),blockquote:({children:e})=>(0,$.jsx)(`blockquote`,{className:`border-l-4 border-muted-foreground pl-4 italic text-muted-foreground mb-3`,children:e}),a:({children:e,href:t})=>(0,$.jsx)(`a`,{href:t,className:`text-primary hover:underline`,target:`_blank`,rel:`noopener noreferrer`,children:e}),strong:({children:e})=>(0,$.jsx)(`strong`,{className:`font-semibold text-foreground`,children:e}),em:({children:e})=>(0,$.jsx)(`em`,{className:`italic text-foreground`,children:e}),img:({src:e,alt:t})=>(0,$.jsx)(`img`,{src:e,alt:t||``,className:`max-w-full max-h-[500px] object-contain rounded-lg my-4 border border-border`,loading:`lazy`}),hr:()=>(0,$.jsx)(`hr`,{className:`my-4 border-t border-border`})}},children:e});return t?(0,$.jsx)(`div`,{className:t,children:n}):n}export{d as n,$n as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./createLucideIcon-BEHeJH0M.js";import{H as t}from"./button-C8Xa2k4x.js";import{F as n,St as r}from"./index-BMaSsizY.js";import{t as i}from"./useViewHostProps-DZqOwiAm.js";import{t as a}from"./WidgetWrapper-cv_BM1bY.js";var o=e();function s({serverId:e,viewId:s,toolName:c,resourceUri:l,toolInput:u,toolOutput:d,toolMetadata:f,readResource:p,customProps:m,displayMode:h,onDisplayModeChange:g,onSendFollowUp:_,onWidgetHeightChange:v,partialToolInput:y,cancelled:b,noWrapper:x=!1,className:S}){let C=i({serverId:e,viewId:s,resourceUri:l,toolName:c,toolInput:u,toolOutput:d,toolMetadata:f,readResource:p,displayMode:h,onDisplayModeChange:g});if(!C){let e=(0,o.jsx)(n,{className:`size-5`});return x?(0,o.jsx)(`div`,{className:`flex h-full w-full min-h-0 flex-1 items-center justify-center`,children:e}):(0,o.jsx)(a,{className:`w-full h-full min-h-[240px]`,children:e})}let w=t(h===`inline`?`w-full h-full flex items-center justify-center relative p-4 min-h-0`:`w-full h-full relative p-4`,S),T=m?JSON.stringify(m):`no-custom-props`,E=(0,o.jsx)(r,{viewId:s,toolName:c,toolInput:u,toolOutput:d,customProps:m,partialToolInput:y,cancelled:b,className:w,onMessage:e=>{e.length>0&&_&&_(e)},onInlineHeightChange:h===`inline`?v:void 0,...C},T);return x?(0,o.jsx)(`div`,{className:`flex h-full w-full min-h-0 flex-1 flex-col`,children:E}):(0,o.jsx)(a,{className:`w-full h-full min-h-[240px]`,children:E})}export{s as t};
@@ -1 +1 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{sr as n}from"./input-CLYhA7PK.js";import{t as r}from"./jsx-runtime-Cjj9sGSy.js";import{t as i}from"./brush--0LobUi4.js";import{t as a}from"./code-tME-5H6D.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./shared-BF0rJNdE.js";import{t as f}from"./maximize-_O55kFcr.js";import{Bt as p,Jt as m,Kt as h,b as g,bt as _,gn as v,hn as y,mn as b,vn as x,yn as S,yt as C}from"./index-TQ5V7cM9.js";var w=e(t(),1),T=r();function E({notifications:e,selectedNotification:t,onNotificationSelect:n,focusedIndex:r,formatRelativeTime:i}){return e.length===0?(0,T.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:(0,T.jsx)(p,{vertical:!0,noBorder:!0,message:`No notifications yet`})}):(0,T.jsx)(`div`,{children:e.map((e,a)=>(0,T.jsx)(u,{id:`notification-${e.id}`,isSelected:t?.id===e.id,isFocused:r===a,title:(0,T.jsxs)(`span`,{className:`flex items-center gap-3`,children:[e.method,!e.read&&(0,T.jsx)(`span`,{className:`size-1.5 block rounded-full bg-orange-500`})]}),description:(()=>{let t=i(e.timestamp),n=e.params&&Object.keys(e.params).length>0?Object.keys(e.params).length:0;return t+(n>0?` | ${n} param${n>1?`s`:``}`:``)})(),onClick:()=>n(e)},e.id))})}function D({notification:e,previewMode:t,onTogglePreview:r,onCopy:o,onDownload:s,onFullscreen:c,isCopied:l=!1,onClose:u}){return e?(0,T.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,T.jsxs)(`div`,{className:`flex-shrink-0 px-4 py-3 border-b border-gray-200 dark:border-zinc-700 flex items-center justify-between`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,T.jsx)(v,{className:`h-3 w-3 text-gray-400`}),(0,T.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:new Date(e.timestamp).toLocaleTimeString()})]}),(0,T.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:e.formatRelativeTime(e.timestamp)})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,T.jsxs)(n,{variant:`ghost`,size:`sm`,onClick:r,className:t?``:`text-purple-600 dark:text-purple-400`,children:[t?(0,T.jsx)(a,{className:`h-4 w-4 mr-1`}):(0,T.jsx)(i,{className:`h-4 w-4 mr-1`}),t?`JSON`:`Formatted`]}),(0,T.jsx)(n,{variant:`ghost`,size:`sm`,onClick:o,children:l?(0,T.jsx)(x,{className:`h-4 w-4`}):(0,T.jsx)(y,{className:`h-4 w-4`})}),(0,T.jsx)(n,{variant:`ghost`,size:`sm`,onClick:s,children:(0,T.jsx)(b,{className:`h-4 w-4`})}),(0,T.jsx)(n,{variant:`ghost`,size:`sm`,onClick:c,children:(0,T.jsx)(f,{className:`h-4 w-4`})}),u&&(0,T.jsx)(n,{variant:`ghost`,size:`sm`,onClick:u,children:(0,T.jsx)(h,{className:`h-4 w-4`})})]})]}),(0,T.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,T.jsx)(`div`,{className:`px-4 pt-4`,children:(0,T.jsx)(g,{data:{method:e.method,timestamp:e.timestamp,read:e.read,params:e.params},filename:`notification-${e.method.replace(/[^a-zA-Z0-9]/g,`-`)}-${Date.now()}.json`})})})]}):(0,T.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,T.jsx)(S,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,T.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Select a notification to view details`})]})}function O({notifications:e,unreadCount:t,markNotificationRead:n,markAllNotificationsRead:r,clearNotifications:i,serverId:a,isConnected:u}){let[f,p]=(0,w.useState)(null),[h,g]=(0,w.useState)(``),[v,y]=(0,w.useState)(-1),[b,x]=(0,w.useState)(!0),[O,k]=(0,w.useState)(!1),[A,j]=(0,w.useState)(!0),[M,N]=(0,w.useState)(!1),P=(0,w.useRef)(null),F=(0,w.useRef)(null),I=(0,w.useRef)(null),L=(0,w.useRef)(!1);(0,w.useEffect)(()=>{b&&e.length>0&&P.current&&!L.current&&(P.current.scrollTop=0)},[e.length,b]),(0,w.useEffect)(()=>{let e=P.current;if(!e)return;let t=()=>{e.scrollTop>0&&(L.current=!0,x(!1))};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[]),(0,w.useEffect)(()=>{e.length===0&&(L.current=!1,x(!0))},[e.length]),(0,w.useEffect)(()=>{f&&!f.read&&n(f.id)},[f,n]),(0,w.useEffect)(()=>{O&&I.current&&I.current.focus()},[O]);let R=(0,w.useCallback)(()=>{h.trim()||k(!1)},[h]),z=(0,w.useMemo)(()=>{if(!h.trim())return e;let t=h.toLowerCase();return e.filter(e=>e.method.toLowerCase().includes(t)||JSON.stringify(e.params||{}).toLowerCase().includes(t))},[e,h]);(0,w.useEffect)(()=>{y(-1)},[h]),(0,w.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=z;if(e.key===`ArrowDown`)e.preventDefault(),y(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),y(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&v>=0){e.preventDefault();let t=z[v];t&&B(t)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[v,z]),(0,w.useEffect)(()=>{if(v>=0){let e=`notification-${z[v]?.id}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[v,z]);let B=(0,w.useCallback)(e=>{p(e)},[]),V=(0,w.useCallback)(()=>{window.confirm(`Are you sure you want to clear all notifications? This cannot be undone.`)&&(i(),p(null))},[i]),H=(0,w.useCallback)(async()=>{if(f)try{await C(JSON.stringify({method:f.method,timestamp:f.timestamp,read:f.read,params:f.params},null,2)),N(!0),setTimeout(()=>N(!1),2e3)}catch(e){console.error(`[NotificationsTab] Failed to copy notification:`,e)}},[f]),U=(0,w.useCallback)(()=>{if(f)try{let e=new globalThis.Blob([JSON.stringify({method:f.method,timestamp:f.timestamp,read:f.read,params:f.params},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`notification-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}catch(e){console.error(`[NotificationsTab] Failed to download notification:`,e)}},[f]),W=(0,w.useCallback)(async()=>{if(F.current)try{document.fullscreenElement?await document.exitFullscreen():await F.current.requestFullscreen()}catch(e){console.error(`[NotificationsTab] Failed to toggle fullscreen:`,e)}},[]),G=f?{method:f.method,params:f.params,timestamp:f.timestamp,read:f.read,formatRelativeTime:_}:null;return u?(0,T.jsxs)(l,{orientation:`horizontal`,className:`h-full`,children:[(0,T.jsx)(o,{defaultSize:40,minSize:30,children:(0,T.jsx)(l,{orientation:`vertical`,className:`h-full border-r dark:border-zinc-700`,children:(0,T.jsx)(o,{defaultSize:75,minSize:30,className:`h-full overflow-hidden`,children:(0,T.jsx)(c,{scrollRef:P,children:t=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(d,{isScrolled:t,title:`Notifications`,icon:S,count:z.length,isSearchExpanded:O,searchQuery:h,searchPlaceholder:`Search notifications...`,onSearchExpand:()=>k(!0),onSearchChange:g,onSearchBlur:R,bulkAction:{icon:m,label:`Clear all`,onClick:V,disabled:e.length===0},searchInputRef:I}),(0,T.jsx)(E,{notifications:z,selectedNotification:f,onNotificationSelect:B,focusedIndex:v,formatRelativeTime:_})]})})})})}),(0,T.jsx)(s,{}),(0,T.jsx)(o,{defaultSize:60,minSize:40,children:(0,T.jsx)(`div`,{ref:F,className:`h-full bg-white dark:bg-zinc-900`,children:(0,T.jsx)(D,{notification:G,previewMode:A,onTogglePreview:()=>j(!A),onCopy:H,onDownload:U,onFullscreen:W,onClose:()=>p(null),isCopied:M})})})]}):(0,T.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,T.jsx)(S,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,T.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Not connected to server`})]})}export{O as NotificationsTab};
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{t as r}from"./button-C8Xa2k4x.js";import{t as i}from"./brush-DX0UZ_pI.js";import{t as a}from"./code-B14rVdNt.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./shared-CFs9CZfB.js";import{t as f}from"./maximize-CJNgRe6S.js";import{Cn as p,Qt as m,Sn as h,Wt as g,Xt as _,b as v,bn as y,bt as b,vn as x,xt as S,yn as C}from"./index-BMaSsizY.js";var w=e(t(),1),T=n();function E({notifications:e,selectedNotification:t,onNotificationSelect:n,focusedIndex:r,formatRelativeTime:i}){return e.length===0?(0,T.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:(0,T.jsx)(g,{vertical:!0,noBorder:!0,message:`No notifications yet`})}):(0,T.jsx)(`div`,{children:e.map((e,a)=>(0,T.jsx)(u,{id:`notification-${e.id}`,isSelected:t?.id===e.id,isFocused:r===a,title:(0,T.jsxs)(`span`,{className:`flex items-center gap-3`,children:[e.method,!e.read&&(0,T.jsx)(`span`,{className:`size-1.5 block rounded-full bg-orange-500`})]}),description:(()=>{let t=i(e.timestamp),n=e.params&&Object.keys(e.params).length>0?Object.keys(e.params).length:0;return t+(n>0?` | ${n} param${n>1?`s`:``}`:``)})(),onClick:()=>n(e)},e.id))})}function D({notification:e,previewMode:t,onTogglePreview:n,onCopy:o,onDownload:s,onFullscreen:c,isCopied:l=!1,onClose:u}){return e?(0,T.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,T.jsxs)(`div`,{className:`flex-shrink-0 px-4 py-3 border-b border-gray-200 dark:border-zinc-700 flex items-center justify-between`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,T.jsx)(y,{className:`h-3 w-3 text-gray-400`}),(0,T.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:new Date(e.timestamp).toLocaleTimeString()})]}),(0,T.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:e.formatRelativeTime(e.timestamp)})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,T.jsxs)(r,{variant:`ghost`,size:`sm`,onClick:n,className:t?``:`text-purple-600 dark:text-purple-400`,children:[t?(0,T.jsx)(a,{className:`h-4 w-4 mr-1`}):(0,T.jsx)(i,{className:`h-4 w-4 mr-1`}),t?`JSON`:`Formatted`]}),(0,T.jsx)(r,{variant:`ghost`,size:`sm`,onClick:o,children:l?(0,T.jsx)(h,{className:`h-4 w-4`}):(0,T.jsx)(C,{className:`h-4 w-4`})}),(0,T.jsx)(r,{variant:`ghost`,size:`sm`,onClick:s,children:(0,T.jsx)(x,{className:`h-4 w-4`})}),(0,T.jsx)(r,{variant:`ghost`,size:`sm`,onClick:c,children:(0,T.jsx)(f,{className:`h-4 w-4`})}),u&&(0,T.jsx)(r,{variant:`ghost`,size:`sm`,onClick:u,children:(0,T.jsx)(_,{className:`h-4 w-4`})})]})]}),(0,T.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,T.jsx)(`div`,{className:`px-4 pt-4`,children:(0,T.jsx)(v,{data:{method:e.method,timestamp:e.timestamp,read:e.read,params:e.params},filename:`notification-${e.method.replace(/[^a-zA-Z0-9]/g,`-`)}-${Date.now()}.json`})})})]}):(0,T.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,T.jsx)(p,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,T.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Select a notification to view details`})]})}function O({notifications:e,unreadCount:t,markNotificationRead:n,markAllNotificationsRead:r,clearNotifications:i,serverId:a,isConnected:u}){let[f,h]=(0,w.useState)(null),[g,_]=(0,w.useState)(``),[v,y]=(0,w.useState)(-1),[x,C]=(0,w.useState)(!0),[O,k]=(0,w.useState)(!1),[A,j]=(0,w.useState)(!0),[M,N]=(0,w.useState)(!1),P=(0,w.useRef)(null),F=(0,w.useRef)(null),I=(0,w.useRef)(null),L=(0,w.useRef)(!1);(0,w.useEffect)(()=>{x&&e.length>0&&P.current&&!L.current&&(P.current.scrollTop=0)},[e.length,x]),(0,w.useEffect)(()=>{let e=P.current;if(!e)return;let t=()=>{e.scrollTop>0&&(L.current=!0,C(!1))};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[]),(0,w.useEffect)(()=>{e.length===0&&(L.current=!1,C(!0))},[e.length]),(0,w.useEffect)(()=>{f&&!f.read&&n(f.id)},[f,n]),(0,w.useEffect)(()=>{O&&I.current&&I.current.focus()},[O]);let R=(0,w.useCallback)(()=>{g.trim()||k(!1)},[g]),z=(0,w.useMemo)(()=>{if(!g.trim())return e;let t=g.toLowerCase();return e.filter(e=>e.method.toLowerCase().includes(t)||JSON.stringify(e.params||{}).toLowerCase().includes(t))},[e,g]);(0,w.useEffect)(()=>{y(-1)},[g]),(0,w.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=z;if(e.key===`ArrowDown`)e.preventDefault(),y(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),y(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&v>=0){e.preventDefault();let t=z[v];t&&B(t)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[v,z]),(0,w.useEffect)(()=>{if(v>=0){let e=`notification-${z[v]?.id}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[v,z]);let B=(0,w.useCallback)(e=>{h(e)},[]),V=(0,w.useCallback)(()=>{window.confirm(`Are you sure you want to clear all notifications? This cannot be undone.`)&&(i(),h(null))},[i]),H=(0,w.useCallback)(async()=>{if(f)try{await b(JSON.stringify({method:f.method,timestamp:f.timestamp,read:f.read,params:f.params},null,2)),N(!0),setTimeout(()=>N(!1),2e3)}catch(e){console.error(`[NotificationsTab] Failed to copy notification:`,e)}},[f]),U=(0,w.useCallback)(()=>{if(f)try{let e=new globalThis.Blob([JSON.stringify({method:f.method,timestamp:f.timestamp,read:f.read,params:f.params},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`notification-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}catch(e){console.error(`[NotificationsTab] Failed to download notification:`,e)}},[f]),W=(0,w.useCallback)(async()=>{if(F.current)try{document.fullscreenElement?await document.exitFullscreen():await F.current.requestFullscreen()}catch(e){console.error(`[NotificationsTab] Failed to toggle fullscreen:`,e)}},[]),G=f?{method:f.method,params:f.params,timestamp:f.timestamp,read:f.read,formatRelativeTime:S}:null;return u?(0,T.jsxs)(l,{orientation:`horizontal`,className:`h-full`,children:[(0,T.jsx)(o,{defaultSize:40,minSize:30,children:(0,T.jsx)(l,{orientation:`vertical`,className:`h-full border-r dark:border-zinc-700`,children:(0,T.jsx)(o,{defaultSize:75,minSize:30,className:`h-full overflow-hidden`,children:(0,T.jsx)(c,{scrollRef:P,children:t=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(d,{isScrolled:t,title:`Notifications`,icon:p,count:z.length,isSearchExpanded:O,searchQuery:g,searchPlaceholder:`Search notifications...`,onSearchExpand:()=>k(!0),onSearchChange:_,onSearchBlur:R,bulkAction:{icon:m,label:`Clear all`,onClick:V,disabled:e.length===0},searchInputRef:I}),(0,T.jsx)(E,{notifications:z,selectedNotification:f,onNotificationSelect:B,focusedIndex:v,formatRelativeTime:S})]})})})})}),(0,T.jsx)(s,{}),(0,T.jsx)(o,{defaultSize:60,minSize:40,children:(0,T.jsx)(`div`,{ref:F,className:`h-full bg-white dark:bg-zinc-900`,children:(0,T.jsx)(D,{notification:G,previewMode:A,onTogglePreview:()=>j(!A),onCopy:H,onDownload:U,onFullscreen:W,onClose:()=>h(null),isCopied:M})})})]}):(0,T.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,T.jsx)(p,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,T.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Not connected to server`})]})}export{O as NotificationsTab};
@@ -1 +1 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{t as n}from"./jsx-runtime-Cjj9sGSy.js";import{Tt as r,in as i}from"./index-TQ5V7cM9.js";var a=e(t(),1),o=n();function s(){let[e,t]=(0,a.useState)(`processing`),[n,s]=(0,a.useState)(``);return(0,a.useEffect)(()=>{console.log(`[OAuthCallback] Component mounted, handling authorization...`),console.log(`[OAuthCallback] Current URL:`,window.location.href),r().then(()=>{console.log(`[OAuthCallback] Authorization successful`),t(`success`)}).catch(e=>{console.error(`[OAuthCallback] Authorization failed:`,e),t(`error`),s(e instanceof Error?e.message:String(e))})},[]),e===`processing`?(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,o.jsx)(i,{className:`h-8 w-8 animate-spin text-zinc-600 dark:text-zinc-400`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400`,children:`Completing authentication...`})]})}):e===`error`?(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`max-w-md p-6`,children:[(0,o.jsx)(`h1`,{className:`text-xl font-semibold text-red-600 dark:text-red-400 mb-2`,children:`Authentication Error`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400 mb-4`,children:n}),(0,o.jsx)(`p`,{className:`text-xs text-zinc-500 dark:text-zinc-500`,children:`You can close this window and try again.`})]})}):(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`max-w-md p-6`,children:[(0,o.jsx)(`h1`,{className:`text-xl font-semibold text-green-600 dark:text-green-400 mb-2`,children:`Authentication Successful!`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400`,children:`Redirecting you back...`})]})})}export{s as OAuthCallback};
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{Et as r,cn as i}from"./index-BMaSsizY.js";var a=e(t(),1),o=n();function s(){let[e,t]=(0,a.useState)(`processing`),[n,s]=(0,a.useState)(``);return(0,a.useEffect)(()=>{console.log(`[OAuthCallback] Component mounted, handling authorization...`),console.log(`[OAuthCallback] Current URL:`,window.location.href),r().then(()=>{console.log(`[OAuthCallback] Authorization successful`),t(`success`)}).catch(e=>{console.error(`[OAuthCallback] Authorization failed:`,e),t(`error`),s(e instanceof Error?e.message:String(e))})},[]),e===`processing`?(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,o.jsx)(i,{className:`h-8 w-8 animate-spin text-zinc-600 dark:text-zinc-400`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400`,children:`Completing authentication...`})]})}):e===`error`?(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`max-w-md p-6`,children:[(0,o.jsx)(`h1`,{className:`text-xl font-semibold text-red-600 dark:text-red-400 mb-2`,children:`Authentication Error`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400 mb-4`,children:n}),(0,o.jsx)(`p`,{className:`text-xs text-zinc-500 dark:text-zinc-500`,children:`You can close this window and try again.`})]})}):(0,o.jsx)(`div`,{className:`h-screen w-full flex items-center justify-center bg-white dark:bg-zinc-900`,children:(0,o.jsxs)(`div`,{className:`max-w-md p-6`,children:[(0,o.jsx)(`h1`,{className:`text-xl font-semibold text-green-600 dark:text-green-400 mb-2`,children:`Authentication Successful!`}),(0,o.jsx)(`p`,{className:`text-sm text-zinc-600 dark:text-zinc-400`,children:`Redirecting you back...`})]})})}export{s as OAuthCallback};
@@ -0,0 +1,15 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{f as n,sr as r,t as i}from"./input-C0OQCUZy.js";import{n as a}from"./createLucideIcon-BEHeJH0M.js";import{H as o,i as s,n as c,r as l,t as u}from"./button-C8Xa2k4x.js";import{t as d}from"./label-CI7JWQOo.js";import{t as ee}from"./AnimatePresence-FfDQQNFJ.js";import{a as f,i as p,n as m,r as h,t as g}from"./select-D6jzbLJn.js";import{n as te,t as _}from"./zap-BDWHCVHU.js";import{a as v,i as y,n as b,o as x,r as S,s as C}from"./shared-CFs9CZfB.js";import{t as w}from"./maximize-CJNgRe6S.js";import{n as ne,t as T}from"./save-TM6fvNrt.js";import{F as E,P as re,Qt as ie,Sn as D,Wt as O,b as k,bn as A,bt as ae,fn as j,rn as M,sn as N,yn as P}from"./index-BMaSsizY.js";import{n as oe,t as F}from"./MarkdownRenderer-Cwxp9fLj.js";import{t as I}from"./textarea-CRTXuRmE.js";import{t as se}from"./ListTabHeader-CrGae306.js";var L=e(t(),1),R=a();function z({selectedPrompt:e,promptArgs:t,onArgChange:n}){let r=e?.arguments||[];if(!(r.length>0))return(0,R.jsx)(`div`,{className:`flex items-center justify-center h-32 text-gray-500 dark:text-gray-400 text-sm`,children:`No arguments required`});let a=e=>{let r=e.name,a=t[r],o=typeof a==`string`?a:JSON.stringify(a);return e.type===`boolean`?(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(d,{htmlFor:r,className:`text-sm font-medium`,children:[r,e.required&&(0,R.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),e.description&&(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:e.description})]}),(0,R.jsx)(`input`,{id:r,type:`checkbox`,checked:!!a,onChange:e=>n(r,e.target.checked),className:`rounded`,"aria-label":`Toggle ${r}`})]},r):e.type===`number`?(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(d,{htmlFor:r,className:`text-sm font-medium`,children:[r,e.required&&(0,R.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),e.description&&(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:e.description})]}),(0,R.jsx)(i,{id:r,type:`number`,value:Number(a)||0,onChange:e=>n(r,Number(e.target.value)),placeholder:`Enter ${r}`})]},r):e.type===`array`||e.type===`object`?(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(d,{htmlFor:r,className:`text-sm font-medium`,children:[r,e.required&&(0,R.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),e.description&&(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:e.description})]}),(0,R.jsx)(I,{id:r,value:o,onChange:e=>{try{n(r,JSON.parse(e.target.value))}catch{n(r,e.target.value)}},placeholder:`Enter ${r} as JSON`,className:`font-mono text-sm min-h-[100px]`})]},r):(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(d,{htmlFor:r,className:`text-sm font-medium`,children:[r,e.required&&(0,R.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),e.description&&(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:e.description})]}),(0,R.jsx)(i,{id:r,"data-testid":`prompt-param-${r}`,value:o,onChange:e=>n(r,e.target.value),placeholder:`Enter ${r}`})]},r)};return(0,R.jsx)(`div`,{className:`space-y-4`,children:r.map(e=>a(e))})}function ce({selectedPrompt:e,promptArgs:t,isExecuting:n,isConnected:r,onArgChange:i,onExecute:a,onSave:d}){return(0,L.useEffect)(()=>{let t=t=>{(t.metaKey||t.ctrlKey)&&t.key===`Enter`&&e&&!n&&r&&(t.preventDefault(),a())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,n,r,a]),e?(0,R.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,R.jsx)(`div`,{className:`flex-shrink-0 p-3 sm:p-6 pt-3 pb-4 pr-3`,children:(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:`flex flex-row items-center justify-between mb-0 gap-2`,children:[(0,R.jsx)(`h3`,{className:`text-base sm:text-lg font-semibold`,children:e.name}),(0,R.jsxs)(`div`,{className:`flex gap-2 flex-shrink-0`,children:[(0,R.jsx)(u,{onClick:a,disabled:n||!r,size:`sm`,className:c,"data-testid":`prompt-execute-button`,children:n?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(E,{}),(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:`Executing...`})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(M,{}),(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:`Execute`}),(0,R.jsx)(`span`,{className:l,children:`⌘↵`})]})}),(0,R.jsxs)(u,{variant:`outline`,onClick:d,disabled:n,size:`sm`,className:o(s,`gap-2`),children:[(0,R.jsx)(T,{}),(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:`Save`})]})]})]}),e.description&&(0,R.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400 leading-relaxed mt-2`,children:e.description})]})}),(0,R.jsx)(`div`,{className:`flex-1 overflow-y-auto px-3 sm:px-6 pb-4 pr-3`,children:(0,R.jsx)(z,{selectedPrompt:e,promptArgs:t,onArgChange:i})})]}):(0,R.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400 mb-2`,children:`Select a prompt to get started`}),(0,R.jsx)(`p`,{className:`text-xs text-gray-400 dark:text-gray-500`,children:`Choose a prompt from the list to view its details and execute it`})]})}function B(e){switch(e){case`system`:return`default`;case`user`:return`outline`;case`assistant`:return`secondary`;default:return`outline`}}function V(e){return e.charAt(0).toUpperCase()+e.slice(1)}function H(e){return typeof e==`string`?e:e.text?e.text:e.type===`resource`&&e.resource?.text?e.resource.text:e.type===`image`?`[Image: ${e.mimeType||`unknown type`}]`:JSON.stringify(e,null,2)}function U({message:e,index:t}){let[n,i]=(0,L.useState)(!1);return(0,R.jsxs)(`div`,{className:`border border-border rounded-lg overflow-hidden bg-white dark:bg-zinc-900`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-muted/30 border-b border-border`,children:[(0,R.jsx)(r,{variant:B(e.role),children:V(e.role)}),(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:async()=>{await ae(H(e.content)),i(!0),setTimeout(()=>i(!1),2e3)},className:`h-6 px-2`,title:`Copy message content`,children:n?(0,R.jsx)(D,{className:`h-3.5 w-3.5`}):(0,R.jsx)(P,{className:`h-3.5 w-3.5`})})]}),(0,R.jsx)(`div`,{className:`px-4 py-3`,"data-testid":`prompt-message-content-${t}`,children:(()=>{let t=e.content;return typeof t==`string`?(0,R.jsx)(F,{content:t}):t.type===`text`&&t.text?(0,R.jsx)(F,{content:t.text}):t.type===`image`?(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,R.jsxs)(`span`,{className:`font-mono bg-muted px-2 py-1 rounded`,children:[`Image: `,t.mimeType||`unknown type`]}),t.data&&(0,R.jsx)(`img`,{src:`data:${t.mimeType};base64,${t.data}`,alt:`Prompt image`,className:`max-w-full max-h-[300px] object-contain rounded-lg border border-border mt-2`})]}):t.type===`resource`&&t.resource?(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,R.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Resource:`}),(0,R.jsx)(`code`,{className:`bg-muted px-2 py-0.5 rounded text-xs font-mono`,children:t.resource.uri})]}),t.resource.text&&(0,R.jsx)(`div`,{className:`mt-2`,children:(0,R.jsx)(F,{content:t.resource.text})})]}):(0,R.jsx)(`pre`,{className:`bg-muted p-3 rounded-lg text-sm overflow-x-auto`,children:(0,R.jsx)(`code`,{children:JSON.stringify(t,null,2)})})})()})]})}function W(e){let t=Date.now()-e,n=Math.floor(t/1e3),r=Math.floor(n/60),i=Math.floor(r/60),a=Math.floor(i/24);return n<10?`now`:n<60?`${n}s ago`:r<60?`${r}m ago`:i<24?`${i}h ago`:`${a}d ago`}function G(e){return`isError`in e&&!e.isError?null:`error`in e&&e.error?String(e.error):`isError`in e&&e.isError?`An error occurred`:null}function le({results:e,copiedResult:t,previewMode:n=!0,onCopy:r,onDelete:i,onFullscreen:a,onTogglePreview:o,onMaximize:s,isMaximized:c=!1}){let[l,d]=(0,L.useState)(0),[ee,te]=(0,L.useState)(``),[v,y]=(0,L.useState)(!0),b=e[0],x=b?e.filter(e=>e.promptName===b.promptName):[],S=x[l]||x[0],C=e.findIndex(e=>e===S);if((0,L.useEffect)(()=>{x.length>0&&l>=x.length&&d(0)},[x.length,l]),(0,L.useEffect)(()=>{let e=()=>{S&&te(W(S.timestamp))};e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[S]),e.length===0)return(0,R.jsx)(`div`,{className:`flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700`,children:(0,R.jsx)(`div`,{className:`flex-1 overflow-y-auto h-full`,children:(0,R.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,R.jsx)(`div`,{className:`text-center`,children:(0,R.jsx)(O,{vertical:!0,noBorder:!0,message:`No Results yet`})})})})});let T=S.error||G(S.result),E=`messages`in S.result&&Array.isArray(S.result.messages);return(0,R.jsx)(`div`,{className:`flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700`,children:(0,R.jsx)(`div`,{className:`flex-1 overflow-y-auto h-full`,children:(0,R.jsxs)(`div`,{className:`space-y-0 flex-1 h-full flex flex-col`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 px-4 pt-2 border-b border-gray-200 dark:border-zinc-600 pb-2`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-medium hidden sm:block`,children:`Response`}),S.duration!==void 0&&(0,R.jsxs)(`div`,{className:`hidden sm:flex items-center gap-1`,children:[(0,R.jsx)(_,{className:`h-3 w-3 text-gray-400`}),(0,R.jsxs)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:[S.duration,`ms`]})]}),E&&(0,R.jsx)(`div`,{className:`flex items-center gap-4 sm:ml-4`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>y(!0),className:`text-xs font-medium ${v?`text-black dark:text-white`:`text-zinc-500 dark:text-zinc-400`}`,children:`Formatted`}),(0,R.jsx)(`span`,{className:`text-xs text-zinc-400`,children:`|`}),(0,R.jsx)(`button`,{onClick:()=>y(!1),className:`text-xs font-medium ${v?`text-zinc-500 dark:text-zinc-400`:`text-black dark:text-white`}`,children:`Raw`})]})}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[x.length>1&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2 mr-2`,children:[(0,R.jsx)(j,{className:`h-3 w-3 text-gray-400`}),(0,R.jsxs)(g,{value:l.toString(),onValueChange:e=>d(parseInt(e)),children:[(0,R.jsx)(p,{className:`h-7 w-[120px] text-xs`,children:(0,R.jsx)(f,{})}),(0,R.jsx)(m,{children:x.map((e,t)=>(0,R.jsx)(h,{value:t.toString(),children:t===0?`Latest`:`${t+1} call ago`},t))})]})]}),(0,R.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400 mr-2`,children:ee}),(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:()=>r(C,S.result),className:`h-7 w-7 p-0`,title:`Copy result`,children:t===C?(0,R.jsx)(D,{className:`h-4 w-4`}):(0,R.jsx)(P,{className:`h-4 w-4`})}),i&&(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:()=>i(C),className:`h-7 w-7 p-0`,title:`Delete result`,children:(0,R.jsx)(ie,{className:`h-4 w-4`})}),a&&(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:()=>a(C),className:`h-7 w-7 p-0 sm:hidden`,title:`Fullscreen`,children:(0,R.jsx)(w,{className:`h-4 w-4`})}),s&&(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:s,className:`h-7 w-7 p-0 hidden sm:flex`,title:c?`Restore`:`Maximize`,children:c?(0,R.jsx)(ne,{className:`h-4 w-4`}):(0,R.jsx)(w,{className:`h-4 w-4`})})]})]}),(0,R.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:T?(0,R.jsxs)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3`,children:[(0,R.jsx)(`p`,{className:`text-red-800 dark:text-red-300 font-medium`,children:`Error:`}),(0,R.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-sm`,children:T})]}):v&&E?(0,R.jsx)(`div`,{className:`space-y-3`,children:(`messages`in S.result?S.result.messages:[]).map((e,t)=>(0,R.jsx)(U,{message:e,index:t},t))}):(0,R.jsx)(k,{data:S.result,filename:`prompt-result-${S.promptName}-${Date.now()}.json`})})]})})})}function ue({prompts:e,selectedPrompt:t,onPromptSelect:n,focusedIndex:i}){return e.length===0?(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:[(0,R.jsx)(N,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`No prompts available`})]}):(0,R.jsx)(`div`,{children:e.map((e,a)=>(0,R.jsx)(S,{id:`prompt-${e.name}`,"data-testid":`prompt-item-${e.name}`,isSelected:t?.name===e.name,isFocused:i===a,title:e.name,description:e.description,metadata:e.arguments&&e.arguments.length>0&&(0,R.jsxs)(r,{variant:`outline`,className:`text-xs border-gray-300 dark:border-zinc-600 text-gray-600 dark:text-gray-400`,children:[e.arguments.length,` args`]}),onClick:()=>n(e)},e.name))})}function de({savedPrompts:e,selectedPrompt:t,onLoadPrompt:n,onDeletePrompt:r,focusedIndex:i}){return e.length===0?(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:[(0,R.jsx)(A,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`No history`}),(0,R.jsx)(`p`,{className:`text-sm text-gray-400 dark:text-gray-500 mt-1`,children:`Prompts you execute will appear here`})]}):(0,R.jsx)(`div`,{children:e.map((e,r)=>(0,R.jsx)(S,{id:`saved-prompt-${e.id}`,isSelected:t?.id===e.id,isFocused:i===r,title:e.name,description:`${e.promptName} - ${new Date(e.savedAt).toLocaleString()}`,onClick:()=>n(e)},e.id))})}var fe=`mcp-inspector-saved-prompts`;function K({ref:e,prompts:t,callPrompt:r,serverId:i,isConnected:a,refreshPrompts:o}){let[s,c]=(0,L.useState)(!1),[l,d]=(0,L.useState)(null),{selectedPromptName:f,setSelectedPromptName:p}=re(),[m,h]=(0,L.useState)(null),[g,_]=(0,L.useState)(`prompts`),[S,w]=(0,L.useState)([]),[ne,T]=(0,L.useState)(!1),[E,ie]=(0,L.useState)(``),[D,O]=(0,L.useState)(!1),[k,j]=(0,L.useState)(-1),M=(0,L.useRef)(null),[P,F]=(0,L.useState)(!1),[I,z]=(0,L.useState)(`list`),[B,V]=(0,L.useState)(!1),{filteredPrompts:H,selectedPrompt:U,setSelectedPrompt:W,results:G,handleDeleteResult:K,promptArgs:pe,setPromptArgs:me,isExecuting:q,handlePromptSelect:J,handleArgChange:he,executeSelectedPrompt:ge,searchQuery:Y,setSearchQuery:X}=oe({prompts:t,callPrompt:r,serverId:i}),Z=C(),Q=C();(0,L.useEffect)(()=>{let e=()=>{F(window.innerWidth<1024)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,L.useEffect)(()=>{z(U?`detail`:`list`)},[U]),(0,L.useEffect)(()=>{P&&G.length>0&&!q&&z(`response`)},[G,q,P]),(0,L.useImperativeHandle)(e,()=>({focusSearch:()=>{O(!0),setTimeout(()=>{M.current&&M.current.focus()},0)},blurSearch:()=>{X(``),O(!1),M.current&&M.current.blur()}})),(0,L.useEffect)(()=>{try{let e=localStorage.getItem(fe);e&&w(JSON.parse(e))}catch(e){console.error(`[PromptsTab] Failed to load saved prompts:`,e)}},[]);let _e=(0,L.useCallback)(e=>{try{localStorage.setItem(fe,JSON.stringify(e))}catch(e){console.error(`[PromptsTab] Failed to save prompts:`,e)}},[]);(0,L.useEffect)(()=>{D&&M.current&&M.current.focus()},[D]);let ve=(0,L.useCallback)(()=>{Y.trim()||O(!1)},[Y]),ye=(0,L.useCallback)(async()=>{if(o){c(!0);try{await o()}finally{c(!1)}}},[o]),$=(0,L.useCallback)(e=>{let n=t.find(t=>t.name===e.promptName);n&&(W(n),me(e.args),d(e))},[t,W,me]);(0,L.useEffect)(()=>{j(-1)},[Y,g]),(0,L.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=g===`prompts`?H:S;if(e.key===`ArrowDown`)e.preventDefault(),j(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),j(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&k>=0)if(e.preventDefault(),g===`prompts`){let e=H[k];e&&J(e)}else{let e=S[k];e&&$(e)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[k,H,S,g,J,$]),(0,L.useEffect)(()=>{if(k>=0){let e=g===`prompts`?`prompt-${H[k]?.name}`:`saved-prompt-${S[k]?.id}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[k,H,S,g]),(0,L.useEffect)(()=>{if(console.warn(`[PromptsTab] Auto-selection effect triggered:`,{selectedPromptName:f,promptsCount:t.length,currentSelectedPrompt:U?.name}),f&&t.length>0){let e=t.find(e=>e.name===f);if(console.warn(`[PromptsTab] Prompt lookup result:`,{selectedPromptName:f,promptFound:!!e,promptName:e?.name,shouldSelect:e&&U?.name!==e.name}),e&&U?.name!==e.name){console.warn(`[PromptsTab] Selecting prompt:`,e.name),p(null);let t=setTimeout(()=>{J(e);let t=document.getElementById(`prompt-${e.name}`);t&&(console.warn(`[PromptsTab] Scrolling to prompt element`),t.scrollIntoView({behavior:`smooth`,block:`nearest`}))},100);return()=>clearTimeout(t)}}},[f,t,U,J,p]);let be=(0,L.useCallback)(async(e,t)=>{try{await ae(JSON.stringify(t,null,2)),h(e),setTimeout(()=>h(null),2e3)}catch(e){console.error(`[PromptsTab] Failed to copy result:`,e)}},[]),xe=(0,L.useCallback)(e=>{if(P)z(`response`);else{let t=G[e];if(t){let e=window.open(``,`_blank`,`width=800,height=600`);if(e){let n=t.result;e.document.write(`
2
+ <html>
3
+ <head>
4
+ <title>${t.promptName} Result</title>
5
+ <style>
6
+ body { font-family: monospace; padding: 20px; background: #1e1e1e; color: #d4d4d4; }
7
+ pre { white-space: pre-wrap; word-wrap: break-word; }
8
+ </style>
9
+ </head>
10
+ <body>
11
+ <h2>${t.promptName}</h2>
12
+ <pre>${JSON.stringify(n,null,2)}</pre>
13
+ </body>
14
+ </html>
15
+ `),e.document.close()}}}},[P,G]),Se=(0,L.useCallback)(()=>{B?(Z.current&&Z.current.expand(),Q.current&&Q.current.expand(),V(!1)):(Z.current&&Z.current.collapse(),Q.current&&Q.current.collapse(),V(!0))},[B,Z,Q]),Ce=(0,L.useCallback)(()=>{U&&(ie(``),T(!0))},[U]),we=(0,L.useCallback)(e=>{_e(S.filter(t=>t.id!==e)),l?.id===e&&d(null)},[S,_e,l]);return P?(0,R.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden relative bg-background`,children:[I!==`list`&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-2 border-b shrink-0 bg-background z-10`,children:[(0,R.jsx)(u,{variant:`ghost`,size:`sm`,onClick:()=>{I===`response`?z(`detail`):(W(null),z(`list`))},className:`p-0 h-8 w-8`,children:(0,R.jsx)(te,{className:`h-4 w-4`})}),(0,R.jsxs)(`div`,{className:`flex items-center text-sm font-medium`,children:[(0,R.jsx)(`button`,{onClick:()=>{W(null),z(`list`)},className:`text-muted-foreground hover:text-foreground hover:underline cursor-pointer`,children:`Prompts`}),I===`detail`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`mx-2 text-muted-foreground`,children:`/`}),(0,R.jsx)(`button`,{onClick:()=>{z(`response`)},className:I===`detail`?`text-foreground hover:underline`:I===`response`?`text-muted-foreground hover:text-foreground hover:underline cursor-pointer`:`text-muted-foreground`,children:`Execute`})]}),I===`response`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`mx-2 text-muted-foreground`,children:`/`}),(0,R.jsx)(`span`,{className:`text-foreground`,children:`Response`})]})]})]}),(0,R.jsx)(`div`,{className:`flex-1 relative overflow-hidden`,children:(0,R.jsxs)(ee,{initial:!1,mode:`popLayout`,children:[I===`list`&&(0,R.jsx)(n.div,{initial:{x:`-100%`},animate:{x:0},exit:{x:`-100%`},transition:{type:`spring`,stiffness:300,damping:30},className:`absolute inset-0 flex flex-col bg-background z-0`,children:(0,R.jsx)(b,{children:e=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(se,{isScrolled:e,activeTab:g,isSearchExpanded:D,searchQuery:Y,primaryTabName:`prompts`,secondaryTabName:`saved`,primaryTabTitle:`Prompts`,secondaryTabTitle:`History`,primaryCount:H.length,secondaryCount:S.length,primaryIcon:N,secondaryIcon:A,searchPlaceholder:`Search prompts...`,onSearchExpand:()=>O(!0),onSearchChange:X,onSearchBlur:ve,onTabSwitch:()=>_(g===`prompts`?`saved`:`prompts`),searchInputRef:M,onRefresh:o?ye:void 0,isRefreshing:s}),g===`prompts`?(0,R.jsx)(ue,{prompts:H,selectedPrompt:U,onPromptSelect:J,focusedIndex:k}):(0,R.jsx)(de,{savedPrompts:S,selectedPrompt:l,onLoadPrompt:$,onDeletePrompt:we,focusedIndex:k})]})})},`list`),I===`detail`&&(0,R.jsx)(n.div,{initial:{x:`100%`},animate:{x:0},exit:{x:`-100%`},transition:{type:`spring`,stiffness:300,damping:30},className:`absolute inset-0 bg-background z-10`,children:(0,R.jsx)(ce,{selectedPrompt:U,promptArgs:pe,isExecuting:q,isConnected:a,onArgChange:he,onExecute:ge,onSave:Ce})},`detail`),I===`response`&&(0,R.jsx)(n.div,{initial:{x:`100%`},animate:{x:0},exit:{x:`100%`},transition:{type:`spring`,stiffness:300,damping:30},className:`absolute inset-0 bg-background z-20`,children:(0,R.jsx)(le,{results:G,copiedResult:m,onCopy:be,onDelete:K,onFullscreen:xe})},`response`)]})})]}):(0,R.jsxs)(x,{orientation:`horizontal`,className:`h-full`,children:[(0,R.jsx)(v,{id:`left-panel`,panelRef:Z,defaultSize:`33%`,collapsible:!0,className:`flex flex-col h-full relative`,children:(0,R.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden border-r dark:border-zinc-700`,children:(0,R.jsx)(b,{children:e=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(se,{isScrolled:e,activeTab:g,isSearchExpanded:D,searchQuery:Y,primaryTabName:`prompts`,secondaryTabName:`saved`,primaryTabTitle:`Prompts`,secondaryTabTitle:`History`,primaryCount:H.length,secondaryCount:S.length,primaryIcon:N,secondaryIcon:A,searchPlaceholder:`Search prompts...`,onSearchExpand:()=>O(!0),onSearchChange:X,onSearchBlur:ve,onTabSwitch:()=>_(g===`prompts`?`saved`:`prompts`),searchInputRef:M,onRefresh:o?ye:void 0,isRefreshing:s}),g===`prompts`?(0,R.jsx)(ue,{prompts:H,selectedPrompt:U,onPromptSelect:J,focusedIndex:k}):(0,R.jsx)(de,{savedPrompts:S,selectedPrompt:l,onLoadPrompt:$,onDeletePrompt:we,focusedIndex:k})]})})})}),(0,R.jsx)(y,{withHandle:!0}),(0,R.jsx)(v,{defaultSize:`67%`,children:(0,R.jsxs)(x,{orientation:`vertical`,children:[(0,R.jsx)(v,{panelRef:Q,defaultSize:`40%`,collapsible:!0,children:(0,R.jsx)(ce,{selectedPrompt:U,promptArgs:pe,isExecuting:q,isConnected:a,onArgChange:he,onExecute:ge,onSave:Ce})}),(0,R.jsx)(y,{withHandle:!0}),(0,R.jsx)(v,{defaultSize:`60%`,children:(0,R.jsx)(`div`,{className:`flex flex-col h-full`,children:(0,R.jsx)(le,{results:G,copiedResult:m,onCopy:be,onDelete:K,onFullscreen:xe,onMaximize:Se,isMaximized:B})})})]})})]})}K.displayName=`PromptsTab`;export{K as PromptsTab};
@@ -0,0 +1,2 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{f as n,sr as r}from"./input-C0OQCUZy.js";import{n as i}from"./createLucideIcon-BEHeJH0M.js";import{t as a}from"./button-C8Xa2k4x.js";import{t as o}from"./AnimatePresence-FfDQQNFJ.js";import{n as s,t as c}from"./MCPAppsDebugControls-sRglMhat.js";import{t as l}from"./brush-DX0UZ_pI.js";import{n as u,t as d}from"./zap-BDWHCVHU.js";import{t as f}from"./code-B14rVdNt.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./shared-CFs9CZfB.js";import{t as y}from"./maximize-CJNgRe6S.js";import{F as b,Lt as x,Ot as S,P as C,Sn as w,St as T,Tt as E,b as D,bn as O,bt as k,mn as A,vn as j,wt as M,yn as N}from"./index-BMaSsizY.js";import{t as P}from"./useConfig-B6tXvJOb.js";import{t as F}from"./useViewHostProps-DZqOwiAm.js";import{t as I}from"./WidgetWrapper-cv_BM1bY.js";var L=e(t(),1),R=i();function z(e){if(`error`in e&&e.error&&typeof e.error==`string`)return e.error;if(!(`isError`in e&&e.isError))return null;if(`contents`in e&&Array.isArray(e.contents)){let t=e.contents.filter(e=>`text`in e).map(e=>e.text).filter(Boolean);if(t.length>0)return t.join(`
2
+ `)}return`An error occurred`}function B({serverId:e,viewId:t,resourceUri:n,toolOutput:r,toolMetadata:i,readResource:a,customProps:o,displayMode:s,onDisplayModeChange:c}){let l=(0,L.useMemo)(()=>({}),[]),u=F({serverId:e,viewId:t,resourceUri:n,toolName:n,toolInput:l,toolOutput:r,toolMetadata:i,readResource:a,displayMode:s,onDisplayModeChange:c});if(!u)return(0,R.jsx)(I,{className:`w-full h-full min-h-[240px]`,children:(0,R.jsx)(b,{className:`size-5`})});let d=s===`inline`?`w-full h-full flex items-center justify-center relative p-4 min-h-0`:`w-full h-full relative p-4`,f=o?JSON.stringify(o):`no-custom-props`;return(0,R.jsx)(I,{className:`w-full h-full min-h-[240px]`,children:(0,R.jsx)(T,{viewId:t,toolName:n,toolInput:l,toolOutput:r,customProps:o,className:d,...u},f)})}function V({result:e,isLoading:t,previewMode:n,serverId:i,readResource:o,onTogglePreview:s,onCopy:u,onDownload:p,onFullscreen:m,isCopied:h=!1,selectedResource:g,llmConfig:_}){let[v,x]=(0,L.useState)(null),S=(0,L.useCallback)(e=>{x(e)},[]),[C,T]=(0,L.useState)(`inline`),k=e?.result&&`contents`in e.result&&Array.isArray(e.result.contents)&&e.result.contents[0]?._meta||{},A={...e?.resourceAnnotations,...k},P=(0,L.useMemo)(()=>{let e=A?.[`mcp-use/propsSchema`];if(!e)return[];let t=e.def?.shape;return t?Object.entries(t).filter(([,e])=>{let t=e?.def?.type??e?.type;return t!==`optional`&&t!=="default"}).map(([e])=>e):e.required??[]},[A]),F=E(A)?`mcp-apps`:null,I=e?.result&&`contents`in e.result&&Array.isArray(e.result.contents)&&e.result.contents.some(e=>M(e.mimeType)),V=A?.ui?.resourceUri||k?.ui?.resourceUri||(I?e.uri:void 0),H=(F===`mcp-apps`||I)&&!!V,U=P.length>0&&!v;if(t)return(0,R.jsx)(`div`,{className:`flex absolute left-0 top-0 items-center justify-center w-full h-full`,children:(0,R.jsx)(b,{className:`size-5`})});if(!e)return(0,R.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400 mb-2`,children:`Select a resource to view its contents`}),(0,R.jsx)(`p`,{className:`text-xs text-gray-400 dark:text-gray-500`,children:`Choose a resource from the list to see its data`})]});let W=e.error||(e.result?z(e.result):null);return W?(0,R.jsx)(`div`,{className:`p-4`,children:(0,R.jsxs)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3`,children:[(0,R.jsx)(`p`,{className:`text-red-800 dark:text-red-300 font-medium`,children:`Error:`}),(0,R.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-sm`,children:W})]})}):(0,R.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,R.jsxs)(`div`,{className:`shrink-0 px-4 py-3 border-b border-gray-200 dark:border-zinc-700 flex items-center justify-between`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(O,{className:`h-3 w-3 text-gray-400`}),(0,R.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:new Date(e.timestamp).toLocaleTimeString()})]}),(()=>{let t=e?.duration??e.result?.duration??e.result?.metrics?.durationMs;return t===void 0?null:(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(d,{className:`h-3 w-3 text-gray-400`}),(0,R.jsxs)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:[t,`ms`]})]})})(),H&&(0,R.jsx)(r,{variant:`outline`,className:`text-xs bg-green-50 dark:bg-green-900/20 border-none border-green-200 dark:border-green-800/50 text-green-600 dark:text-green-400`,children:`MCP Apps`})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[H&&(0,R.jsxs)(a,{variant:`ghost`,size:`sm`,onClick:s,className:n?``:`text-purple-600 dark:text-purple-400`,children:[n?(0,R.jsx)(f,{className:`h-4 w-4 mr-1`}):(0,R.jsx)(l,{className:`h-4 w-4 mr-1`}),n?`JSON`:`Preview`]}),(0,R.jsx)(a,{variant:`ghost`,size:`sm`,onClick:u,children:h?(0,R.jsx)(w,{className:`h-4 w-4`}):(0,R.jsx)(N,{className:`h-4 w-4`})}),(0,R.jsx)(a,{variant:`ghost`,size:`sm`,onClick:p,children:(0,R.jsx)(j,{className:`h-4 w-4`})}),(0,R.jsx)(a,{variant:`ghost`,size:`sm`,onClick:m,children:(0,R.jsx)(y,{className:`h-4 w-4`})})]})]}),(0,R.jsx)(`div`,{className:`flex-1 overflow-y-auto relative`,children:H&&i&&o&&V?n?(0,R.jsxs)(`div`,{className:`flex flex-1 h-full relative flex-col min-h-0`,"data-testid":`resource-widget-preview`,children:[(0,R.jsx)(`div`,{className:`absolute top-2 right-2 z-10 flex items-center gap-2`,children:(0,R.jsx)(c,{toolCallId:`resource-${e.timestamp}`,displayMode:C,onDisplayModeChange:T,propsContext:`resource`,resourceUri:e.uri,resourceAnnotations:A,llmConfig:_||null,resource:g||null,onPropsChange:S,requiredProps:P.length>0&&!v?P:void 0})}),U?(0,R.jsx)(`div`,{className:`flex items-center justify-center w-full h-full min-h-[200px] rounded-xl border-2 border-dashed border-gray-300 dark:border-zinc-600 bg-gray-50 dark:bg-zinc-800/50 m-4`,children:(0,R.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400 text-center px-6`,children:`This widget requires props, set or generate them in the props debugger`})}):(0,R.jsx)(B,{serverId:i,viewId:`resource-${e.timestamp}`,resourceUri:V,toolOutput:e.result,toolMetadata:A,readResource:o,customProps:v||void 0,displayMode:C,onDisplayModeChange:T})]}):(0,R.jsx)(`div`,{className:`px-4 pt-4`,"data-testid":`resource-result-json`,children:(0,R.jsx)(D,{data:e.result,filename:`resource-${e.uri.replace(/[^a-zA-Z0-9]/g,`-`)}-mcp-apps-${Date.now()}.json`})}):(0,R.jsx)(`div`,{className:`px-4 pt-4`,"data-testid":`resource-result-json`,children:(0,R.jsx)(D,{data:e.result,filename:`resource-${e.uri.replace(/[^a-zA-Z0-9]/g,`-`)}-${Date.now()}.json`})})})]})}function H({resources:e,selectedResource:t,onResourceSelect:n,focusedIndex:r}){return e.length===0?(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:[(0,R.jsx)(s,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`No resources available`})]}):(0,R.jsx)(`div`,{children:e.map((e,i)=>{let a=[e.description,e.mimeType&&(0,R.jsx)(`span`,{className:`font-mono`,children:e.mimeType},`mime`)].filter(Boolean);return(0,R.jsx)(_,{id:`resource-${e.uri}`,"data-testid":`resource-item-${e.name}`,isSelected:t?.uri===e.uri,isFocused:r===i,title:e.name,description:a.length>0?(0,R.jsxs)(`span`,{className:`flex flex-col gap-1`,children:[e.description&&(0,R.jsx)(`span`,{children:e.description}),e.mimeType&&(0,R.jsx)(`span`,{className:`text-xs text-gray-500 dark:text-gray-500 font-mono`,children:e.mimeType})]}):void 0,onClick:()=>n(e)},e.uri)})})}function U({ref:e,resources:t,readResource:r,serverId:i,isConnected:s,mcpServerUrl:c,refreshResources:l}){let[d,f]=(0,L.useState)(!1),[_,y]=(0,L.useState)(null),{selectedResourceUri:b,setSelectedResourceUri:w}=C(),{llmConfig:T}=P({mcpServerUrl:c}),[E,D]=(0,L.useState)(null),[O,j]=(0,L.useState)(!1),[M,N]=(0,L.useState)(``),[F]=(0,L.useState)(`resources`),[I,z]=(0,L.useState)(!0),[B,U]=(0,L.useState)(!1),[W,G]=(0,L.useState)(-1),[K,q]=(0,L.useState)(!1),J=(0,L.useRef)(null),Y=(0,L.useRef)(null),[ee,te]=(0,L.useState)(!1),[X,Z]=(0,L.useState)(`list`);(0,L.useEffect)(()=>{let e=()=>{te(window.innerWidth<1024)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,L.useEffect)(()=>{Z(_?`detail`:`list`)},[_]),(0,L.useImperativeHandle)(e,()=>({focusSearch:()=>{U(!0),setTimeout(()=>{J.current&&J.current.focus()},0)},blurSearch:()=>{N(``),U(!1),J.current&&J.current.blur()}})),(0,L.useEffect)(()=>{B&&J.current&&J.current.focus()},[B]);let ne=(0,L.useCallback)(()=>{M.trim()||U(!1)},[M]),re=(0,L.useCallback)(async()=>{if(l){f(!0);try{await l()}finally{f(!1)}}},[l]),Q=(0,L.useMemo)(()=>{if(!M)return t;let e=M.toLowerCase();return t.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e)||t.uri.toLowerCase().includes(e))},[t,M]),$=(0,L.useCallback)(async e=>{if(y(e),s){j(!0);let t=Date.now();try{let n=await r(e.uri);S(new x({resourceUri:e.uri,serverId:i,success:!0})).catch(()=>{}),D({uri:e.uri,result:n,timestamp:t,resourceAnnotations:{...e.annotations,...e._meta||{}}})}catch(n){S(new x({resourceUri:e.uri,serverId:i,success:!1,error:n instanceof Error?n.message:`Unknown error`})).catch(()=>{}),D({uri:e.uri,result:{contents:[],_meta:{}},error:n instanceof Error?n.message:`Unknown error`,timestamp:t,resourceAnnotations:{...e.annotations,...e._meta||{}}})}finally{j(!1)}}},[r,i,s]);(0,L.useEffect)(()=>{G(-1)},[M,F]),(0,L.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=Q;if(e.key===`ArrowDown`)e.preventDefault(),G(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),G(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&W>=0){e.preventDefault();let t=Q[W];t&&$(t)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[W,Q,$]),(0,L.useEffect)(()=>{if(W>=0){let e=`resource-${Q[W]?.uri}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[W,Q]),(0,L.useEffect)(()=>{if(b&&t.length>0){let e=t.find(e=>e.uri===b);e&&_?.uri!==e.uri&&(w(null),setTimeout(()=>{$(e);let t=document.getElementById(`resource-${e.uri}`);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})},100))}},[b,t,_,$,w]),(0,L.useEffect)(()=>{if(_){let e=t.find(e=>e.uri===_.uri);e&&e!==_&&(e.description!==_.description||e.mimeType!==_.mimeType||e.name!==_.name)&&y(e)}},[t,_]);let ie=(0,L.useCallback)(async()=>{if(E)try{await k(JSON.stringify(E.result,null,2)),q(!0),setTimeout(()=>q(!1),2e3)}catch(e){console.error(`[ResourcesTab] Failed to copy result:`,e)}},[E]),ae=(0,L.useCallback)(()=>{if(E)try{let e=new globalThis.Blob([JSON.stringify(E.result,null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`resource-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}catch(e){console.error(`[ResourcesTab] Failed to download result:`,e)}},[E]),oe=(0,L.useCallback)(async()=>{if(Y.current)try{document.fullscreenElement?await document.exitFullscreen():await Y.current.requestFullscreen()}catch(e){console.error(`[ResourcesTab] Failed to toggle fullscreen:`,e)}},[]);return ee?(0,R.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden relative bg-background`,children:[X!==`list`&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-2 border-b shrink-0 bg-background z-10`,children:[(0,R.jsx)(a,{variant:`ghost`,size:`sm`,onClick:()=>{y(null),Z(`list`)},className:`p-0 h-8 w-8`,children:(0,R.jsx)(u,{className:`h-4 w-4`})}),(0,R.jsxs)(`div`,{className:`flex items-center text-sm font-medium`,children:[(0,R.jsx)(`button`,{onClick:()=>{y(null),Z(`list`)},className:`text-muted-foreground hover:text-foreground hover:underline cursor-pointer`,children:`Resources`}),X===`detail`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`mx-2 text-muted-foreground`,children:`/`}),(0,R.jsx)(`span`,{className:`text-foreground`,children:`Content`})]})]})]}),(0,R.jsx)(`div`,{className:`flex-1 relative overflow-hidden`,children:(0,R.jsxs)(o,{initial:!1,mode:`popLayout`,children:[X===`list`&&(0,R.jsx)(n.div,{initial:{x:`-100%`},animate:{x:0},exit:{x:`-100%`},transition:{type:`spring`,stiffness:300,damping:30},className:`absolute inset-0 flex flex-col bg-background z-0`,children:(0,R.jsx)(h,{children:e=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(v,{isScrolled:e,title:`Resources`,icon:A,count:Q.length,isSearchExpanded:B,searchQuery:M,searchPlaceholder:`Search resources...`,onSearchExpand:()=>U(!0),onSearchChange:N,onSearchBlur:ne,searchInputRef:J,onRefresh:l?re:void 0,isRefreshing:d}),(0,R.jsx)(H,{resources:Q,selectedResource:_,onResourceSelect:$,focusedIndex:W})]})})},`list`),X===`detail`&&(0,R.jsx)(n.div,{initial:{x:`100%`},animate:{x:0},exit:{x:`100%`},transition:{type:`spring`,stiffness:300,damping:30},className:`absolute inset-0 bg-white dark:bg-zinc-900 z-10`,children:(0,R.jsx)(`div`,{ref:Y,className:`h-full`,children:(0,R.jsx)(V,{result:E,isLoading:O,previewMode:I,serverId:i,readResource:r,onTogglePreview:()=>z(!I),onCopy:ie,onDownload:ae,onFullscreen:oe,isCopied:K,selectedResource:_,llmConfig:T})})},`detail`)]})})]}):(0,R.jsxs)(g,{orientation:`horizontal`,className:`h-full`,children:[(0,R.jsx)(p,{defaultSize:`33%`,children:(0,R.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden border-r dark:border-zinc-700`,children:(0,R.jsx)(h,{children:e=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(v,{isScrolled:e,title:`Resources`,icon:A,count:Q.length,isSearchExpanded:B,searchQuery:M,searchPlaceholder:`Search resources...`,onSearchExpand:()=>U(!0),onSearchChange:N,onSearchBlur:ne,searchInputRef:J,onRefresh:l?re:void 0,isRefreshing:d}),(0,R.jsx)(H,{resources:Q,selectedResource:_,onResourceSelect:$,focusedIndex:W})]})})})}),(0,R.jsx)(m,{}),(0,R.jsx)(p,{defaultSize:`67%`,children:(0,R.jsx)(`div`,{ref:Y,className:`h-full bg-white dark:bg-zinc-900`,children:(0,R.jsx)(V,{result:E,isLoading:O,previewMode:I,serverId:i,readResource:r,onTogglePreview:()=>z(!I),onCopy:ie,onDownload:ae,onFullscreen:oe,isCopied:K,selectedResource:_,llmConfig:T})})})]})}U.displayName=`ResourcesTab`;export{U as ResourcesTab};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{a as n,n as r,r as i,t as a}from"./input-C0OQCUZy.js";import{n as o}from"./createLucideIcon-BEHeJH0M.js";import{t as s}from"./button-C8Xa2k4x.js";import{t as c}from"./label-CI7JWQOo.js";import{a as l,i as u,n as d,r as f,t as p}from"./select-D6jzbLJn.js";import{a as m,i as h,n as ee,o as g,r as _,t as v}from"./shared-CFs9CZfB.js";import{t as y}from"./maximize-2-Br1WQzT2.js";import{t as b}from"./sparkles-BGYTDThM.js";import{Mt as x,P as te,Qt as ne,Sn as S,Wt as C,Xt as w,b as T,bt as E,cn as D,jt as O,ot as k,pn as A,vn as j,xt as M,yn as N}from"./index-BMaSsizY.js";import{a as P}from"./dist-9Oy7e0v8.js";import{t as F}from"./useConfig-B6tXvJOb.js";import{t as I}from"./textarea-CRTXuRmE.js";var L=e(t(),1),R=o();function z({requests:e,selectedRequest:t,onRequestSelect:n,focusedIndex:r,formatRelativeTime:i}){return e.length===0?(0,R.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center p-4 text-center`,children:(0,R.jsx)(C,{vertical:!0,noBorder:!0,message:`No sampling requests`})}):(0,R.jsx)(`div`,{children:e.map((e,a)=>{let o=e.request.params?.messages?.length||0,s=e.request.params?.maxTokens;return(0,R.jsx)(_,{id:`sampling-request-${e.id}`,isSelected:t?.id===e.id,isFocused:r===a,title:(0,R.jsxs)(`span`,{className:`flex items-center gap-3`,children:[e.serverName,(0,R.jsx)(`span`,{className:`size-1.5 block rounded-full bg-orange-500`})]}),description:(()=>{let t=i(e.timestamp),n=[];return o>0&&n.push(`${o} message${o>1?`s`:``}`),s&&n.push(`max ${s} tokens`),t+(n.length>0?` | ${n.join(`, `)}`:``)})(),onClick:()=>n(e)},e.id)})})}function B({llmConfig:e}){return{generateResponse:(0,L.useCallback)(async({request:t})=>{if(!e)throw Error(`LLM config is not available`);let n=t.params||{},r=n.maxTokens,i=n.temperature,a=n.messages||[];if(a.length===0)throw Error(`No messages found in sampling request`);let o=[];for(let e of a){if(!e||!e.role)continue;let t=Array.isArray(e.content)?e.content[0]:e.content;t&&t.type===`text`&&t.text&&(e.role===`user`||e.role===`assistant`)&&o.push({role:e.role,content:t.text})}if(o.length===0)throw Error(`No valid messages could be converted. Please ensure messages have 'text' content type.`);return{role:`assistant`,content:{type:`text`,text:await P({config:{provider:e.provider,model:e.model,apiKey:e.apiKey,temperature:i??e.temperature,maxTokens:r,baseUrl:e.baseUrl},messages:o})},model:e.model,stopReason:`endTurn`}},[e]),isAvailable:e!==null}}function V({request:t,onApprove:o,onReject:m,onClose:h,previewMode:ee,onTogglePreview:g,isCopied:_,onCopy:v,onDownload:te,onFullscreen:ne,llmConfig:C}){let[E,A]=(0,L.useState)(`manual`),[M,P]=(0,L.useState)(`stub-model`),[F,z]=(0,L.useState)(`endTurn`),[V,H]=(0,L.useState)(`assistant`),[U,W]=(0,L.useState)(`text`),[G,K]=(0,L.useState)(`positive`),[q,J]=(0,L.useState)(``),[Y,X]=(0,L.useState)(`image/png`),[Z,re]=(0,L.useState)(!1),[ie,Q]=(0,L.useState)(null),{generateResponse:ae,isAvailable:$}=B({llmConfig:C});(0,L.useEffect)(()=>{t&&(P(E===`llm`&&C?.model?C.model:`stub-model`),z(`endTurn`),H(`assistant`),W(`text`),K(`positive`),J(``),X(`image/png`),Q(null))},[t?.id]),(0,L.useEffect)(()=>{E===`llm`&&C?.model&&P(C.model)},[E,C?.model]);let oe=async()=>{if(!t||!$){console.log(`[SamplingRequestDisplay] Cannot generate:`,{hasRequest:!!t,isAvailable:$});return}console.log(`[SamplingRequestDisplay] Starting LLM generation:`,{requestId:t.id,llmConfig:C}),re(!0),Q(null);try{let e=await ae({request:t.request});console.log(`[SamplingRequestDisplay] LLM generation result:`,{result:e,model:e.model,stopReason:e.stopReason,role:e.role,contentIsArray:Array.isArray(e.content),content:e.content}),P(e.model||C?.model||`stub-model`),z(e.stopReason||`endTurn`),H(e.role||`assistant`);let n=Array.isArray(e.content)?e.content[0]:e.content;console.log(`[SamplingRequestDisplay] Setting content:`,{contentType:n.type,hasText:`text`in n,text:`text`in n?n.text:void 0}),n.type===`text`?(W(`text`),K(n.text||``),console.log(`[SamplingRequestDisplay] Set text content:`,n.text)):n.type===`image`&&(W(`image`),J(n.data||``),X(n.mimeType||`image/png`),console.log(`[SamplingRequestDisplay] Set image content`)),console.log(`[SamplingRequestDisplay] Form state after update:`,{model:M,stopReason:F,role:V,contentType:U,textContent:G})}catch(e){console.error(`[SamplingRequestDisplay] LLM generation error:`,e);let t=e instanceof Error?e.message:`Failed to generate response`;Q(t),k.error(`LLM Generation Failed`,{description:t})}finally{re(!1),console.log(`[SamplingRequestDisplay] Generation complete`)}},se=(0,L.useMemo)(()=>{let e={model:M,stopReason:F,role:V,content:{type:U}};return U===`text`?e.content.text=G:U===`image`&&(e.content.data=q,e.content.mimeType=Y),e},[M,F,V,U,G,q,Y]);return t?(0,R.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b dark:border-zinc-700`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`h3`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:t.serverName}),(0,R.jsx)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:new Date(t.timestamp).toLocaleString()})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(r,{children:[(0,R.jsx)(n,{render:(0,R.jsx)(s,{variant:`ghost`,size:`sm`,onClick:v,className:`h-8 w-8 p-0`,children:_?(0,R.jsx)(S,{className:`h-4 w-4 text-green-600`}):(0,R.jsx)(N,{className:`h-4 w-4`})}),nativeButton:!0}),(0,R.jsx)(i,{children:`Copy request`})]}),(0,R.jsxs)(r,{children:[(0,R.jsx)(n,{render:(0,R.jsx)(s,{variant:`ghost`,size:`sm`,onClick:te,className:`h-8 w-8 p-0`,children:(0,R.jsx)(j,{className:`h-4 w-4`})}),nativeButton:!0}),(0,R.jsx)(i,{children:`Download request`})]}),(0,R.jsxs)(r,{children:[(0,R.jsx)(n,{render:(0,R.jsx)(s,{variant:`ghost`,size:`sm`,onClick:ne,className:`h-8 w-8 p-0`,children:(0,R.jsx)(y,{className:`h-4 w-4`})}),nativeButton:!0}),(0,R.jsx)(i,{children:`Fullscreen`})]}),(0,R.jsx)(s,{variant:`ghost`,size:`sm`,onClick:h,className:`h-8 w-8 p-0`,children:(0,R.jsx)(w,{className:`h-4 w-4`})})]})]}),(0,R.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-6`,children:[(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100`,children:`Request`}),(0,R.jsx)(`div`,{className:`bg-muted rounded-lg p-3 max-h-64 overflow-auto`,children:(0,R.jsx)(T,{data:t.request})})]}),(0,R.jsxs)(`div`,{className:`space-y-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100`,children:`Response`}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(c,{htmlFor:`responseMode-${t.id}`,className:`text-xs text-gray-500 dark:text-gray-400`,children:`Mode:`}),(0,R.jsxs)(p,{value:E,onValueChange:e=>A(e),children:[(0,R.jsx)(u,{id:`responseMode-${t.id}`,className:`w-32 h-8 text-xs`,"data-testid":`sampling-response-mode-select`,children:(0,R.jsx)(l,{})}),(0,R.jsxs)(d,{children:[(0,R.jsx)(f,{value:`manual`,"data-testid":`sampling-response-mode-manual`,children:`Manual`}),(0,R.jsx)(f,{value:`llm`,"data-testid":`sampling-response-mode-llm`,children:`LLM`})]})]})]})]}),E===`llm`&&(0,R.jsxs)(`div`,{className:`space-y-2 p-3 bg-muted rounded-lg`,children:[$?(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(s,{onClick:oe,disabled:Z,size:`sm`,className:`flex items-center gap-2`,"data-testid":`sampling-generate-llm-button`,children:Z?(0,R.jsxs)(`span`,{"data-testid":`sampling-generating`,className:`flex items-center gap-2`,children:[(0,R.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Generating...`]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(b,{className:`h-4 w-4`}),`Generate with LLM`]})}),(0,R.jsxs)(`span`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:[`Using `,C?.provider,` (`,C?.model,`)`]})]}):(0,R.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:`LLM not configured. Please configure LLM in the Chat tab.`}),ie&&(0,R.jsx)(`div`,{className:`text-xs text-red-600 dark:text-red-400`,"data-testid":`sampling-generation-error`,children:ie})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`model-${t.id}`,children:`Model`}),(0,R.jsx)(a,{id:`model-${t.id}`,value:M,onChange:e=>P(e.target.value),placeholder:`stub-model`,disabled:E===`llm`&&Z,"data-testid":`sampling-model-input`})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`stopReason-${t.id}`,children:`Stop Reason`}),(0,R.jsx)(a,{id:`stopReason-${t.id}`,value:F,onChange:e=>z(e.target.value),placeholder:`endTurn`,disabled:E===`llm`&&Z,"data-testid":`sampling-stop-reason-input`})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`role-${t.id}`,children:`Role`}),(0,R.jsxs)(p,{value:V,onValueChange:e=>H(e),disabled:E===`llm`&&Z,children:[(0,R.jsx)(u,{id:`role-${t.id}`,"data-testid":`sampling-role-select`,children:(0,R.jsx)(l,{})}),(0,R.jsxs)(d,{children:[(0,R.jsx)(f,{value:`assistant`,children:`assistant`}),(0,R.jsx)(f,{value:`user`,children:`user`})]})]})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`contentType-${t.id}`,children:`Content Type`}),(0,R.jsxs)(p,{value:U,onValueChange:e=>W(e),disabled:E===`llm`&&Z,children:[(0,R.jsx)(u,{id:`contentType-${t.id}`,"data-testid":`sampling-content-type-select`,children:(0,R.jsx)(l,{})}),(0,R.jsxs)(d,{children:[(0,R.jsx)(f,{value:`text`,children:`text`}),(0,R.jsx)(f,{value:`image`,children:`image`})]})]})]}),U===`text`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`text-${t.id}`,children:`Text Content`}),(0,R.jsx)(I,{id:`text-${t.id}`,value:G,onChange:e=>K(e.target.value),placeholder:`Enter response text...`,rows:6,disabled:E===`llm`&&Z,"data-testid":`sampling-text-content`})]}),U===`image`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`imageData-${t.id}`,children:`Base64 Image Data`}),(0,R.jsx)(I,{id:`imageData-${t.id}`,value:q,onChange:e=>J(e.target.value),placeholder:`Base64 encoded image data...`,rows:4,disabled:E===`llm`&&Z})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(c,{htmlFor:`mimeType-${t.id}`,children:`MIME Type`}),(0,R.jsx)(a,{id:`mimeType-${t.id}`,value:Y,onChange:e=>X(e.target.value),placeholder:`image/png`,disabled:E===`llm`&&Z})]})]})]})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-4 border-t dark:border-zinc-700`,children:[(0,R.jsx)(s,{onClick:()=>{if(!t)return;let n=x.CreateMessageResult[`~standard`].validate(se);if(n.issues){k.error(`Invalid response`,{description:`Validation failed: ${n.issues.map(e=>e.message).join(`, `)}`});return}o(t.id,n.value),h(),O(()=>import(`./react-CU_d2d5K.js`).then(t=>e(t.t(),1)).then(e=>{let n=k(e.createElement(`div`,{className:`space-y-3`},e.createElement(`div`,null,e.createElement(`strong`,null,`Sampling Response Sent`),e.createElement(`p`,{className:`text-sm text-muted-foreground mt-1`},`The tool will continue executing.`)),e.createElement(`div`,{className:`flex gap-2`},e.createElement(`button`,{"data-testid":`sampling-view-tool-result`,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90`,onClick:()=>{let e=new globalThis.CustomEvent(`navigate-to-tool-result`,{detail:{toolName:t.toolName}});window.dispatchEvent(e),k.dismiss(n)}},`View Tool Result`))),{duration:5e3})}),[])},className:`flex-1`,disabled:E===`llm`&&Z,"data-testid":`sampling-approve-button`,children:`Approve`}),(0,R.jsx)(s,{onClick:()=>{t&&(m(t.id,`User rejected sampling request`),h())},variant:`outline`,className:`flex-1`,disabled:E===`llm`&&Z,"data-testid":`sampling-reject-button`,children:`Reject`})]})]}):(0,R.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Select a sampling request to view details`})})}function H({pendingRequests:e,onApprove:t,onReject:n,serverId:r,isConnected:i,mcpServerUrl:a}){let{selectedSamplingRequestId:o,setSelectedSamplingRequestId:s}=te(),{llmConfig:c}=F({mcpServerUrl:a}),[l,u]=(0,L.useState)(null),[d,f]=(0,L.useState)(``),[p,_]=(0,L.useState)(-1),[y,b]=(0,L.useState)(!0),[x,S]=(0,L.useState)(!1),[C,w]=(0,L.useState)(!0),[T,D]=(0,L.useState)(!1),O=(0,L.useRef)(null),k=(0,L.useRef)(null),j=(0,L.useRef)(null),N=(0,L.useRef)(!1);(0,L.useEffect)(()=>{if(console.log(`[SamplingTab] Auto-selection check:`,{selectedSamplingRequestId:o,pendingRequestsCount:e.length,currentSelectedId:l?.id}),o&&e.length>0){let t=e.find(e=>e.id===o);console.log(`[SamplingTab] Found request for auto-selection:`,!!t,t?.id),t&&(console.log(`[SamplingTab] Auto-selecting request:`,t.id),s(null),u(t),setTimeout(()=>{let e=document.getElementById(`sampling-request-${t.id}`);console.log(`[SamplingTab] Scrolling to element:`,!!e),e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`})},100))}},[o,e,s]),(0,L.useEffect)(()=>{let t=t=>{let n=t.detail.requestId;console.log(`[SamplingTab] Custom navigate event received:`,n);let r=e.find(e=>e.id===n);r&&(console.log(`[SamplingTab] Selecting request from event:`,n),u(r),setTimeout(()=>{let e=document.getElementById(`sampling-request-${n}`);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`})},200))};return window.addEventListener(`navigate-to-sampling`,t),()=>window.removeEventListener(`navigate-to-sampling`,t)},[e]),(0,L.useEffect)(()=>{y&&e.length>0&&O.current&&!N.current&&(O.current.scrollTop=0)},[e.length,y]),(0,L.useEffect)(()=>{let e=O.current;if(!e)return;let t=()=>{e.scrollTop>0&&(N.current=!0,b(!1))};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[]),(0,L.useEffect)(()=>{e.length===0&&(N.current=!1,b(!0))},[e.length]),(0,L.useEffect)(()=>{x&&j.current&&j.current.focus()},[x]);let P=(0,L.useCallback)(()=>{d.trim()||S(!1)},[d]),I=(0,L.useMemo)(()=>{if(!d.trim())return e;let t=d.toLowerCase();return e.filter(e=>e.serverName.toLowerCase().includes(t)||JSON.stringify(e.request||{}).toLowerCase().includes(t))},[e,d]);(0,L.useEffect)(()=>{_(-1)},[d]),(0,L.useEffect)(()=>{let e=e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.contentEditable===`true`||e.metaKey||e.ctrlKey||e.altKey)return;let n=I;if(e.key===`ArrowDown`)e.preventDefault(),_(e=>{let t=e+1;return t>=n.length?0:t});else if(e.key===`ArrowUp`)e.preventDefault(),_(e=>{let t=e-1;return t<0?n.length-1:t});else if(e.key===`Enter`&&p>=0){e.preventDefault();let t=I[p];t&&B(t)}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[p,I]),(0,L.useEffect)(()=>{if(p>=0){let e=`sampling-request-${I[p]?.id}`,t=document.getElementById(e);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}},[p,I]);let B=(0,L.useCallback)(e=>{u(e)},[]),H=(0,L.useCallback)(()=>{window.confirm(`Are you sure you want to reject all sampling requests? This cannot be undone.`)&&(e.forEach(e=>{n(e.id,`User rejected all requests`)}),u(null))},[e,n]),U=(0,L.useCallback)(async()=>{if(l)try{await E(JSON.stringify({id:l.id,serverName:l.serverName,timestamp:l.timestamp,request:l.request},null,2)),D(!0),setTimeout(()=>D(!1),2e3)}catch(e){console.error(`[SamplingTab] Failed to copy request:`,e)}},[l]),W=(0,L.useCallback)(()=>{if(l)try{let e=new globalThis.Blob([JSON.stringify({id:l.id,serverName:l.serverName,timestamp:l.timestamp,request:l.request},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`sampling-request-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}catch(e){console.error(`[SamplingTab] Failed to download request:`,e)}},[l]),G=(0,L.useCallback)(async()=>{if(k.current)try{document.fullscreenElement?await document.exitFullscreen():await k.current.requestFullscreen()}catch(e){console.error(`[SamplingTab] Failed to toggle fullscreen:`,e)}},[]);return i?(0,R.jsxs)(g,{orientation:`horizontal`,className:`h-full`,children:[(0,R.jsx)(m,{defaultSize:40,minSize:30,children:(0,R.jsx)(g,{orientation:`vertical`,className:`h-full border-r dark:border-zinc-700`,children:(0,R.jsx)(m,{defaultSize:75,minSize:30,className:`h-full overflow-hidden`,children:(0,R.jsx)(ee,{scrollRef:O,children:t=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(v,{isScrolled:t,title:`Sampling`,icon:A,count:I.length,isSearchExpanded:x,searchQuery:d,searchPlaceholder:`Search requests...`,onSearchExpand:()=>S(!0),onSearchChange:f,onSearchBlur:P,bulkAction:{icon:ne,label:`Reject all`,onClick:H,disabled:e.length===0},searchInputRef:j}),(0,R.jsx)(z,{requests:I,selectedRequest:l,onRequestSelect:B,focusedIndex:p,formatRelativeTime:M})]})})})})}),(0,R.jsx)(h,{}),(0,R.jsx)(m,{defaultSize:60,minSize:40,children:(0,R.jsx)(`div`,{ref:k,className:`h-full bg-white dark:bg-zinc-900`,children:(0,R.jsx)(V,{request:l,onApprove:t,onReject:n,onClose:()=>u(null),previewMode:C,onTogglePreview:()=>w(!C),isCopied:T,onCopy:U,onDownload:W,onFullscreen:G,llmConfig:c})})})]}):(0,R.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-4 text-center`,children:[(0,R.jsx)(A,{className:`h-12 w-12 text-gray-400 dark:text-gray-600 mb-3`}),(0,R.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:`Not connected to server`})]})}export{H as SamplingTab};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{d as n,l as r,u as i}from"./input-C0OQCUZy.js";import{n as a}from"./createLucideIcon-BEHeJH0M.js";import{t as o}from"./label-CI7JWQOo.js";import{at as s,b as c,gt as l,ht as u,it as d,nt as f,rt as p,tt as m,un as h}from"./index-BMaSsizY.js";import{n as g,r as _,t as v}from"./tabs-subtle-D2XkWhLL.js";import{t as y}from"./inspector-settings-layout-yjKRJDai.js";import{n as b}from"./ListTabHeader-CrGae306.js";function x(e){let t={};if(e.protocolVersion&&(t.protocolVersion=e.protocolVersion),e.capabilities&&(t.capabilities=e.capabilities),e.serverInfo){let{icon:n,...r}=e.serverInfo;t.serverInfo=r}return e.instructions&&(t.instructions=e.instructions),t}var S=e(t(),1),C=a();function w({connection:e}){let t=e.capabilities;return t&&Object.keys(t).length>0?(0,C.jsx)(`div`,{className:`overflow-x-auto`,"data-testid":`server-info-capabilities-json`,children:(0,C.jsx)(c,{data:t,filename:`capabilities-${l(e)}.json`})}):(0,C.jsx)(`p`,{className:`text-sm text-muted-foreground`,"data-testid":`server-info-capabilities`,children:`No capabilities reported.`})}var T=`space-y-1.5 min-w-0`;function E({label:e,children:t,className:n,testId:r}){return(0,C.jsxs)(`div`,{className:n??T,children:[(0,C.jsx)(o,{className:`text-xs text-muted-foreground`,children:e}),(0,C.jsx)(`div`,{className:`min-h-4 text-xs font-mono`,"data-testid":r,children:t})]})}function D({connection:e,inDialog:t=!1}){let n=u(e),r=e.serverInfo?.name||e.serverInfo?.title||e.url||e.name;return(0,C.jsxs)(`div`,{className:`space-y-6`,children:[(0,C.jsxs)(m,{className:`border`,children:[(0,C.jsxs)(d,{children:[(0,C.jsx)(s,{className:`text-base font-medium`,children:t?`General`:`Server Information`}),(0,C.jsx)(p,{children:`Server identity from initialize`})]}),(0,C.jsx)(f,{className:`pt-0`,children:(0,C.jsxs)(`div`,{className:`flex flex-wrap items-start gap-x-8 gap-y-4`,children:[e.serverInfo?.title&&(0,C.jsx)(E,{label:`Title`,children:(0,C.jsx)(`span`,{className:`inline-block rounded-md bg-muted p-1 px-2`,children:e.serverInfo.title})}),n&&(0,C.jsx)(E,{label:`Alias`,children:(0,C.jsx)(`span`,{className:`inline-block rounded-md bg-muted p-1 px-2`,children:n})}),(0,C.jsx)(E,{label:`Name`,testId:`server-info-name`,children:(0,C.jsx)(`span`,{className:`inline-block rounded-md bg-muted p-1 px-2`,children:r})}),e.serverInfo?.version&&(0,C.jsx)(E,{label:`Version`,children:(0,C.jsx)(`span`,{className:`inline-block rounded-md bg-muted p-1 px-2`,children:e.serverInfo.version})}),e.protocolVersion&&(0,C.jsx)(E,{label:`Protocol`,children:(0,C.jsx)(`span`,{className:`inline-block rounded-md bg-muted p-1 px-2`,children:e.protocolVersion})}),e.serverInfo?.websiteUrl&&(0,C.jsx)(E,{label:`Website`,className:`${T} w-full`,children:(0,C.jsx)(`a`,{href:e.serverInfo.websiteUrl,target:`_blank`,rel:`noopener noreferrer`,className:`break-all font-sans text-blue-500 hover:underline`,children:e.serverInfo.websiteUrl})})]})})]}),e.instructions&&(0,C.jsxs)(m,{className:`border`,children:[(0,C.jsxs)(d,{children:[(0,C.jsx)(s,{className:`text-base font-medium`,children:`Instructions`}),(0,C.jsx)(p,{children:`Server guidance for clients and agents`})]}),(0,C.jsx)(f,{className:`pt-0`,children:(0,C.jsx)(`p`,{className:`whitespace-pre-wrap font-sans text-sm text-muted-foreground`,children:e.instructions})})]}),e.serverInfo?.icons&&e.serverInfo.icons.length>0&&(0,C.jsxs)(m,{className:`border`,children:[(0,C.jsxs)(d,{children:[(0,C.jsx)(s,{className:`text-base font-medium`,children:`Icons`}),(0,C.jsx)(p,{children:`Server icon assets from initialize`})]}),(0,C.jsx)(f,{className:`pt-0`,children:(0,C.jsx)(`div`,{className:`flex flex-col gap-2 font-sans`,children:e.serverInfo.icons.map((e,t)=>(0,C.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md bg-muted p-2`,"data-testid":`server-info-icon-${t}`,children:[(0,C.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border bg-background`,children:(0,C.jsx)(`img`,{src:e.src,alt:`Server icon ${t+1}`,className:`h-full w-full object-contain`})}),(0,C.jsxs)(`div`,{className:`min-w-0 text-xs`,children:[(0,C.jsx)(`p`,{className:`truncate font-mono`,children:e.src}),(0,C.jsx)(`p`,{className:`text-muted-foreground`,children:e.sizes?.join(`, `)||`no size`})]})]},t))})})]}),(0,C.jsxs)(m,{className:`border`,"data-testid":`server-info-capabilities`,children:[(0,C.jsxs)(d,{children:[(0,C.jsx)(s,{className:`text-base font-medium`,children:`Capabilities`}),(0,C.jsx)(p,{children:`MCP capabilities reported during initialize`})]}),(0,C.jsx)(f,{className:`pt-0`,children:(0,C.jsx)(w,{connection:e})})]})]})}var O=`server-metadata`;function k({connection:e}){let[t,a]=(0,S.useState)(0),[o,s]=(0,S.useState)(!1),u=x(e);return(0,C.jsxs)(`div`,{"data-testid":`server-info-modal`,className:`h-full overflow-y-auto overscroll-none`,onScroll:e=>s(e.currentTarget.scrollTop>0),children:[(0,C.jsx)(`div`,{className:`${r(o)} flex flex-row items-center justify-between gap-2 ${i}`,children:(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center sm:gap-4`,children:[(0,C.jsxs)(`h2`,{className:`${n} flex items-center gap-1.5`,"data-testid":`server-info-modal-title`,children:[(0,C.jsx)(h,{className:b,"aria-hidden":!0}),`Server Metadata`]}),(0,C.jsxs)(v,{selectedIndex:t,onSelect:a,idPrefix:O,className:`shrink-0`,children:[(0,C.jsx)(g,{label:`Formatted`,index:0}),(0,C.jsx)(g,{label:`Raw`,index:1})]})]})}),(0,C.jsx)(_,{index:0,selectedIndex:t,idPrefix:O,className:y,children:(0,C.jsx)(D,{connection:e})}),(0,C.jsx)(_,{index:1,selectedIndex:t,idPrefix:O,className:`px-4 pt-6 pb-6`,children:(0,C.jsx)(`div`,{"data-testid":`server-info-raw`,children:Object.keys(u).length===0?(0,C.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No initialize metadata yet. Connect to the server first.`}):(0,C.jsx)(c,{data:u,filename:`initialize-result-${l(e)}-${Date.now()}.json`})})})]})}export{k as ServerMetadataTab};