@mcp-use/inspector 0.22.0 → 0.22.1

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 (221) hide show
  1. package/dist/cdn/inspector.css +1 -1
  2. package/dist/cdn/inspector.js +55997 -65008
  3. package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
  4. package/dist/client/components/MCPAppsRenderer.d.ts +3 -1
  5. package/dist/client/components/MCPAppsRenderer.d.ts.map +1 -1
  6. package/dist/client/components/OpenAIComponentRenderer.d.ts +5 -1
  7. package/dist/client/components/OpenAIComponentRenderer.d.ts.map +1 -1
  8. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
  9. package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
  10. package/dist/client/index.js +665 -587
  11. package/dist/web/assets/{1c-BWzch4JO.js → 1c-CuB6KJny.js} +1 -1
  12. package/dist/web/assets/{abnf-CT_zhnxW.js → abnf-331NRzq6.js} +1 -1
  13. package/dist/web/assets/{accesslog-cShhb8zs.js → accesslog-DPZ1SVBF.js} +1 -1
  14. package/dist/web/assets/{actionscript-Cq_Ed--N.js → actionscript-CuGZR-oV.js} +1 -1
  15. package/dist/web/assets/{ada-uJsdDpQf.js → ada-DRqvTj3B.js} +1 -1
  16. package/dist/web/assets/{angelscript-DrPTtC5L.js → angelscript-CP2_ypHm.js} +1 -1
  17. package/dist/web/assets/{apache-BGLo0lBQ.js → apache-DP5S1Xwo.js} +1 -1
  18. package/dist/web/assets/{applescript-C2ed31F3.js → applescript-CLh7Bl5g.js} +1 -1
  19. package/dist/web/assets/{arcade-wPY44wYa.js → arcade-L7ZIK7Vg.js} +1 -1
  20. package/dist/web/assets/{arduino-Ci84_OQ7.js → arduino-D38C-BRe.js} +1 -1
  21. package/dist/web/assets/{armasm-BT7fDyyc.js → armasm-BL0z-zkV.js} +1 -1
  22. package/dist/web/assets/{asciidoc-hcetSBLZ.js → asciidoc-BwOqzYyI.js} +1 -1
  23. package/dist/web/assets/{aspectj-qP5GW6zg.js → aspectj-CsfF5uHW.js} +1 -1
  24. package/dist/web/assets/{autohotkey-BRTSaEN9.js → autohotkey-BnfF2slP.js} +1 -1
  25. package/dist/web/assets/{autoit-1B-H0U7m.js → autoit-BUNufrnh.js} +1 -1
  26. package/dist/web/assets/{avrasm-D3Ji68Dt.js → avrasm-BUwC6GGa.js} +1 -1
  27. package/dist/web/assets/{awk-pRLtu3M7.js → awk-BAn6DoRI.js} +1 -1
  28. package/dist/web/assets/{axapta-CGXwOjn1.js → axapta-C5EQhsWz.js} +1 -1
  29. package/dist/web/assets/{bash-CL86Bo5U.js → bash-CXJ0QYm_.js} +1 -1
  30. package/dist/web/assets/{basic-713emR8B.js → basic-8InlTbNb.js} +1 -1
  31. package/dist/web/assets/{bnf-D5IR6nw6.js → bnf-zpEK5Wju.js} +1 -1
  32. package/dist/web/assets/{brainfuck-DzHDailX.js → brainfuck-BhgAAx-v.js} +1 -1
  33. package/dist/web/assets/{c-DvWo53J5.js → c-CDPkc2Ya.js} +1 -1
  34. package/dist/web/assets/{c-like-XXh9X4pX.js → c-like-Ds21bDLY.js} +1 -1
  35. package/dist/web/assets/{cal-CGXJawoG.js → cal-DWpElLgG.js} +1 -1
  36. package/dist/web/assets/{capnproto-B-81vtig.js → capnproto-96me6T8-.js} +1 -1
  37. package/dist/web/assets/{ceylon-C9jkMJyl.js → ceylon-Eu9VMqL5.js} +1 -1
  38. package/dist/web/assets/{clean-Bl5mmdRd.js → clean-Bw3NaeUf.js} +1 -1
  39. package/dist/web/assets/{client-DtN-_gPI.js → client-Dqtz8Ili.js} +3 -3
  40. package/dist/web/assets/{clojure-BukU2jlg.js → clojure-CcB35oPu.js} +1 -1
  41. package/dist/web/assets/{clojure-repl-9lcYFe-R.js → clojure-repl-UmCtFENG.js} +1 -1
  42. package/dist/web/assets/{cmake-D6hq-I__.js → cmake-BNsFX7mM.js} +1 -1
  43. package/dist/web/assets/{coffeescript-C_J7DXX1.js → coffeescript-BO-bY-7g.js} +1 -1
  44. package/dist/web/assets/{coq-gXkBAlvJ.js → coq-DxEbCmAp.js} +1 -1
  45. package/dist/web/assets/{core-LI0wjVSm.js → core-Ca6TmLdX.js} +1 -1
  46. package/dist/web/assets/{cos-BTplGz5w.js → cos-D7p4YQ1F.js} +1 -1
  47. package/dist/web/assets/{cpp-CI1760Ho.js → cpp-BfXjKrw-.js} +1 -1
  48. package/dist/web/assets/{crmsh-DH6-DvgY.js → crmsh-Cu_wHzWI.js} +1 -1
  49. package/dist/web/assets/{crystal-hjrHp7Yv.js → crystal-B4ffFRgA.js} +1 -1
  50. package/dist/web/assets/{csharp-CB3yKbly.js → csharp-F3YLadH3.js} +1 -1
  51. package/dist/web/assets/{csp-B00phXpq.js → csp-BLkoFjJ1.js} +1 -1
  52. package/dist/web/assets/{css-StInuocU.js → css-CBlOEu5y.js} +1 -1
  53. package/dist/web/assets/{d-CV5_tWwR.js → d-B8LLg7Ap.js} +1 -1
  54. package/dist/web/assets/{dart-DrmTIzw4.js → dart-Bg7_Weak.js} +1 -1
  55. package/dist/web/assets/{delphi-BcB6hhpr.js → delphi-CUFJtF08.js} +1 -1
  56. package/dist/web/assets/{diff-Pp2W_HQg.js → diff-D6IyExXS.js} +1 -1
  57. package/dist/web/assets/{display-A5IEINAP-CIXsdDM7.js → display-A5IEINAP-CalMK9h7.js} +2 -2
  58. package/dist/web/assets/{django-DET02Zuf.js → django-B-UTY01C.js} +1 -1
  59. package/dist/web/assets/{dns-4f_7PIO9.js → dns-DfGDf7is.js} +1 -1
  60. package/dist/web/assets/{dockerfile-vEZJ0uxd.js → dockerfile-BYeQ3jyi.js} +1 -1
  61. package/dist/web/assets/{dos-BixYFWhs.js → dos-B_5-_6xr.js} +1 -1
  62. package/dist/web/assets/{dsconfig-BnZ9x7Vm.js → dsconfig-uyDAQQAU.js} +1 -1
  63. package/dist/web/assets/{dts-Bcw323rr.js → dts-D75DwEM4.js} +1 -1
  64. package/dist/web/assets/{dust-BiiBiKFU.js → dust-JsNLCukW.js} +1 -1
  65. package/dist/web/assets/{ebnf-I_IglJLf.js → ebnf-BP6c5l4a.js} +1 -1
  66. package/dist/web/assets/{elixir-BJEHSyvP.js → elixir-CUhtoXbR.js} +1 -1
  67. package/dist/web/assets/{elm-cM6RkEze.js → elm-CKMhE8ah.js} +1 -1
  68. package/dist/web/assets/{embeddings-CnYfeC12.js → embeddings-LX6aYruq.js} +1 -1
  69. package/dist/web/assets/{erb-Nv9XiE06.js → erb-CIx8MUO5.js} +1 -1
  70. package/dist/web/assets/{erlang-k6hoIbAZ.js → erlang-CkXPsz4M.js} +1 -1
  71. package/dist/web/assets/{erlang-repl-DV3N7nkq.js → erlang-repl-k7jT--Ou.js} +1 -1
  72. package/dist/web/assets/{excel-Bxh_DxOW.js → excel-C5SkgBGz.js} +1 -1
  73. package/dist/web/assets/{fix-g6kXHsfa.js → fix-_4ZjoSTH.js} +1 -1
  74. package/dist/web/assets/{flix-Cryw522y.js → flix-DnrR-dRx.js} +1 -1
  75. package/dist/web/assets/{fortran-BD0HhvEj.js → fortran-CD6uDQX4.js} +1 -1
  76. package/dist/web/assets/{fsharp-vMayoDV0.js → fsharp-DTtzfUsx.js} +1 -1
  77. package/dist/web/assets/{gams-C1Wn9txH.js → gams-CQk2cq7o.js} +1 -1
  78. package/dist/web/assets/{gauss-DsKIEzQY.js → gauss-CtDmpxAf.js} +1 -1
  79. package/dist/web/assets/{gcode-DU2tUCEF.js → gcode-B_EYK0Vg.js} +1 -1
  80. package/dist/web/assets/{gherkin-DeUH7cEV.js → gherkin-DVcj5Cvn.js} +1 -1
  81. package/dist/web/assets/{glsl-DYiVBLqm.js → glsl-BoRlfwJN.js} +1 -1
  82. package/dist/web/assets/{gml-gas72WV-.js → gml-DwXf4s-K.js} +1 -1
  83. package/dist/web/assets/{go-BcwxmCu3.js → go-jKSz3kk6.js} +1 -1
  84. package/dist/web/assets/{golo-zePT5_Bc.js → golo-Dz5XOjjS.js} +1 -1
  85. package/dist/web/assets/{gradle-1GIWcZRP.js → gradle-CG3C4PH5.js} +1 -1
  86. package/dist/web/assets/{groovy-F95cfGVA.js → groovy-SRcDLXTF.js} +1 -1
  87. package/dist/web/assets/{haml-Csn-F8TT.js → haml-CJsy3-F-.js} +1 -1
  88. package/dist/web/assets/{handlebars-CJUa8Oym.js → handlebars-LN8E0NSL.js} +1 -1
  89. package/dist/web/assets/{haskell-BWMYMGc0.js → haskell-ZP5N77Rb.js} +1 -1
  90. package/dist/web/assets/{haxe-DShjNAaD.js → haxe-S_8gGOoI.js} +1 -1
  91. package/dist/web/assets/{hsp-BYg3woMs.js → hsp-KqF2E7-o.js} +1 -1
  92. package/dist/web/assets/{htmlbars-DESfSS0b.js → htmlbars-Bw_UyB1p.js} +1 -1
  93. package/dist/web/assets/{http-CmDctLNs.js → http-BI5U1FE3.js} +1 -1
  94. package/dist/web/assets/{hy-CL-17rgL.js → hy-BAOLWsZC.js} +1 -1
  95. package/dist/web/assets/index-B53yBrEF.css +1 -0
  96. package/dist/web/assets/{index-B1hmvbOl.js → index-BJOEo8tI.js} +1 -1
  97. package/dist/web/assets/{index-IBr5XNeV.js → index-Bmd2u1yJ.js} +1 -1
  98. package/dist/web/assets/{index-DXXcD1Qg.js → index-ChIi2Veb.js} +1 -1
  99. package/dist/web/assets/{index-BMhVR8vU.js → index-Cz7z8sOR.js} +1 -1
  100. package/dist/web/assets/{index-uEj4g89g.js → index-DUSfaXA6.js} +1 -1
  101. package/dist/web/assets/{index-DEX9beXi.js → index-DtyH_PEF.js} +1 -1
  102. package/dist/web/assets/index-YcAOTRMN.js +2005 -0
  103. package/dist/web/assets/{inform7-DV3NXpQ5.js → inform7-DgEbiTHe.js} +1 -1
  104. package/dist/web/assets/{ini-8iBTslYp.js → ini-VsC63Yhp.js} +1 -1
  105. package/dist/web/assets/{irpf90-OKqjue6L.js → irpf90-BPXrE0Br.js} +1 -1
  106. package/dist/web/assets/{isbl-BIO2oFCV.js → isbl-Dz4HkKrY.js} +1 -1
  107. package/dist/web/assets/{java-BIc--hdi.js → java-C5QDkp3s.js} +1 -1
  108. package/dist/web/assets/{javascript-B7yKBThj.js → javascript-Qw1A7HIi.js} +1 -1
  109. package/dist/web/assets/{jboss-cli-DC-_tFfH.js → jboss-cli-DjxxWoe7.js} +1 -1
  110. package/dist/web/assets/{json-PFyQrwyu.js → json-DwXmVB99.js} +1 -1
  111. package/dist/web/assets/{julia-Dmc9vUNO.js → julia-_UEF-d-n.js} +1 -1
  112. package/dist/web/assets/{julia-repl-B-AGoEfG.js → julia-repl-BmGjKqDN.js} +1 -1
  113. package/dist/web/assets/{kotlin-CSISp0y1.js → kotlin-BGX09JNe.js} +1 -1
  114. package/dist/web/assets/{langfuse-U2OEF7K7-uZdZcMU4.js → langfuse-U2OEF7K7-oUFfuCA2.js} +24 -24
  115. package/dist/web/assets/{lasso-uHxA2qvQ.js → lasso-CMKn1wD1.js} +1 -1
  116. package/dist/web/assets/{latex-Di4WjkOv.js → latex-CSuZLxub.js} +1 -1
  117. package/dist/web/assets/{ldif-Bvwv1mY0.js → ldif-DtYZcb6_.js} +1 -1
  118. package/dist/web/assets/{leaf-ScGR4pgd.js → leaf-Dm7kHn1u.js} +1 -1
  119. package/dist/web/assets/{less-C_yutJld.js → less-BduOo7w1.js} +1 -1
  120. package/dist/web/assets/{lisp-eMkPYcv6.js → lisp-CTN_y443.js} +1 -1
  121. package/dist/web/assets/{livecodeserver-B1TcgaLa.js → livecodeserver-Bt_3a5Le.js} +1 -1
  122. package/dist/web/assets/{livescript-DdG6soNy.js → livescript-fany4WHq.js} +1 -1
  123. package/dist/web/assets/{llms-DfKXFwBa.js → llms-CaZsx5qn.js} +1 -1
  124. package/dist/web/assets/{llvm-BmiTBJX_.js → llvm-BPeNPow9.js} +1 -1
  125. package/dist/web/assets/{lsl-OzzojTdy.js → lsl-CUkRosfV.js} +1 -1
  126. package/dist/web/assets/{lua-CwCsCmNp.js → lua-BYvWg4jg.js} +1 -1
  127. package/dist/web/assets/{makefile-BgYLIf-U.js → makefile-oS53Vg0z.js} +1 -1
  128. package/dist/web/assets/{markdown-fAPd4l7n.js → markdown-D_B0fAXx.js} +1 -1
  129. package/dist/web/assets/{mathematica-BjKA6SaI.js → mathematica-DKe-IuUK.js} +1 -1
  130. package/dist/web/assets/{matlab-BPH3IYVZ.js → matlab-D_21Tl-L.js} +1 -1
  131. package/dist/web/assets/{maxima-CTpKKknl.js → maxima-DUtL1egA.js} +1 -1
  132. package/dist/web/assets/{mel-Bib6Tv-L.js → mel-LAIz87bj.js} +1 -1
  133. package/dist/web/assets/{mercury-CALdU6Ge.js → mercury-zYnf0BJA.js} +1 -1
  134. package/dist/web/assets/{mipsasm-CqdP7SS2.js → mipsasm-By1nFx6c.js} +1 -1
  135. package/dist/web/assets/{mizar-DEE5bHZf.js → mizar-Bzhf-tV1.js} +1 -1
  136. package/dist/web/assets/{mojolicious-hZVHxmhq.js → mojolicious-B8QJxbI8.js} +1 -1
  137. package/dist/web/assets/{monkey-DNdkILnH.js → monkey-Z_CyDrLh.js} +1 -1
  138. package/dist/web/assets/{moonscript-DgK0T-HS.js → moonscript-CoDseIDC.js} +1 -1
  139. package/dist/web/assets/{n1ql-CIlKRRs6.js → n1ql-BEBUEhhE.js} +1 -1
  140. package/dist/web/assets/{nginx-DpOexGSF.js → nginx-BGCHEvnU.js} +1 -1
  141. package/dist/web/assets/{nim-BCPh1ovx.js → nim-Ctrpw--E.js} +1 -1
  142. package/dist/web/assets/{nix-B2-gxrbR.js → nix-Caa5UC27.js} +1 -1
  143. package/dist/web/assets/{node-repl-GjXp6CLP.js → node-repl-sr3s7jQZ.js} +1 -1
  144. package/dist/web/assets/{nsis-O9G0lH29.js → nsis-CzkCLfi2.js} +1 -1
  145. package/dist/web/assets/{objectivec-B3b_RACR.js → objectivec-jvD65_0I.js} +1 -1
  146. package/dist/web/assets/{ocaml-DtfZ5tri.js → ocaml-DhDYdcp2.js} +1 -1
  147. package/dist/web/assets/{openscad-BejXLlQ2.js → openscad-BqnRwGZd.js} +1 -1
  148. package/dist/web/assets/{oxygene-DNd9sLzW.js → oxygene-Cd0jRim3.js} +1 -1
  149. package/dist/web/assets/{parser3-DRtE79m9.js → parser3-BETxqEki.js} +1 -1
  150. package/dist/web/assets/{perl-Dip9KECA.js → perl-knvs0MzJ.js} +1 -1
  151. package/dist/web/assets/{pf-lt9Y1lR8.js → pf-DiXaovgm.js} +1 -1
  152. package/dist/web/assets/{pgsql-BQL9JHoh.js → pgsql-BWEvOXP5.js} +1 -1
  153. package/dist/web/assets/{php-Bi6324i6.js → php-fyvUpIS6.js} +1 -1
  154. package/dist/web/assets/{php-template-Dm96hKrh.js → php-template-Bvb-N_hu.js} +1 -1
  155. package/dist/web/assets/{plaintext-DMCXt4YO.js → plaintext-Dwt8jzyJ.js} +1 -1
  156. package/dist/web/assets/{pony-Bia0W3TW.js → pony-Cfelzwqf.js} +1 -1
  157. package/dist/web/assets/{powershell-xoiy_WI4.js → powershell-2b2YR7rM.js} +1 -1
  158. package/dist/web/assets/{processing-is58fA9K.js → processing-CgyyQkLr.js} +1 -1
  159. package/dist/web/assets/{profile-BOoDppKU.js → profile-CHSonwOR.js} +1 -1
  160. package/dist/web/assets/{prolog-BYxlSk9o.js → prolog-CArpL4nb.js} +1 -1
  161. package/dist/web/assets/{properties-BO1Iq-dJ.js → properties-B7x5j4f3.js} +1 -1
  162. package/dist/web/assets/{protobuf-Srgh7iT4.js → protobuf-DbZMyS9y.js} +1 -1
  163. package/dist/web/assets/{puppet-DWSUFkvp.js → puppet-CyK4RmCj.js} +1 -1
  164. package/dist/web/assets/{purebasic-DxNUDCE4.js → purebasic-Bu9BNLQf.js} +1 -1
  165. package/dist/web/assets/{python-DovuYhDu.js → python-DpcgEz0v.js} +1 -1
  166. package/dist/web/assets/{python-repl-B1OBOSTn.js → python-repl-BAoj7DrU.js} +1 -1
  167. package/dist/web/assets/{q-42rDkXms.js → q-aLpDzBqb.js} +1 -1
  168. package/dist/web/assets/{qml-CBCHfIu7.js → qml-CF8YT9EP.js} +1 -1
  169. package/dist/web/assets/{r-CaE923HL.js → r-DJifPsK_.js} +1 -1
  170. package/dist/web/assets/{reasonml-BYrYCrep.js → reasonml-DYlZCQtf.js} +1 -1
  171. package/dist/web/assets/{rib-Bhv7NbId.js → rib-BWlooZzU.js} +1 -1
  172. package/dist/web/assets/{roboconf-BfZ1K6KL.js → roboconf-B3mKPOxb.js} +1 -1
  173. package/dist/web/assets/{routeros-BXIpVeBP.js → routeros-Ri82AIpo.js} +1 -1
  174. package/dist/web/assets/{rsl-Bjm5MqAG.js → rsl-YFzXeAfb.js} +1 -1
  175. package/dist/web/assets/{ruby-CPet6iCi.js → ruby-CjV_PTlL.js} +1 -1
  176. package/dist/web/assets/{ruleslanguage-DK-1k2MI.js → ruleslanguage-DJCtPhmJ.js} +1 -1
  177. package/dist/web/assets/{rust-9ntsz2kE.js → rust-T_ZZbr83.js} +1 -1
  178. package/dist/web/assets/{sas-91qluzca.js → sas-DnThN-QA.js} +1 -1
  179. package/dist/web/assets/{scala-QAnm6LqO.js → scala-CiCGCGBM.js} +1 -1
  180. package/dist/web/assets/{scheme-CbCu1C1B.js → scheme-C81ecRNU.js} +1 -1
  181. package/dist/web/assets/{scilab-CrQkRgM7.js → scilab-yIe92bs8.js} +1 -1
  182. package/dist/web/assets/{scss-D_KOChRt.js → scss-BGCT6i58.js} +1 -1
  183. package/dist/web/assets/{shell-TLeode3j.js → shell-CtJaW7qj.js} +1 -1
  184. package/dist/web/assets/{smali-DLlQwRbQ.js → smali-D9JxR6Ok.js} +1 -1
  185. package/dist/web/assets/{smalltalk-EAR6TTRw.js → smalltalk-Cc681-eJ.js} +1 -1
  186. package/dist/web/assets/{sml-N2cejLu1.js → sml-CTRWATz0.js} +1 -1
  187. package/dist/web/assets/{sqf-C22NGT13.js → sqf-DSWEsa4V.js} +1 -1
  188. package/dist/web/assets/{sql-CWTNbFDI.js → sql-CDB6g9ay.js} +1 -1
  189. package/dist/web/assets/{sql_more-CnZjQWQO.js → sql_more-CpMC6pU4.js} +1 -1
  190. package/dist/web/assets/{stan-BK8Qdckq.js → stan-BHnXBW_m.js} +1 -1
  191. package/dist/web/assets/{stata-DyqAXFWa.js → stata-84iUAWPp.js} +1 -1
  192. package/dist/web/assets/{stdio-MPKB6J4F-B0j-te4c.js → stdio-ZJFIZK2F-DAa98oll.js} +1 -1
  193. package/dist/web/assets/{step21-DHjUfeMe.js → step21-DDfRrzcc.js} +1 -1
  194. package/dist/web/assets/{stylus-YUPPnLVL.js → stylus-6UGB2DbU.js} +1 -1
  195. package/dist/web/assets/{subunit-B8m1GQqo.js → subunit-CI6BjWYM.js} +1 -1
  196. package/dist/web/assets/{swift-DhFAtG6r.js → swift-gZKjqZzX.js} +1 -1
  197. package/dist/web/assets/{taggerscript-BX_x0Ial.js → taggerscript-4a4rpAZe.js} +1 -1
  198. package/dist/web/assets/{tap-6j4jJ06c.js → tap-1yGDzo5T.js} +1 -1
  199. package/dist/web/assets/{tcl-BMqmGvnI.js → tcl-Blqm3M6H.js} +1 -1
  200. package/dist/web/assets/{thrift-BHwGzm9d.js → thrift-SCSYAnoo.js} +1 -1
  201. package/dist/web/assets/{tp-Br6ODkD7.js → tp-CJiYvF2Z.js} +1 -1
  202. package/dist/web/assets/{twig-BUg1tStP.js → twig-CwKcbSAY.js} +1 -1
  203. package/dist/web/assets/{typescript-DPw_D4qy.js → typescript-Dfq7Dw6S.js} +1 -1
  204. package/dist/web/assets/{vala-B9ZbKGNt.js → vala-CwjTTkCe.js} +1 -1
  205. package/dist/web/assets/{vbnet-CUnYo6Nq.js → vbnet-DkyZUDFs.js} +1 -1
  206. package/dist/web/assets/{vbscript-DqeU3ZVU.js → vbscript-D7mSa0kc.js} +1 -1
  207. package/dist/web/assets/{vbscript-html-m-WQzabX.js → vbscript-html-4muOpfOP.js} +1 -1
  208. package/dist/web/assets/{verilog-BUjbit38.js → verilog-CTx73zAb.js} +1 -1
  209. package/dist/web/assets/{vhdl-DarKCYnW.js → vhdl-bNkZElSZ.js} +1 -1
  210. package/dist/web/assets/{vim-IIbsNuQT.js → vim-BEHLt-ak.js} +1 -1
  211. package/dist/web/assets/{x86asm-DfuTazNN.js → x86asm-LPghO6jq.js} +1 -1
  212. package/dist/web/assets/{xl-BzrAs-xW.js → xl-C1a1l7dp.js} +1 -1
  213. package/dist/web/assets/{xml-BkJvQlqf.js → xml-DkVcEWrP.js} +1 -1
  214. package/dist/web/assets/{xquery-B8FbSCV_.js → xquery-BC8Ygt24.js} +1 -1
  215. package/dist/web/assets/{yaml-5ajRw-Fq.js → yaml-dlNOCKmh.js} +1 -1
  216. package/dist/web/assets/{zephir-CulEk9fW.js → zephir-Bif85EPV.js} +1 -1
  217. package/dist/web/index.html +3 -3
  218. package/package.json +2 -2
  219. package/dist/web/assets/index-CZUbUtgl.css +0 -1
  220. package/dist/web/assets/index-DKfT2EtL.js +0 -2044
  221. package/dist/web/assets/index-Dre4ow2N.js +0 -7
@@ -6280,7 +6280,7 @@ var init_module = __esm({
6280
6280
  }
6281
6281
  });
6282
6282
 
6283
- // ../mcp-use/dist/chunk-3VNNDRKM.js
6283
+ // ../mcp-use/dist/chunk-WPWBXE56.js
6284
6284
  import { RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps";
6285
6285
  function getPackageVersion2() {
6286
6286
  return VERSION;
@@ -6443,12 +6443,12 @@ function setTelemetrySource(source) {
6443
6443
  Tel.getInstance().setSource(source);
6444
6444
  }
6445
6445
  var VERSION, _a6, BaseTelemetryEvent, _a7, MCPAgentExecutionEvent, _a8, ServerRunEvent, _a9, ServerInitializeEvent, _a10, ServerToolCallEvent, _a11, ServerResourceCallEvent, _a12, ServerPromptCallEvent, _a13, ServerContextEvent, _a14, MCPClientInitEvent, _a15, ConnectorInitEvent, _a16, ClientAddServerEvent, _a17, ClientRemoveServerEvent, USER_ID_STORAGE_KEY, cachedEnvironment, _a18, Telemetry2, Tel;
6446
- var init_chunk_3VNNDRKM = __esm({
6447
- "../mcp-use/dist/chunk-3VNNDRKM.js"() {
6446
+ var init_chunk_WPWBXE56 = __esm({
6447
+ "../mcp-use/dist/chunk-WPWBXE56.js"() {
6448
6448
  "use strict";
6449
6449
  init_chunk_QWQYAQCK();
6450
6450
  init_chunk_3GQAWCBQ();
6451
- VERSION = "1.20.0";
6451
+ VERSION = "1.20.1";
6452
6452
  __name(getPackageVersion2, "getPackageVersion");
6453
6453
  BaseTelemetryEvent = (_a6 = class {
6454
6454
  }, __name(_a6, "BaseTelemetryEvent"), _a6);
@@ -12528,17 +12528,17 @@ var init_langfuse_U2OEF7K7 = __esm({
12528
12528
  }
12529
12529
  });
12530
12530
 
12531
- // ../mcp-use/dist/chunk-URPFYEAI.js
12531
+ // ../mcp-use/dist/chunk-PFGLTHGD.js
12532
12532
  import {
12533
12533
  CreateMessageRequestSchema,
12534
12534
  ElicitRequestSchema,
12535
12535
  ListRootsRequestSchema
12536
12536
  } from "@modelcontextprotocol/sdk/types.js";
12537
12537
  var _a19, BaseConnector;
12538
- var init_chunk_URPFYEAI = __esm({
12539
- "../mcp-use/dist/chunk-URPFYEAI.js"() {
12538
+ var init_chunk_PFGLTHGD = __esm({
12539
+ "../mcp-use/dist/chunk-PFGLTHGD.js"() {
12540
12540
  "use strict";
12541
- init_chunk_3VNNDRKM();
12541
+ init_chunk_WPWBXE56();
12542
12542
  init_chunk_QWQYAQCK();
12543
12543
  init_chunk_3GQAWCBQ();
12544
12544
  BaseConnector = (_a19 = class {
@@ -13048,12 +13048,12 @@ var init_chunk_URPFYEAI = __esm({
13048
13048
  }
13049
13049
  });
13050
13050
 
13051
- // ../mcp-use/dist/chunk-R4LATHT3.js
13051
+ // ../mcp-use/dist/chunk-JEVNTJLN.js
13052
13052
  var _a20, CodeModeConnector;
13053
- var init_chunk_R4LATHT3 = __esm({
13054
- "../mcp-use/dist/chunk-R4LATHT3.js"() {
13053
+ var init_chunk_JEVNTJLN = __esm({
13054
+ "../mcp-use/dist/chunk-JEVNTJLN.js"() {
13055
13055
  "use strict";
13056
- init_chunk_URPFYEAI();
13056
+ init_chunk_PFGLTHGD();
13057
13057
  init_chunk_3GQAWCBQ();
13058
13058
  CodeModeConnector = (_a20 = class extends BaseConnector {
13059
13059
  constructor(client) {
@@ -13281,7 +13281,7 @@ var init_chunk_GKPKUKD6 = __esm({
13281
13281
  }
13282
13282
  });
13283
13283
 
13284
- // ../mcp-use/dist/chunk-FKDBKJUW.js
13284
+ // ../mcp-use/dist/chunk-DGKH46XW.js
13285
13285
  import {
13286
13286
  Client
13287
13287
  } from "@modelcontextprotocol/sdk/client/index.js";
@@ -13351,12 +13351,12 @@ function createConnectorFromConfig(serverConfig, connectorOptions) {
13351
13351
  throw new Error("Cannot determine connector type from config");
13352
13352
  }
13353
13353
  var _a22, MCPSession, _a23, BaseMCPClient, _a24, SseConnectionManager, _a25, HttpConnector;
13354
- var init_chunk_FKDBKJUW = __esm({
13355
- "../mcp-use/dist/chunk-FKDBKJUW.js"() {
13354
+ var init_chunk_DGKH46XW = __esm({
13355
+ "../mcp-use/dist/chunk-DGKH46XW.js"() {
13356
13356
  "use strict";
13357
13357
  init_chunk_GKPKUKD6();
13358
- init_chunk_URPFYEAI();
13359
- init_chunk_3VNNDRKM();
13358
+ init_chunk_PFGLTHGD();
13359
+ init_chunk_WPWBXE56();
13360
13360
  init_chunk_QWQYAQCK();
13361
13361
  init_chunk_3GQAWCBQ();
13362
13362
  MCPSession = (_a22 = class {
@@ -34149,16 +34149,16 @@ var init_dist3 = __esm({
34149
34149
  }
34150
34150
  });
34151
34151
 
34152
- // ../mcp-use/dist/chunk-4PGBSB2M.js
34152
+ // ../mcp-use/dist/chunk-7FCA6TQV.js
34153
34153
  import { Client as Client2 } from "@modelcontextprotocol/sdk/client/index.js";
34154
34154
  import process22 from "process";
34155
34155
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
34156
34156
  var _a28, StdioConnectionManager, _a29, StdioConnector;
34157
- var init_chunk_4PGBSB2M = __esm({
34158
- "../mcp-use/dist/chunk-4PGBSB2M.js"() {
34157
+ var init_chunk_7FCA6TQV = __esm({
34158
+ "../mcp-use/dist/chunk-7FCA6TQV.js"() {
34159
34159
  "use strict";
34160
34160
  init_chunk_GKPKUKD6();
34161
- init_chunk_URPFYEAI();
34161
+ init_chunk_PFGLTHGD();
34162
34162
  init_chunk_QWQYAQCK();
34163
34163
  init_chunk_3GQAWCBQ();
34164
34164
  StdioConnectionManager = (_a28 = class extends ConnectionManager {
@@ -34301,24 +34301,24 @@ var init_chunk_4PGBSB2M = __esm({
34301
34301
  }
34302
34302
  });
34303
34303
 
34304
- // ../mcp-use/dist/stdio-MPKB6J4F.js
34305
- var stdio_MPKB6J4F_exports = {};
34306
- __export(stdio_MPKB6J4F_exports, {
34304
+ // ../mcp-use/dist/stdio-ZJFIZK2F.js
34305
+ var stdio_ZJFIZK2F_exports = {};
34306
+ __export(stdio_ZJFIZK2F_exports, {
34307
34307
  StdioConnector: () => StdioConnector
34308
34308
  });
34309
- var init_stdio_MPKB6J4F = __esm({
34310
- "../mcp-use/dist/stdio-MPKB6J4F.js"() {
34309
+ var init_stdio_ZJFIZK2F = __esm({
34310
+ "../mcp-use/dist/stdio-ZJFIZK2F.js"() {
34311
34311
  "use strict";
34312
- init_chunk_4PGBSB2M();
34312
+ init_chunk_7FCA6TQV();
34313
34313
  init_chunk_GKPKUKD6();
34314
- init_chunk_URPFYEAI();
34315
- init_chunk_3VNNDRKM();
34314
+ init_chunk_PFGLTHGD();
34315
+ init_chunk_WPWBXE56();
34316
34316
  init_chunk_QWQYAQCK();
34317
34317
  init_chunk_3GQAWCBQ();
34318
34318
  }
34319
34319
  });
34320
34320
 
34321
- // ../mcp-use/dist/chunk-BNBHBTYJ.js
34321
+ // ../mcp-use/dist/chunk-X7GVPLW2.js
34322
34322
  function getVMModuleName() {
34323
34323
  return ["node", "vm"].join(":");
34324
34324
  }
@@ -34424,13 +34424,13 @@ function validate(params, content) {
34424
34424
  }
34425
34425
  }
34426
34426
  var _a30, BaseCodeExecutor, _a31, E2BCodeExecutor, vm, vmCheckAttempted, _a32, VMCodeExecutor, _a33, MCPClient;
34427
- var init_chunk_BNBHBTYJ = __esm({
34428
- "../mcp-use/dist/chunk-BNBHBTYJ.js"() {
34427
+ var init_chunk_X7GVPLW2 = __esm({
34428
+ "../mcp-use/dist/chunk-X7GVPLW2.js"() {
34429
34429
  "use strict";
34430
- init_chunk_R4LATHT3();
34430
+ init_chunk_JEVNTJLN();
34431
34431
  init_chunk_RPN2XO5I();
34432
- init_chunk_FKDBKJUW();
34433
- init_chunk_3VNNDRKM();
34432
+ init_chunk_DGKH46XW();
34433
+ init_chunk_WPWBXE56();
34434
34434
  init_chunk_QWQYAQCK();
34435
34435
  init_chunk_3GQAWCBQ();
34436
34436
  init_fs();
@@ -35281,7 +35281,7 @@ ${shim}
35281
35281
  clientInfo: serverConfig.clientInfo ?? this.config.clientInfo
35282
35282
  };
35283
35283
  if ("command" in merged && "args" in merged) {
35284
- const { StdioConnector: StdioConnector2 } = await Promise.resolve().then(() => (init_stdio_MPKB6J4F(), stdio_MPKB6J4F_exports));
35284
+ const { StdioConnector: StdioConnector2 } = await Promise.resolve().then(() => (init_stdio_ZJFIZK2F(), stdio_ZJFIZK2F_exports));
35285
35285
  const stdioConfig = merged;
35286
35286
  return new StdioConnector2({
35287
35287
  command: stdioConfig.command,
@@ -35533,13 +35533,13 @@ __export(client_exports, {
35533
35533
  var init_client = __esm({
35534
35534
  "../mcp-use/dist/src/client.js"() {
35535
35535
  "use strict";
35536
- init_chunk_BNBHBTYJ();
35537
- init_chunk_R4LATHT3();
35536
+ init_chunk_X7GVPLW2();
35537
+ init_chunk_JEVNTJLN();
35538
35538
  init_chunk_RPN2XO5I();
35539
- init_chunk_FKDBKJUW();
35539
+ init_chunk_DGKH46XW();
35540
35540
  init_chunk_GKPKUKD6();
35541
- init_chunk_URPFYEAI();
35542
- init_chunk_3VNNDRKM();
35541
+ init_chunk_PFGLTHGD();
35542
+ init_chunk_WPWBXE56();
35543
35543
  init_chunk_QWQYAQCK();
35544
35544
  init_chunk_3GQAWCBQ();
35545
35545
  }
@@ -80133,7 +80133,7 @@ var init_display_A5IEINAP = __esm({
80133
80133
  }
80134
80134
  });
80135
80135
 
80136
- // ../mcp-use/dist/chunk-B3BZDYWJ.js
80136
+ // ../mcp-use/dist/chunk-WNXYB26L.js
80137
80137
  import { z as z4 } from "zod";
80138
80138
  import { StructuredTool } from "@langchain/core/tools";
80139
80139
  import { StructuredTool as StructuredTool2 } from "@langchain/core/tools";
@@ -80365,11 +80365,11 @@ function normalizeRunOptions(queryOrOptions, maxSteps, manageConnector, external
80365
80365
  };
80366
80366
  }
80367
80367
  var _a34, MCPServerTool, PresentActiveServerSchema, _a35, AcquireActiveMCPServerTool, _a36, AddMCPServerFromConfigTool, ConnectMCPServerSchema, _a37, ConnectMCPServerTool, EnumerateServersSchema, _a38, ListMCPServersTool, ReleaseConnectionSchema, _a39, ReleaseMCPServerConnectionTool, _a40, ServerManager, _a41, ObservabilityManager, API_CHATS_ENDPOINT, API_CHAT_EXECUTE_ENDPOINT, _a42, RemoteAgent, PROVIDER_CONFIG, DEFAULT_SYSTEM_PROMPT_TEMPLATE, SERVER_MANAGER_SYSTEM_PROMPT_TEMPLATE, _a43, MCPAgent;
80368
- var init_chunk_B3BZDYWJ = __esm({
80369
- "../mcp-use/dist/chunk-B3BZDYWJ.js"() {
80368
+ var init_chunk_WNXYB26L = __esm({
80369
+ "../mcp-use/dist/chunk-WNXYB26L.js"() {
80370
80370
  "use strict";
80371
80371
  init_chunk_3RU35UU4();
80372
- init_chunk_3VNNDRKM();
80372
+ init_chunk_WPWBXE56();
80373
80373
  init_chunk_QWQYAQCK();
80374
80374
  init_chunk_3GQAWCBQ();
80375
80375
  MCPServerTool = (_a34 = class extends StructuredTool {
@@ -82718,13 +82718,13 @@ ${formatPrompt}`
82718
82718
  }
82719
82719
  });
82720
82720
 
82721
- // ../mcp-use/dist/chunk-52HZERUL.js
82721
+ // ../mcp-use/dist/chunk-QIRMWWEB.js
82722
82722
  var _a44, BrowserMCPClient;
82723
- var init_chunk_52HZERUL = __esm({
82724
- "../mcp-use/dist/chunk-52HZERUL.js"() {
82723
+ var init_chunk_QIRMWWEB = __esm({
82724
+ "../mcp-use/dist/chunk-QIRMWWEB.js"() {
82725
82725
  "use strict";
82726
- init_chunk_FKDBKJUW();
82727
- init_chunk_3VNNDRKM();
82726
+ init_chunk_DGKH46XW();
82727
+ init_chunk_WPWBXE56();
82728
82728
  init_chunk_QWQYAQCK();
82729
82729
  init_chunk_3GQAWCBQ();
82730
82730
  BrowserMCPClient = (_a44 = class extends BaseMCPClient {
@@ -83629,15 +83629,15 @@ var init_browser = __esm({
83629
83629
  "../mcp-use/dist/src/browser.js"() {
83630
83630
  "use strict";
83631
83631
  init_chunk_LGDFGYRL();
83632
- init_chunk_B3BZDYWJ();
83632
+ init_chunk_WNXYB26L();
83633
83633
  init_chunk_UJPHRNQP();
83634
83634
  init_chunk_3RU35UU4();
83635
83635
  init_chunk_RPN2XO5I();
83636
- init_chunk_52HZERUL();
83637
- init_chunk_FKDBKJUW();
83636
+ init_chunk_QIRMWWEB();
83637
+ init_chunk_DGKH46XW();
83638
83638
  init_chunk_GKPKUKD6();
83639
- init_chunk_URPFYEAI();
83640
- init_chunk_3VNNDRKM();
83639
+ init_chunk_PFGLTHGD();
83640
+ init_chunk_WPWBXE56();
83641
83641
  init_chunk_QWQYAQCK();
83642
83642
  init_chunk_6KHHFWTB();
83643
83643
  init_chunk_3GQAWCBQ();
@@ -85201,11 +85201,19 @@ function ToolInputForm({
85201
85201
  }
85202
85202
 
85203
85203
  // src/client/components/tools/ToolResultDisplay.tsx
85204
- import { Check as Check2, Copy as Copy4, History, Maximize, Minimize, Zap } from "lucide-react";
85205
- import React6, {
85204
+ import {
85205
+ Check as Check2,
85206
+ Copy as Copy4,
85207
+ History,
85208
+ Maximize,
85209
+ Minimize,
85210
+ Play,
85211
+ Zap
85212
+ } from "lucide-react";
85213
+ import React7, {
85206
85214
  useCallback as useCallback11,
85207
85215
  useEffect as useEffect10,
85208
- useMemo as useMemo8,
85216
+ useMemo as useMemo9,
85209
85217
  useRef as useRef8,
85210
85218
  useState as useState12
85211
85219
  } from "react";
@@ -87785,8 +87793,8 @@ function MCPAppsDebugControls({
87785
87793
  const cspViolations = widget?.cspViolations ?? [];
87786
87794
  const declaredCsp = widget?.declaredCsp;
87787
87795
  const effectivePolicy = widget?.effectivePolicy;
87788
- const suggestedFix = playground.cspMode === "widget-declared" && cspViolations.length > 0 ? computeSuggestedFix(cspViolations, declaredCsp) : null;
87789
- const agentPrompt = cspViolations.length > -1 ? buildAgentCspPrompt(
87796
+ const suggestedFix = cspViolations.length > 0 ? computeSuggestedFix(cspViolations, declaredCsp) : null;
87797
+ const agentPrompt = cspViolations.length > 0 ? buildAgentCspPrompt(
87790
87798
  declaredCsp,
87791
87799
  effectivePolicy,
87792
87800
  cspViolations,
@@ -88097,7 +88105,13 @@ function MCPAppsDebugControls({
88097
88105
  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",
88098
88106
  children: [
88099
88107
  playground.cspMode === "permissive" ? /* @__PURE__ */ jsx24(ShieldOff, { className: "size-3.5" }) : /* @__PURE__ */ jsx24(ShieldCheck, { className: "size-3.5" }),
88100
- cspViolations.length > 0 && /* @__PURE__ */ jsx24("span", { className: "absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-red-500 px-0.5 text-[9px] font-bold text-white leading-none", children: cspViolations.length > 99 ? "99+" : cspViolations.length })
88108
+ cspViolations.length > 0 && /* @__PURE__ */ jsx24(
88109
+ "span",
88110
+ {
88111
+ 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 ${playground.cspMode === "permissive" ? "bg-yellow-500" : "bg-red-500"}`,
88112
+ children: cspViolations.length > 99 ? "99+" : cspViolations.length
88113
+ }
88114
+ )
88101
88115
  ]
88102
88116
  }
88103
88117
  ) }) }),
@@ -88105,7 +88119,7 @@ function MCPAppsDebugControls({
88105
88119
  "CSP:",
88106
88120
  " ",
88107
88121
  playground.cspMode === "permissive" ? "Permissive" : "Declared",
88108
- cspViolations.length > 0 && ` \xB7 ${cspViolations.length} blocked`
88122
+ cspViolations.length > 0 && ` \xB7 ${cspViolations.length} ${playground.cspMode === "permissive" ? "would be blocked" : "blocked"}`
88109
88123
  ] })
88110
88124
  ] }),
88111
88125
  /* @__PURE__ */ jsxs13(
@@ -88264,11 +88278,20 @@ function MCPAppsDebugControls({
88264
88278
  ] }),
88265
88279
  cspViolations.length > 0 && /* @__PURE__ */ jsxs13("div", { className: "mt-3 space-y-2", children: [
88266
88280
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between", children: [
88267
- /* @__PURE__ */ jsxs13("span", { className: "text-xs font-semibold text-red-600 dark:text-red-400 uppercase tracking-wide", children: [
88268
- cspViolations.length,
88269
- " blocked request",
88270
- cspViolations.length !== 1 ? "s" : ""
88271
- ] }),
88281
+ /* @__PURE__ */ jsxs13(
88282
+ "span",
88283
+ {
88284
+ className: `text-xs font-semibold uppercase tracking-wide ${playground.cspMode === "permissive" ? "text-yellow-600 dark:text-yellow-400" : "text-red-600 dark:text-red-400"}`,
88285
+ children: [
88286
+ cspViolations.length,
88287
+ " ",
88288
+ playground.cspMode === "permissive" ? "would-be-blocked" : "blocked",
88289
+ " ",
88290
+ "request",
88291
+ cspViolations.length !== 1 ? "s" : ""
88292
+ ]
88293
+ }
88294
+ ),
88272
88295
  /* @__PURE__ */ jsx24(
88273
88296
  "button",
88274
88297
  {
@@ -88560,7 +88583,7 @@ import {
88560
88583
  memo,
88561
88584
  useCallback as useCallback9,
88562
88585
  useEffect as useEffect8,
88563
- useMemo as useMemo7,
88586
+ useMemo as useMemo8,
88564
88587
  useRef as useRef6,
88565
88588
  useState as useState10
88566
88589
  } from "react";
@@ -88951,8 +88974,51 @@ function WidgetWrapper({
88951
88974
  );
88952
88975
  }
88953
88976
 
88977
+ // src/client/components/ui/text-shimmer.tsx
88978
+ import { motion } from "motion/react";
88979
+ import { useMemo as useMemo7 } from "react";
88980
+ import { jsx as jsx29 } from "react/jsx-runtime";
88981
+ function TextShimmer({
88982
+ children,
88983
+ as: Component = "p",
88984
+ className,
88985
+ duration = 2,
88986
+ spread = 2
88987
+ }) {
88988
+ const MotionComponent = motion.create(
88989
+ Component
88990
+ );
88991
+ const dynamicSpread = useMemo7(() => {
88992
+ return children.length * spread;
88993
+ }, [children, spread]);
88994
+ return /* @__PURE__ */ jsx29(
88995
+ MotionComponent,
88996
+ {
88997
+ className: cn(
88998
+ "relative inline-block bg-[length:250%_100%,auto] bg-clip-text",
88999
+ "text-transparent [--base-color:#a1a1aa] [--base-gradient-color:#000]",
89000
+ "[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]",
89001
+ "dark:[--base-color:#71717a] dark:[--base-gradient-color:#ffffff] dark:[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))]",
89002
+ className
89003
+ ),
89004
+ initial: { backgroundPosition: "100% center" },
89005
+ animate: { backgroundPosition: "0% center" },
89006
+ transition: {
89007
+ repeat: Infinity,
89008
+ duration,
89009
+ ease: "linear"
89010
+ },
89011
+ style: {
89012
+ "--spread": `${dynamicSpread}px`,
89013
+ backgroundImage: `var(--bg), linear-gradient(var(--base-color), var(--base-color))`
89014
+ },
89015
+ children
89016
+ }
89017
+ );
89018
+ }
89019
+
88954
89020
  // src/client/components/MCPAppsRenderer.tsx
88955
- import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
89021
+ import { jsx as jsx30, jsxs as jsxs15 } from "react/jsx-runtime";
88956
89022
  function buildCSPString(csp) {
88957
89023
  const sanitize = (d2) => d2.replace(/['"<>;]/g, "").trim();
88958
89024
  const connectDomains = (csp.connectDomains || []).map(sanitize).filter(Boolean);
@@ -88983,6 +89049,8 @@ function MCPAppsRendererBase({
88983
89049
  toolInput,
88984
89050
  toolOutput,
88985
89051
  toolMetadata,
89052
+ invoking,
89053
+ invoked,
88986
89054
  partialToolInput,
88987
89055
  resourceUri,
88988
89056
  readResource,
@@ -89049,7 +89117,7 @@ function MCPAppsRendererBase({
89049
89117
  const customViewport = playground.customViewport;
89050
89118
  const { maxWidth, maxHeight } = useDeviceViewport(deviceType, customViewport);
89051
89119
  const inlineMaxWidth = deviceType === "mobile" ? maxWidth : 768;
89052
- const tool = useMemo7(() => {
89120
+ const tool = useMemo8(() => {
89053
89121
  if (!server?.tools) return void 0;
89054
89122
  return server.tools.find((t2) => t2.name === toolName);
89055
89123
  }, [server, toolName]);
@@ -89658,13 +89726,13 @@ function MCPAppsRendererBase({
89658
89726
  return () => clearTimeout(timer);
89659
89727
  }, [iframeEffectivelyReady, showSpinner]);
89660
89728
  if (loadError) {
89661
- return /* @__PURE__ */ jsx29(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsx29("div", { className: "border border-red-200/50 dark:border-red-800/50 bg-red-50/30 dark:bg-red-950/20 rounded-lg p-4", children: /* @__PURE__ */ jsxs15("p", { className: "text-sm text-red-600 dark:text-red-400", children: [
89729
+ return /* @__PURE__ */ jsx30(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsx30("div", { className: "border border-red-200/50 dark:border-red-800/50 bg-red-50/30 dark:bg-red-950/20 rounded-lg p-4", children: /* @__PURE__ */ jsxs15("p", { className: "text-sm text-red-600 dark:text-red-400", children: [
89662
89730
  "Failed to load MCP App: ",
89663
89731
  loadError
89664
89732
  ] }) }) });
89665
89733
  }
89666
89734
  if (!widgetHtml) {
89667
- return /* @__PURE__ */ jsx29(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsx29("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx29(Spinner, { className: "size-5" }) }) });
89735
+ return /* @__PURE__ */ jsx30(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsx30("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx30(Spinner, { className: "size-5" }) }) });
89668
89736
  }
89669
89737
  const isPip = displayMode === "pip";
89670
89738
  const isFullscreen = displayMode === "fullscreen";
@@ -89687,14 +89755,14 @@ function MCPAppsRendererBase({
89687
89755
  maxWidth: displayMode === "inline" ? `${inlineMaxWidth}px` : "100%",
89688
89756
  transition: isFullscreen || isPip ? void 0 : "height 300ms ease-out, width 300ms ease-out"
89689
89757
  };
89690
- return /* @__PURE__ */ jsx29(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsxs15(
89758
+ return /* @__PURE__ */ jsx30(WidgetWrapper, { className, noWrapper, children: /* @__PURE__ */ jsxs15(
89691
89759
  "div",
89692
89760
  {
89693
89761
  ref: containerRef,
89694
89762
  className: containerClassName,
89695
89763
  style: isPip ? { maxWidth: MCP_APPS_CONFIG.DIMENSIONS.PIP_MAX_WIDTH } : void 0,
89696
89764
  children: [
89697
- isFullscreen && /* @__PURE__ */ jsx29(
89765
+ isFullscreen && /* @__PURE__ */ jsx30(
89698
89766
  FullscreenNavbar,
89699
89767
  {
89700
89768
  title: toolName,
@@ -89702,7 +89770,7 @@ function MCPAppsRendererBase({
89702
89770
  testId: "debugger-exit-fullscreen-button"
89703
89771
  }
89704
89772
  ),
89705
- isPip && /* @__PURE__ */ jsx29(
89773
+ isPip && /* @__PURE__ */ jsx30(
89706
89774
  "button",
89707
89775
  {
89708
89776
  "data-testid": "debugger-exit-pip-button",
@@ -89710,7 +89778,7 @@ function MCPAppsRendererBase({
89710
89778
  className: "absolute left-2 top-2 z-30 flex h-6 w-6 items-center justify-center rounded-md bg-background/80 hover:bg-background border border-zinc-200 dark:border-zinc-700 text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors cursor-pointer",
89711
89779
  "aria-label": "Close PiP mode",
89712
89780
  title: "Close PiP mode",
89713
- children: /* @__PURE__ */ jsx29(X3, { className: "w-4 h-4" })
89781
+ children: /* @__PURE__ */ jsx30(X3, { className: "w-4 h-4" })
89714
89782
  }
89715
89783
  ),
89716
89784
  /* @__PURE__ */ jsxs15(
@@ -89721,28 +89789,42 @@ function MCPAppsRendererBase({
89721
89789
  isFullscreen && "pt-14"
89722
89790
  ),
89723
89791
  children: [
89724
- showSpinner && /* @__PURE__ */ jsx29("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full z-10", children: /* @__PURE__ */ jsx29(Spinner, { className: "size-5" }) }),
89725
- /* @__PURE__ */ jsx29(
89726
- SandboxedIframe,
89792
+ showSpinner && /* @__PURE__ */ jsx30("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full z-10", children: /* @__PURE__ */ jsx30(Spinner, { className: "size-5" }) }),
89793
+ /* @__PURE__ */ jsxs15(
89794
+ "div",
89727
89795
  {
89728
- ref: sandboxRef,
89729
- html: widgetHtml,
89730
- sandbox: IFRAME_SANDBOX_PERMISSIONS,
89731
- csp: widgetCsp,
89732
- permissions: widgetPermissions,
89733
- permissive: cspMode === "permissive",
89734
- onLoad: () => setIsReady(true),
89735
- onMessage: handleSandboxMessage,
89736
- title: `MCP App: ${toolName}`,
89737
- className: cn(
89738
- displayMode === "inline" && "w-full",
89739
- displayMode === "fullscreen" && "w-full h-full rounded-none",
89740
- displayMode === "pip" && "w-full h-full",
89741
- displayMode !== "fullscreen" && prefersBorder && "rounded-lg",
89742
- "overflow-hidden relative z-20",
89743
- prefersBorder && "border border-zinc-200 dark:border-zinc-700"
89744
- ),
89745
- style: iframeStyle
89796
+ className: "relative w-full",
89797
+ style: { maxWidth: iframeStyle.maxWidth },
89798
+ children: [
89799
+ /* @__PURE__ */ jsx30("div", { className: "absolute -top-8 left-2 z-10 h-full", children: !isPip && !isFullscreen && (invoking || invoked) && /* @__PURE__ */ jsxs15("div", { className: "whitespace-nowrap", children: [
89800
+ invoking && !toolOutput && /* @__PURE__ */ jsx30(TextShimmer, { className: "text-xs ", children: invoking }),
89801
+ invoked && !!toolOutput && /* @__PURE__ */ jsx30("span", { className: "text-xs text-muted-foreground", children: invoked })
89802
+ ] }) }),
89803
+ /* @__PURE__ */ jsx30(
89804
+ SandboxedIframe,
89805
+ {
89806
+ ref: sandboxRef,
89807
+ html: widgetHtml,
89808
+ sandbox: IFRAME_SANDBOX_PERMISSIONS,
89809
+ csp: widgetCsp,
89810
+ permissions: widgetPermissions,
89811
+ permissive: cspMode === "permissive",
89812
+ onLoad: () => setIsReady(true),
89813
+ onMessage: handleSandboxMessage,
89814
+ title: `MCP App: ${toolName}`,
89815
+ className: cn(
89816
+ displayMode === "inline" && "w-full",
89817
+ displayMode === "fullscreen" && "w-full h-full rounded-none",
89818
+ displayMode === "pip" && "w-full h-full",
89819
+ displayMode !== "fullscreen" && prefersBorder && "rounded-lg",
89820
+ "overflow-hidden relative z-20",
89821
+ prefersBorder && "border border-zinc-200 dark:border-zinc-700"
89822
+ ),
89823
+ style: iframeStyle
89824
+ }
89825
+ ),
89826
+ " "
89827
+ ]
89746
89828
  }
89747
89829
  )
89748
89830
  ]
@@ -89776,6 +89858,8 @@ function mcpAppsRendererAreEqual(prev, next) {
89776
89858
  if (prev.onDisplayModeChange !== next.onDisplayModeChange) return false;
89777
89859
  if (prev.className !== next.className) return false;
89778
89860
  if (prev.serverBaseUrl !== next.serverBaseUrl) return false;
89861
+ if (prev.invoking !== next.invoking) return false;
89862
+ if (prev.invoked !== next.invoked) return false;
89779
89863
  return true;
89780
89864
  }
89781
89865
  var MCPAppsRenderer = memo(
@@ -89792,7 +89876,7 @@ import {
89792
89876
  remoteTextDefinition,
89793
89877
  UIResourceRenderer
89794
89878
  } from "@mcp-ui/client";
89795
- import { jsx as jsx30 } from "react/jsx-runtime";
89879
+ import { jsx as jsx31 } from "react/jsx-runtime";
89796
89880
  function isMcpUIResource(resource) {
89797
89881
  if (!resource?.mimeType) return false;
89798
89882
  const mimeType = resource.mimeType.toLowerCase();
@@ -89822,7 +89906,7 @@ function McpUIRenderer({
89822
89906
  // Add custom props as data attributes or in a way the UIResourceRenderer can access
89823
89907
  customProps
89824
89908
  } : uiResource;
89825
- return /* @__PURE__ */ jsx30("div", { className, children: /* @__PURE__ */ jsx30(
89909
+ return /* @__PURE__ */ jsx31("div", { className, children: /* @__PURE__ */ jsx31(
89826
89910
  UIResourceRenderer,
89827
89911
  {
89828
89912
  resource: resourceWithProps,
@@ -90035,7 +90119,7 @@ function injectConsoleInterceptor(iframe) {
90035
90119
  }
90036
90120
 
90037
90121
  // src/client/components/OpenAIComponentRenderer.tsx
90038
- import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
90122
+ import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
90039
90123
  function Wrapper({
90040
90124
  children,
90041
90125
  className,
@@ -90044,7 +90128,7 @@ function Wrapper({
90044
90128
  if (noWrapper) {
90045
90129
  return children;
90046
90130
  }
90047
- return /* @__PURE__ */ jsx31(
90131
+ return /* @__PURE__ */ jsx32(
90048
90132
  "div",
90049
90133
  {
90050
90134
  className: cn(
@@ -90067,6 +90151,8 @@ function OpenAIComponentRendererBase({
90067
90151
  showConsole = true,
90068
90152
  customProps,
90069
90153
  serverBaseUrl: serverBaseUrlProp,
90154
+ invoking,
90155
+ invoked,
90070
90156
  onUpdateGlobals
90071
90157
  }) {
90072
90158
  const iframeRef = useRef7(null);
@@ -90751,17 +90837,21 @@ function OpenAIComponentRendererBase({
90751
90837
  }
90752
90838
  }, [resolvedTheme, widgetUrl, isReady, updateIframeGlobals]);
90753
90839
  if (error) {
90754
- return /* @__PURE__ */ jsx31("div", { className, children: /* @__PURE__ */ jsx31("div", { className: "bg-red-50/30 dark:bg-red-950/20 border border-red-200/50 dark:border-red-800/50 rounded-lg p-4", children: /* @__PURE__ */ jsxs16("p", { className: "text-sm text-red-600 dark:text-red-400", children: [
90840
+ return /* @__PURE__ */ jsx32("div", { className, children: /* @__PURE__ */ jsx32("div", { className: "bg-red-50/30 dark:bg-red-950/20 border border-red-200/50 dark:border-red-800/50 rounded-lg p-4", children: /* @__PURE__ */ jsxs16("p", { className: "text-sm text-red-600 dark:text-red-400", children: [
90755
90841
  "Failed to load component: ",
90756
90842
  error
90757
90843
  ] }) }) });
90758
90844
  }
90759
90845
  if (!widgetUrl) {
90760
- return /* @__PURE__ */ jsx31(Wrapper, { className, noWrapper, children: /* @__PURE__ */ jsx31("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx31(Spinner, { className: "size-5" }) }) });
90846
+ return /* @__PURE__ */ jsx32(Wrapper, { className, noWrapper, children: /* @__PURE__ */ jsx32("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx32(Spinner, { className: "size-5" }) }) });
90761
90847
  }
90762
90848
  return /* @__PURE__ */ jsxs16(Wrapper, { className, noWrapper, children: [
90763
- showSkeleton && /* @__PURE__ */ jsx31("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full z-0", children: /* @__PURE__ */ jsx31(Spinner, { className: "size-5" }) }),
90764
- showConsole && isSameOrigin && displayMode !== "fullscreen" && displayMode !== "pip" && /* @__PURE__ */ jsx31("div", { className: "absolute top-2 right-2 z-30 flex items-center gap-2", children: /* @__PURE__ */ jsx31(
90849
+ displayMode === "inline" && (invoking || invoked) && /* @__PURE__ */ jsxs16("div", { className: "mb-1 px-1", children: [
90850
+ invoking && !toolResult && /* @__PURE__ */ jsx32(TextShimmer, { className: "text-xs", children: invoking }),
90851
+ invoked && toolResult && /* @__PURE__ */ jsx32("span", { className: "text-xs text-muted-foreground", children: invoked })
90852
+ ] }),
90853
+ showSkeleton && /* @__PURE__ */ jsx32("div", { className: "flex absolute left-0 top-0 items-center justify-center w-full h-full z-0", children: /* @__PURE__ */ jsx32(Spinner, { className: "size-5" }) }),
90854
+ showConsole && isSameOrigin && displayMode !== "fullscreen" && displayMode !== "pip" && /* @__PURE__ */ jsx32("div", { className: "absolute top-2 right-2 z-30 flex items-center gap-2", children: /* @__PURE__ */ jsx32(
90765
90855
  MCPAppsDebugControls,
90766
90856
  {
90767
90857
  displayMode,
@@ -90792,14 +90882,14 @@ function OpenAIComponentRendererBase({
90792
90882
  onMouseEnter: () => displayMode === "pip" && setIsPipHovered(true),
90793
90883
  onMouseLeave: () => displayMode === "pip" && setIsPipHovered(false),
90794
90884
  children: [
90795
- displayMode === "fullscreen" && document.fullscreenElement && /* @__PURE__ */ jsx31(
90885
+ displayMode === "fullscreen" && document.fullscreenElement && /* @__PURE__ */ jsx32(
90796
90886
  FullscreenNavbar,
90797
90887
  {
90798
90888
  title: toolName,
90799
90889
  onClose: () => handleDisplayModeChange("inline")
90800
90890
  }
90801
90891
  ),
90802
- displayMode === "pip" && /* @__PURE__ */ jsx31(
90892
+ displayMode === "pip" && /* @__PURE__ */ jsx32(
90803
90893
  "button",
90804
90894
  {
90805
90895
  onClick: () => handleDisplayModeChange("inline"),
@@ -90815,10 +90905,10 @@ function OpenAIComponentRendererBase({
90815
90905
  isPipHovered ? "opacity-100" : "opacity-0"
90816
90906
  ),
90817
90907
  "aria-label": "Exit Picture in Picture",
90818
- children: /* @__PURE__ */ jsx31(X4, { className: "w-4 h-4 text-foreground" })
90908
+ children: /* @__PURE__ */ jsx32(X4, { className: "w-4 h-4 text-foreground" })
90819
90909
  }
90820
90910
  ),
90821
- /* @__PURE__ */ jsx31(
90911
+ /* @__PURE__ */ jsx32(
90822
90912
  "div",
90823
90913
  {
90824
90914
  className: cn(
@@ -90826,7 +90916,7 @@ function OpenAIComponentRendererBase({
90826
90916
  displayMode === "fullscreen" && "pt-14",
90827
90917
  centerVertically && "items-center"
90828
90918
  ),
90829
- children: /* @__PURE__ */ jsx31(
90919
+ children: /* @__PURE__ */ jsx32(
90830
90920
  "iframe",
90831
90921
  {
90832
90922
  ref: iframeRef,
@@ -90868,6 +90958,8 @@ function openAIComponentRendererAreEqual(prev, next) {
90868
90958
  return false;
90869
90959
  }
90870
90960
  }
90961
+ if (prev.invoking !== next.invoking) return false;
90962
+ if (prev.invoked !== next.invoked) return false;
90871
90963
  return true;
90872
90964
  }
90873
90965
  var OpenAIComponentRenderer = memo2(
@@ -90876,14 +90968,14 @@ var OpenAIComponentRenderer = memo2(
90876
90968
  );
90877
90969
 
90878
90970
  // src/client/components/ui/not-found.tsx
90879
- import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
90971
+ import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
90880
90972
  function NotFound({
90881
90973
  message,
90882
90974
  className = "",
90883
90975
  vertical,
90884
90976
  noBorder
90885
90977
  }) {
90886
- return /* @__PURE__ */ jsx32(
90978
+ return /* @__PURE__ */ jsx33(
90887
90979
  "div",
90888
90980
  {
90889
90981
  className: cn(`mt-2 rounded-md p-6 ${className}`, !noBorder && "border"),
@@ -90895,7 +90987,7 @@ function NotFound({
90895
90987
  vertical && "flex-col"
90896
90988
  ),
90897
90989
  children: [
90898
- /* @__PURE__ */ jsx32(
90990
+ /* @__PURE__ */ jsx33(
90899
90991
  "svg",
90900
90992
  {
90901
90993
  width: "40",
@@ -90904,7 +90996,7 @@ function NotFound({
90904
90996
  version: "1.1",
90905
90997
  xmlns: "http://www.w3.org/2000/svg",
90906
90998
  className: "flex-shrink-0",
90907
- children: /* @__PURE__ */ jsx32("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd", children: /* @__PURE__ */ jsxs17(
90999
+ children: /* @__PURE__ */ jsx33("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd", children: /* @__PURE__ */ jsxs17(
90908
91000
  "g",
90909
91001
  {
90910
91002
  transform: "translate(5.320900, 5.320900)",
@@ -90912,9 +91004,9 @@ function NotFound({
90912
91004
  className: "stroke-black dark:stroke-white",
90913
91005
  strokeWidth: "4",
90914
91006
  children: [
90915
- /* @__PURE__ */ jsx32("path", { d: "M49.953025,-2.10854389 C63.26892,-2.21867124 76.6185256,2.70621155 86.9019463,12.6653164 L86.9019463,12.6653164 L87.505627,13.2592944 C97.5154947,23.2654892 102.640454,36.3074513 102.880738,49.4222247 C103.08932,77.4533067 113.877287,105.391753 135.242867,126.757333 C156.613383,148.127849 184.559216,158.914875 212.568138,159.119313 L212.568138,159.119313 L213.212264,159.134159 C225.843948,159.517566 238.363557,164.434972 248.121998,173.886137 L248.121998,173.886137 L248.725621,174.480088 C258.982114,184.732164 264.11035,198.171134 264.11035,211.6101 C264.11035,225.04592 258.984514,238.481745 248.732867,248.732867 C238.592792,258.872942 225.336706,263.997882 212.046872,264.107794 C198.731075,264.21792 185.381569,259.293085 175.098248,249.334078 L175.098248,249.334078 L174.494602,248.740134 C163.75802,238.008189 158.640853,223.784027 159.143413,209.719372 C158.258245,182.640933 147.489786,155.83332 126.828333,135.171867 C106.351297,114.694831 79.8363505,103.934873 53.0237258,102.891841 L53.0237258,102.891841 L52.2811438,102.865674 C38.4791718,103.347421 24.5325234,98.4328111 13.8776628,88.1140866 L13.8776628,88.1140866 L13.2739843,87.5201168 C3.12895117,77.3789607 -1.9984796,64.1195994 -2.10841888,50.8264755 C-2.21854669,37.5105567 2.70635908,24.1609269 12.6655135,13.8774565 L12.6655135,13.8774565 L13.2594878,13.2737797 C23.4005926,3.12880025 36.659927,-1.99860507 49.953025,-2.10854389 Z" }),
90916
- /* @__PURE__ */ jsx32("circle", { cx: "50", cy: "212.0001", r: "52.5" }),
90917
- /* @__PURE__ */ jsx32("circle", { cx: "212.0001", cy: "50", r: "52.5" })
91007
+ /* @__PURE__ */ jsx33("path", { d: "M49.953025,-2.10854389 C63.26892,-2.21867124 76.6185256,2.70621155 86.9019463,12.6653164 L86.9019463,12.6653164 L87.505627,13.2592944 C97.5154947,23.2654892 102.640454,36.3074513 102.880738,49.4222247 C103.08932,77.4533067 113.877287,105.391753 135.242867,126.757333 C156.613383,148.127849 184.559216,158.914875 212.568138,159.119313 L212.568138,159.119313 L213.212264,159.134159 C225.843948,159.517566 238.363557,164.434972 248.121998,173.886137 L248.121998,173.886137 L248.725621,174.480088 C258.982114,184.732164 264.11035,198.171134 264.11035,211.6101 C264.11035,225.04592 258.984514,238.481745 248.732867,248.732867 C238.592792,258.872942 225.336706,263.997882 212.046872,264.107794 C198.731075,264.21792 185.381569,259.293085 175.098248,249.334078 L175.098248,249.334078 L174.494602,248.740134 C163.75802,238.008189 158.640853,223.784027 159.143413,209.719372 C158.258245,182.640933 147.489786,155.83332 126.828333,135.171867 C106.351297,114.694831 79.8363505,103.934873 53.0237258,102.891841 L53.0237258,102.891841 L52.2811438,102.865674 C38.4791718,103.347421 24.5325234,98.4328111 13.8776628,88.1140866 L13.8776628,88.1140866 L13.2739843,87.5201168 C3.12895117,77.3789607 -1.9984796,64.1195994 -2.10841888,50.8264755 C-2.21854669,37.5105567 2.70635908,24.1609269 12.6655135,13.8774565 L12.6655135,13.8774565 L13.2594878,13.2737797 C23.4005926,3.12880025 36.659927,-1.99860507 49.953025,-2.10854389 Z" }),
91008
+ /* @__PURE__ */ jsx33("circle", { cx: "50", cy: "212.0001", r: "52.5" }),
91009
+ /* @__PURE__ */ jsx33("circle", { cx: "212.0001", cy: "50", r: "52.5" })
90918
91010
  ]
90919
91011
  }
90920
91012
  ) })
@@ -90929,7 +91021,7 @@ function NotFound({
90929
91021
  }
90930
91022
 
90931
91023
  // src/client/components/tools/ToolResultDisplay.tsx
90932
- import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
91024
+ import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
90933
91025
  function RelativeTimeDisplay({ timestamp }) {
90934
91026
  const [label, setLabel] = useState12(() => getRelativeTime(timestamp));
90935
91027
  useEffect10(() => {
@@ -90938,7 +91030,7 @@ function RelativeTimeDisplay({ timestamp }) {
90938
91030
  const id = setInterval(update, 1e3);
90939
91031
  return () => clearInterval(id);
90940
91032
  }, [timestamp]);
90941
- return /* @__PURE__ */ jsx33("span", { children: label });
91033
+ return /* @__PURE__ */ jsx34("span", { children: label });
90942
91034
  }
90943
91035
  function getRelativeTime(timestamp) {
90944
91036
  const now = Date.now();
@@ -90990,9 +91082,9 @@ function FormattedContentDisplay({ content }) {
90990
91082
  });
90991
91083
  }, []);
90992
91084
  if (!Array.isArray(content) || content.length === 0) {
90993
- return /* @__PURE__ */ jsx33("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "No content" });
91085
+ return /* @__PURE__ */ jsx34("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "No content" });
90994
91086
  }
90995
- return /* @__PURE__ */ jsx33("div", { className: "space-y-4", children: content.map((item, idx) => {
91087
+ return /* @__PURE__ */ jsx34("div", { className: "space-y-4", children: content.map((item, idx) => {
90996
91088
  if (item.type === "text") {
90997
91089
  const text = item.text || "";
90998
91090
  const isFormatted = formattedIndices.has(idx);
@@ -91010,7 +91102,7 @@ function FormattedContentDisplay({ content }) {
91010
91102
  "Text Content",
91011
91103
  isFormatted ? " (formatted)" : ""
91012
91104
  ] }),
91013
- canFormat && /* @__PURE__ */ jsx33(
91105
+ canFormat && /* @__PURE__ */ jsx34(
91014
91106
  "button",
91015
91107
  {
91016
91108
  type: "button",
@@ -91021,7 +91113,7 @@ function FormattedContentDisplay({ content }) {
91021
91113
  }
91022
91114
  )
91023
91115
  ] }),
91024
- isFormatted && parsed !== null ? /* @__PURE__ */ jsx33(JSONDisplay, { data: parsed, filename: `content-${idx}.json` }) : /* @__PURE__ */ jsx33(
91116
+ isFormatted && parsed !== null ? /* @__PURE__ */ jsx34(JSONDisplay, { data: parsed, filename: `content-${idx}.json` }) : /* @__PURE__ */ jsx34(
91025
91117
  "div",
91026
91118
  {
91027
91119
  className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 font-mono text-sm whitespace-pre-wrap break-words",
@@ -91033,9 +91125,9 @@ function FormattedContentDisplay({ content }) {
91033
91125
  }
91034
91126
  if (item.type === "image") {
91035
91127
  return /* @__PURE__ */ jsxs18("div", { className: "space-y-2", children: [
91036
- /* @__PURE__ */ jsx33("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Image Content" }),
91128
+ /* @__PURE__ */ jsx34("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Image Content" }),
91037
91129
  /* @__PURE__ */ jsxs18("div", { className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3", children: [
91038
- /* @__PURE__ */ jsx33(
91130
+ /* @__PURE__ */ jsx34(
91039
91131
  "img",
91040
91132
  {
91041
91133
  src: `data:${item.mimeType || "image/png"};base64,${item.data}`,
@@ -91044,7 +91136,7 @@ function FormattedContentDisplay({ content }) {
91044
91136
  "data-testid": "tool-execution-results-image-content"
91045
91137
  }
91046
91138
  ),
91047
- item.annotations && /* @__PURE__ */ jsx33("div", { className: "mt-2 text-xs text-gray-500 dark:text-gray-400", children: /* @__PURE__ */ jsx33(
91139
+ item.annotations && /* @__PURE__ */ jsx34("div", { className: "mt-2 text-xs text-gray-500 dark:text-gray-400", children: /* @__PURE__ */ jsx34(
91048
91140
  JSONDisplay,
91049
91141
  {
91050
91142
  data: item.annotations,
@@ -91057,9 +91149,9 @@ function FormattedContentDisplay({ content }) {
91057
91149
  }
91058
91150
  if (item.type === "audio") {
91059
91151
  return /* @__PURE__ */ jsxs18("div", { className: "space-y-2", children: [
91060
- /* @__PURE__ */ jsx33("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Audio Content" }),
91152
+ /* @__PURE__ */ jsx34("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Audio Content" }),
91061
91153
  /* @__PURE__ */ jsxs18("div", { className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3", children: [
91062
- /* @__PURE__ */ jsx33(
91154
+ /* @__PURE__ */ jsx34(
91063
91155
  "audio",
91064
91156
  {
91065
91157
  controls: true,
@@ -91068,7 +91160,7 @@ function FormattedContentDisplay({ content }) {
91068
91160
  "data-testid": "tool-execution-results-audio-content"
91069
91161
  }
91070
91162
  ),
91071
- item.annotations && /* @__PURE__ */ jsx33("div", { className: "mt-2 text-xs text-gray-500 dark:text-gray-400", children: /* @__PURE__ */ jsx33(
91163
+ item.annotations && /* @__PURE__ */ jsx34("div", { className: "mt-2 text-xs text-gray-500 dark:text-gray-400", children: /* @__PURE__ */ jsx34(
91072
91164
  JSONDisplay,
91073
91165
  {
91074
91166
  data: item.annotations,
@@ -91081,31 +91173,31 @@ function FormattedContentDisplay({ content }) {
91081
91173
  }
91082
91174
  if (item.type === "resource_link") {
91083
91175
  return /* @__PURE__ */ jsxs18("div", { className: "space-y-2", children: [
91084
- /* @__PURE__ */ jsx33("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Resource Link" }),
91176
+ /* @__PURE__ */ jsx34("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Resource Link" }),
91085
91177
  /* @__PURE__ */ jsxs18("div", { className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 space-y-2", children: [
91086
91178
  /* @__PURE__ */ jsxs18("div", { className: "font-mono text-sm break-all", children: [
91087
- /* @__PURE__ */ jsx33("span", { className: "text-gray-600 dark:text-gray-400", children: "URI:" }),
91179
+ /* @__PURE__ */ jsx34("span", { className: "text-gray-600 dark:text-gray-400", children: "URI:" }),
91088
91180
  " ",
91089
91181
  item.uri
91090
91182
  ] }),
91091
91183
  item.name && /* @__PURE__ */ jsxs18("div", { className: "text-sm", children: [
91092
- /* @__PURE__ */ jsx33("span", { className: "text-gray-600 dark:text-gray-400", children: "Name:" }),
91184
+ /* @__PURE__ */ jsx34("span", { className: "text-gray-600 dark:text-gray-400", children: "Name:" }),
91093
91185
  " ",
91094
91186
  item.name
91095
91187
  ] }),
91096
91188
  item.description && /* @__PURE__ */ jsxs18("div", { className: "text-sm", children: [
91097
- /* @__PURE__ */ jsx33("span", { className: "text-gray-600 dark:text-gray-400", children: "Description:" }),
91189
+ /* @__PURE__ */ jsx34("span", { className: "text-gray-600 dark:text-gray-400", children: "Description:" }),
91098
91190
  " ",
91099
91191
  item.description
91100
91192
  ] }),
91101
91193
  item.mimeType && /* @__PURE__ */ jsxs18("div", { className: "text-sm", children: [
91102
- /* @__PURE__ */ jsx33("span", { className: "text-gray-600 dark:text-gray-400", children: "MIME Type:" }),
91194
+ /* @__PURE__ */ jsx34("span", { className: "text-gray-600 dark:text-gray-400", children: "MIME Type:" }),
91103
91195
  " ",
91104
91196
  item.mimeType
91105
91197
  ] }),
91106
91198
  item.annotations && /* @__PURE__ */ jsxs18("div", { className: "mt-2", children: [
91107
- /* @__PURE__ */ jsx33("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Annotations:" }),
91108
- /* @__PURE__ */ jsx33(
91199
+ /* @__PURE__ */ jsx34("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Annotations:" }),
91200
+ /* @__PURE__ */ jsx34(
91109
91201
  JSONDisplay,
91110
91202
  {
91111
91203
  data: item.annotations,
@@ -91120,7 +91212,7 @@ function FormattedContentDisplay({ content }) {
91120
91212
  if (item.type === "resource") {
91121
91213
  const resource = item.resource || {};
91122
91214
  return /* @__PURE__ */ jsxs18("div", { className: "space-y-2", children: [
91123
- /* @__PURE__ */ jsx33("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Embedded Resource" }),
91215
+ /* @__PURE__ */ jsx34("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Embedded Resource" }),
91124
91216
  /* @__PURE__ */ jsxs18("div", { className: "bg-gray-50 dark:bg-zinc-900 rounded-lg p-3 space-y-2", children: [
91125
91217
  /* @__PURE__ */ jsxs18(
91126
91218
  "div",
@@ -91128,14 +91220,14 @@ function FormattedContentDisplay({ content }) {
91128
91220
  className: "font-mono text-sm break-all",
91129
91221
  "data-testid": "tool-execution-results-resource-uri",
91130
91222
  children: [
91131
- /* @__PURE__ */ jsx33("span", { className: "text-gray-600 dark:text-gray-400", children: "URI:" }),
91223
+ /* @__PURE__ */ jsx34("span", { className: "text-gray-600 dark:text-gray-400", children: "URI:" }),
91132
91224
  " ",
91133
91225
  resource.uri
91134
91226
  ]
91135
91227
  }
91136
91228
  ),
91137
91229
  resource.mimeType && /* @__PURE__ */ jsxs18("div", { className: "text-sm", children: [
91138
- /* @__PURE__ */ jsx33(
91230
+ /* @__PURE__ */ jsx34(
91139
91231
  "span",
91140
91232
  {
91141
91233
  className: "text-gray-600 dark:text-gray-400",
@@ -91147,8 +91239,8 @@ function FormattedContentDisplay({ content }) {
91147
91239
  resource.mimeType
91148
91240
  ] }),
91149
91241
  resource.text && /* @__PURE__ */ jsxs18("div", { "data-testid": "tool-execution-results-resource-text-content", children: [
91150
- /* @__PURE__ */ jsx33("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Content:" }),
91151
- /* @__PURE__ */ jsx33("div", { className: "bg-white dark:bg-black rounded p-2 font-mono text-sm whitespace-pre-wrap break-words max-h-60 overflow-y-auto", children: resource.text })
91242
+ /* @__PURE__ */ jsx34("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Content:" }),
91243
+ /* @__PURE__ */ jsx34("div", { className: "bg-white dark:bg-black rounded p-2 font-mono text-sm whitespace-pre-wrap break-words max-h-60 overflow-y-auto", children: resource.text })
91152
91244
  ] }),
91153
91245
  resource.blob && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
91154
91246
  "[Binary content: ",
@@ -91156,8 +91248,8 @@ function FormattedContentDisplay({ content }) {
91156
91248
  " bytes]"
91157
91249
  ] }),
91158
91250
  resource.annotations && /* @__PURE__ */ jsxs18("div", { className: "mt-2", children: [
91159
- /* @__PURE__ */ jsx33("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Annotations:" }),
91160
- /* @__PURE__ */ jsx33(
91251
+ /* @__PURE__ */ jsx34("div", { className: "text-xs text-gray-500 dark:text-gray-400 mb-1", children: "Annotations:" }),
91252
+ /* @__PURE__ */ jsx34(
91161
91253
  JSONDisplay,
91162
91254
  {
91163
91255
  data: resource.annotations,
@@ -91174,7 +91266,7 @@ function FormattedContentDisplay({ content }) {
91174
91266
  "Unknown Content Type: ",
91175
91267
  item.type || "N/A"
91176
91268
  ] }),
91177
- /* @__PURE__ */ jsx33(
91269
+ /* @__PURE__ */ jsx34(
91178
91270
  JSONDisplay,
91179
91271
  {
91180
91272
  data: item,
@@ -91218,11 +91310,11 @@ function ToolResultDisplay({
91218
91310
  hasSeenComponentViewRef.current = false;
91219
91311
  setViewMode(null);
91220
91312
  }, [currentResult?.toolName]);
91221
- const memoizedArgs = useMemo8(
91313
+ const memoizedArgs = useMemo9(
91222
91314
  () => result?.args,
91223
91315
  [result?.timestamp, selectedIndex]
91224
91316
  );
91225
- const memoizedResult = useMemo8(
91317
+ const memoizedResult = useMemo9(
91226
91318
  () => result?.result,
91227
91319
  [result?.timestamp, result?.duration, selectedIndex]
91228
91320
  );
@@ -91237,15 +91329,15 @@ function ToolResultDisplay({
91237
91329
  });
91238
91330
  }, []);
91239
91331
  const { playground } = useWidgetDebug();
91240
- const widgetProtocol = useMemo8(
91332
+ const widgetProtocol = useMemo9(
91241
91333
  () => result ? detectWidgetProtocol(result.toolMeta, result.result) : null,
91242
91334
  [result]
91243
91335
  );
91244
- const supportsBothProtocols = useMemo8(
91336
+ const supportsBothProtocols = useMemo9(
91245
91337
  () => result ? hasBothProtocols(result.toolMeta) : false,
91246
91338
  [result]
91247
91339
  );
91248
- const activeProtocol = useMemo8(() => {
91340
+ const activeProtocol = useMemo9(() => {
91249
91341
  if (!widgetProtocol) return null;
91250
91342
  if (widgetProtocol === "both") {
91251
91343
  if (playground.selectedProtocol) {
@@ -91255,36 +91347,40 @@ function ToolResultDisplay({
91255
91347
  }
91256
91348
  return widgetProtocol;
91257
91349
  }, [widgetProtocol, playground.selectedProtocol]);
91258
- const mcpAppsResourceUri = useMemo8(() => {
91350
+ const mcpAppsResourceUri = useMemo9(() => {
91259
91351
  if (!result) return null;
91260
91352
  return supportsBothProtocols ? getResourceUriForProtocol("mcp-apps", result.toolMeta) : result.toolMeta?.ui?.resourceUri;
91261
91353
  }, [result, supportsBothProtocols]);
91262
- const hasMcpAppsResource = useMemo8(
91354
+ const hasMcpAppsResource = useMemo9(
91263
91355
  () => (activeProtocol === "mcp-apps" || supportsBothProtocols) && !!mcpAppsResourceUri,
91264
91356
  [activeProtocol, supportsBothProtocols, mcpAppsResourceUri]
91265
91357
  );
91266
- const openaiOutputTemplate = useMemo8(() => {
91358
+ const openaiOutputTemplate = useMemo9(() => {
91267
91359
  if (!result) return null;
91268
91360
  return supportsBothProtocols ? getResourceUriForProtocol("chatgpt-app", result.toolMeta) : result.toolMeta?.["openai/outputTemplate"];
91269
91361
  }, [result, supportsBothProtocols]);
91270
- const hasAppsSdkResource = useMemo8(
91362
+ const hasAppsSdkResource = useMemo9(
91271
91363
  () => !!((activeProtocol === "chatgpt-app" || supportsBothProtocols) && openaiOutputTemplate && typeof openaiOutputTemplate === "string" && result?.appsSdkResource),
91272
91364
  [activeProtocol, supportsBothProtocols, openaiOutputTemplate, result]
91273
91365
  );
91274
91366
  const appsSdkUri = openaiOutputTemplate;
91275
- const content = useMemo8(() => result?.result?.content || [], [result]);
91276
- const mcpUIResources = useMemo8(
91367
+ const content = useMemo9(() => result?.result?.content || [], [result]);
91368
+ const mcpUIResources = useMemo9(
91277
91369
  () => content.filter(
91278
91370
  (item) => item.type === "resource" && isMcpUIResource(item.resource)
91279
91371
  ),
91280
91372
  [content]
91281
91373
  );
91282
91374
  const hasMcpUIResources = mcpUIResources.length > 0;
91283
- const hasContentOrStructured = useMemo8(
91375
+ const activeUri = useMemo9(
91376
+ () => appsSdkUri || mcpAppsResourceUri || mcpUIResources[0]?.resource?.uri || null,
91377
+ [appsSdkUri, mcpAppsResourceUri, mcpUIResources]
91378
+ );
91379
+ const hasContentOrStructured = useMemo9(
91284
91380
  () => !!(content && content.length > 0 || result?.result?.structuredContent),
91285
91381
  [content, result]
91286
91382
  );
91287
- const isNonUIResult = useMemo8(
91383
+ const isNonUIResult = useMemo9(
91288
91384
  () => !hasMcpAppsResource && !hasMcpUIResources && !hasAppsSdkResource && hasContentOrStructured,
91289
91385
  [
91290
91386
  hasMcpAppsResource,
@@ -91293,7 +91389,7 @@ function ToolResultDisplay({
91293
91389
  hasContentOrStructured
91294
91390
  ]
91295
91391
  );
91296
- const availableViews = useMemo8(() => {
91392
+ const availableViews = useMemo9(() => {
91297
91393
  const views = [];
91298
91394
  if (hasMcpAppsResource || supportsBothProtocols && mcpAppsResourceUri) {
91299
91395
  views.push({ mode: "mcp-apps", label: "Component (MCP Apps)" });
@@ -91332,31 +91428,26 @@ function ToolResultDisplay({
91332
91428
  }
91333
91429
  }, [availableViews, viewMode]);
91334
91430
  if (results.length === 0) {
91335
- return /* @__PURE__ */ jsx33("div", { className: "flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700", children: /* @__PURE__ */ jsx33("div", { className: "flex-1 overflow-y-auto h-full", children: /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx33("div", { className: "text-center", children: /* @__PURE__ */ jsx33(NotFound, { vertical: true, noBorder: true, message: "No Results yet" }) }) }) }) });
91431
+ return /* @__PURE__ */ jsx34("div", { className: "flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700", children: /* @__PURE__ */ jsx34("div", { className: "flex-1 overflow-y-auto h-full", children: /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx34("div", { className: "text-center", children: /* @__PURE__ */ jsx34(NotFound, { vertical: true, noBorder: true, message: "No Results yet" }) }) }) }) });
91336
91432
  }
91337
- return /* @__PURE__ */ jsx33("div", { className: "flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700", children: /* @__PURE__ */ jsx33("div", { className: "flex-1 overflow-y-auto h-full", children: /* @__PURE__ */ jsxs18("div", { className: "space-y-0 flex flex-col flex-1 h-full", children: [
91338
- /* @__PURE__ */ jsxs18(
91339
- "div",
91340
- {
91341
- className: `sticky top-0 z-20 flex items-center gap-2 px-4 pt-2 backdrop-blur-xs bg-white/50 dark:bg-black/50 ${hasMcpAppsResource || hasMcpUIResources || hasAppsSdkResource || isNonUIResult ? "border-b border-gray-200 dark:border-zinc-600 pb-2" : ""}`,
91342
- children: [
91343
- /* @__PURE__ */ jsx33("h3", { className: "text-sm font-medium hidden sm:block", children: "Response" }),
91344
- result.duration !== void 0 && /* @__PURE__ */ jsxs18("div", { className: "hidden sm:flex items-center gap-1", children: [
91345
- /* @__PURE__ */ jsx33(Zap, { className: "h-3 w-3 text-gray-400" }),
91346
- /* @__PURE__ */ jsxs18("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
91347
- result.duration,
91348
- "ms"
91349
- ] })
91350
- ] }),
91351
- (hasAppsSdkResource || hasMcpAppsResource || hasMcpUIResources) && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-4 sm:ml-4", children: [
91352
- (appsSdkUri || mcpAppsResourceUri || mcpUIResources[0]?.resource?.uri) && /* @__PURE__ */ jsxs18("span", { className: "hidden sm:inline text-xs text-gray-500 dark:text-gray-400", children: [
91353
- "URI:",
91354
- " ",
91355
- appsSdkUri || mcpAppsResourceUri || mcpUIResources[0]?.resource?.uri || "No URI"
91433
+ return /* @__PURE__ */ jsxs18("div", { className: "relative flex flex-col h-full bg-white dark:bg-black border-t dark:border-zinc-700", children: [
91434
+ /* @__PURE__ */ jsx34("div", { className: "flex-1 overflow-y-auto h-full", children: /* @__PURE__ */ jsxs18("div", { className: "space-y-0 flex flex-col flex-1 h-full", children: [
91435
+ /* @__PURE__ */ jsxs18(
91436
+ "div",
91437
+ {
91438
+ className: `sticky top-0 z-20 flex items-center gap-2 px-4 pt-2 backdrop-blur-xs bg-white/50 dark:bg-black/50 ${hasMcpAppsResource || hasMcpUIResources || hasAppsSdkResource || isNonUIResult ? "border-b border-gray-200 dark:border-zinc-600 pb-2" : ""}`,
91439
+ children: [
91440
+ /* @__PURE__ */ jsx34("h3", { className: "text-sm font-medium hidden sm:block", children: "Response" }),
91441
+ result.duration !== void 0 && /* @__PURE__ */ jsxs18("div", { className: "hidden sm:flex items-center gap-1", children: [
91442
+ /* @__PURE__ */ jsx34(Zap, { className: "h-3 w-3 text-gray-400" }),
91443
+ /* @__PURE__ */ jsxs18("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
91444
+ result.duration,
91445
+ "ms"
91446
+ ] })
91356
91447
  ] }),
91357
- /* @__PURE__ */ jsx33("div", { className: "flex items-center gap-2", children: availableViews.map((view, index) => /* @__PURE__ */ jsxs18(React6.Fragment, { children: [
91358
- index > 0 && /* @__PURE__ */ jsx33("span", { className: "text-xs text-zinc-400", children: "|" }),
91359
- /* @__PURE__ */ jsx33(
91448
+ (hasAppsSdkResource || hasMcpAppsResource || hasMcpUIResources) && /* @__PURE__ */ jsx34("div", { className: "flex items-center gap-4 sm:ml-4", children: /* @__PURE__ */ jsx34("div", { className: "flex items-center gap-2", children: availableViews.map((view, index) => /* @__PURE__ */ jsxs18(React7.Fragment, { children: [
91449
+ index > 0 && /* @__PURE__ */ jsx34("span", { className: "text-xs text-zinc-400", children: "|" }),
91450
+ /* @__PURE__ */ jsx34(
91360
91451
  "button",
91361
91452
  {
91362
91453
  "data-testid": `tool-result-view-${view.mode}`,
@@ -91365,247 +91456,267 @@ function ToolResultDisplay({
91365
91456
  children: view.label
91366
91457
  }
91367
91458
  )
91368
- ] }, view.mode)) })
91369
- ] }),
91370
- isNonUIResult && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 sm:ml-4", children: [
91371
- /* @__PURE__ */ jsx33(
91372
- "button",
91373
- {
91374
- onClick: () => setFormattedMode(true),
91375
- className: `text-xs font-medium ${formattedMode ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
91376
- children: "Formatted"
91377
- }
91378
- ),
91379
- /* @__PURE__ */ jsx33("span", { className: "text-xs text-zinc-400", children: "|" }),
91380
- /* @__PURE__ */ jsx33(
91381
- "button",
91382
- {
91383
- onClick: () => setFormattedMode(false),
91384
- className: `text-xs font-medium ${!formattedMode ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
91385
- children: "Raw"
91386
- }
91387
- )
91388
- ] }),
91389
- /* @__PURE__ */ jsxs18("div", { className: "ml-auto flex items-center gap-1", children: [
91390
- (hasMcpAppsResource || hasAppsSdkResource || hasMcpUIResources) && onMaximize && /* @__PURE__ */ jsx33(
91391
- Button,
91392
- {
91393
- "data-testid": "tool-result-maximize",
91394
- variant: "ghost",
91395
- size: "sm",
91396
- onClick: onMaximize,
91397
- title: isMaximized ? "Restore" : "Maximize",
91398
- children: isMaximized ? /* @__PURE__ */ jsx33(Minimize, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx33(Maximize, { className: "h-4 w-4" })
91399
- }
91400
- ),
91401
- toolResults.length > 1 && /* @__PURE__ */ jsxs18(
91402
- Select,
91403
- {
91404
- value: selectedIndex.toString(),
91405
- onValueChange: (value) => setSelectedIndex(parseInt(value)),
91406
- children: [
91407
- /* @__PURE__ */ jsx33(SelectTrigger, { size: "sm", className: "w-[140px] h-8 text-xs", children: /* @__PURE__ */ jsx33(SelectValue, { children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1", children: [
91408
- /* @__PURE__ */ jsx33(History, { className: "h-3 w-3" }),
91409
- /* @__PURE__ */ jsx33(RelativeTimeDisplay, { timestamp: result.timestamp })
91410
- ] }) }) }),
91411
- /* @__PURE__ */ jsx33(SelectContent, { children: toolResults.map((r2, idx) => /* @__PURE__ */ jsx33(SelectItem, { value: idx.toString(), children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
91412
- /* @__PURE__ */ jsx33(History, { className: "h-3 w-3" }),
91413
- /* @__PURE__ */ jsx33("span", { children: getRelativeTime(r2.timestamp) }),
91414
- /* @__PURE__ */ jsxs18("span", { className: "text-xs text-muted-foreground", children: [
91415
- "(",
91416
- new Date(r2.timestamp).toLocaleTimeString(),
91417
- ")"
91418
- ] })
91419
- ] }) }, idx)) })
91420
- ]
91421
- }
91422
- ),
91423
- /* @__PURE__ */ jsx33(
91424
- Button,
91425
- {
91426
- "data-testid": `tool-result-copy-${originalResultIndex}`,
91427
- variant: "ghost",
91428
- size: "sm",
91429
- onClick: () => onCopy(originalResultIndex, copyableText),
91430
- children: copiedResult === originalResultIndex ? /* @__PURE__ */ jsx33(Check2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx33(Copy4, { className: "h-4 w-4" })
91431
- }
91432
- )
91433
- ] })
91434
- ]
91435
- }
91436
- ),
91437
- (() => {
91438
- const errorMessage = result.error || extractErrorMessage(result.result);
91439
- if (errorMessage) {
91440
- return /* @__PURE__ */ jsxs18("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3 mx-4", children: [
91441
- /* @__PURE__ */ jsx33("p", { className: "text-red-800 dark:text-red-300 font-medium", children: "Error:" }),
91442
- /* @__PURE__ */ jsx33("p", { className: "text-red-700 dark:text-red-400 text-sm", children: errorMessage })
91443
- ] });
91444
- }
91445
- return (() => {
91446
- if (!viewMode) {
91447
- return /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-center w-full h-[200px]", children: /* @__PURE__ */ jsx33(Spinner, { className: "size-5" }) });
91448
- }
91449
- switch (viewMode) {
91450
- case "chatgpt-app": {
91451
- if (!hasAppsSdkResource || !result.appsSdkResource) {
91452
- return /* @__PURE__ */ jsx33("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx33("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx33("p", { className: "text-sm text-red-600 dark:text-red-400", children: "Apps SDK resource not available" }) }) });
91453
- }
91454
- const appsSdk = result.appsSdkResource;
91455
- if (appsSdk.isLoading) {
91456
- return /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-center w-full h-[200px]", children: /* @__PURE__ */ jsx33(Spinner, { className: "size-5" }) });
91457
- }
91458
- if (appsSdk.error) {
91459
- return /* @__PURE__ */ jsxs18("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3 mx-4", children: [
91460
- /* @__PURE__ */ jsx33("p", { className: "text-red-800 dark:text-red-300 font-medium", children: "Resource Error:" }),
91461
- /* @__PURE__ */ jsx33("p", { className: "text-red-700 dark:text-red-400 text-sm", children: appsSdk.error })
91462
- ] });
91463
- }
91464
- return /* @__PURE__ */ jsx33("div", { className: "flex-1", children: /* @__PURE__ */ jsx33(
91465
- OpenAIComponentRenderer,
91466
- {
91467
- componentUrl: appsSdk.uri,
91468
- toolName: result.toolName,
91469
- toolArgs: memoizedArgs,
91470
- toolResult: memoizedResult,
91471
- serverId,
91472
- readResource: memoizedReadResource,
91473
- className: "w-full h-full relative p-4"
91474
- },
91475
- `openai-${result.timestamp}`
91476
- ) });
91477
- }
91478
- case "mcp-apps": {
91479
- if (!hasMcpAppsResource || !mcpAppsResourceUri) {
91480
- return /* @__PURE__ */ jsx33("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx33("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx33("p", { className: "text-sm text-red-600 dark:text-red-400", children: "MCP Apps resource not available" }) }) });
91481
- }
91482
- return /* @__PURE__ */ jsxs18("div", { className: "flex-1 relative", children: [
91483
- /* @__PURE__ */ jsx33("div", { className: "absolute top-2 right-2 z-30 flex items-center gap-2", children: /* @__PURE__ */ jsx33(
91484
- MCPAppsDebugControls,
91459
+ ] }, view.mode)) }) }),
91460
+ isNonUIResult && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 sm:ml-4", children: [
91461
+ /* @__PURE__ */ jsx34(
91462
+ "button",
91485
91463
  {
91486
- toolCallId: `tool-${result.timestamp}`,
91487
- displayMode: mcpAppsDisplayMode,
91488
- onDisplayModeChange: setMcpAppsDisplayMode,
91489
- propsContext: "tool",
91490
- resourceUri: mcpAppsResourceUri,
91491
- toolInput: result.args,
91492
- resourceAnnotations: result.toolMeta,
91493
- llmConfig: null,
91494
- resource: null,
91495
- onPropsChange: setActiveProps
91464
+ onClick: () => setFormattedMode(true),
91465
+ className: `text-xs font-medium ${formattedMode ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
91466
+ children: "Formatted"
91496
91467
  }
91497
- ) }),
91498
- /* @__PURE__ */ jsx33(
91499
- MCPAppsRenderer,
91468
+ ),
91469
+ /* @__PURE__ */ jsx34("span", { className: "text-xs text-zinc-400", children: "|" }),
91470
+ /* @__PURE__ */ jsx34(
91471
+ "button",
91500
91472
  {
91501
- serverId,
91502
- toolCallId: `tool-${result.timestamp}`,
91503
- toolName: result.toolName,
91504
- toolInput: memoizedArgs,
91505
- toolOutput: memoizedResult,
91506
- toolMetadata: result.toolMeta,
91507
- resourceUri: mcpAppsResourceUri,
91508
- readResource: memoizedReadResource,
91509
- className: "w-full h-full relative p-4",
91510
- customProps: activeProps || void 0,
91511
- displayMode: mcpAppsDisplayMode,
91512
- onDisplayModeChange: setMcpAppsDisplayMode,
91513
- onSendFollowUp: memoizedOnSendFollowUp,
91514
- onRerun: onRerunTool
91515
- },
91516
- `mcp-apps-${result.timestamp}`
91473
+ onClick: () => setFormattedMode(false),
91474
+ className: `text-xs font-medium ${!formattedMode ? "text-black dark:text-white" : "text-zinc-500 dark:text-zinc-400"}`,
91475
+ children: "Raw"
91476
+ }
91517
91477
  )
91518
- ] });
91519
- }
91520
- case "mcp-ui": {
91521
- if (!hasMcpUIResources) {
91522
- return /* @__PURE__ */ jsx33("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx33("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx33("p", { className: "text-sm text-red-600 dark:text-red-400", children: "MCP-UI resource not available" }) }) });
91523
- }
91524
- return /* @__PURE__ */ jsxs18("div", { className: "space-y-0 h-full", children: [
91525
- mcpUIResources.map((item, idx) => /* @__PURE__ */ jsx33("div", { className: "mx-0 size-full", children: /* @__PURE__ */ jsx33(
91526
- McpUIRenderer,
91478
+ ] }),
91479
+ /* @__PURE__ */ jsxs18("div", { className: "ml-auto flex items-center gap-1", children: [
91480
+ isMaximized && onRerunTool && /* @__PURE__ */ jsxs18(
91481
+ Button,
91527
91482
  {
91528
- resource: item.resource,
91529
- onUIAction: (_action) => {
91530
- },
91531
- className: "w-full h-full relative"
91483
+ "data-testid": "tool-result-rerun",
91484
+ variant: "ghost",
91485
+ size: "sm",
91486
+ onClick: onRerunTool,
91487
+ title: "Re-run with same arguments",
91488
+ children: [
91489
+ /* @__PURE__ */ jsx34(Play, { className: "h-4 w-4" }),
91490
+ /* @__PURE__ */ jsx34("span", { className: "hidden sm:inline ml-1", children: "Re-run" })
91491
+ ]
91532
91492
  }
91533
- ) }, idx)),
91534
- content.filter(
91535
- (item) => !(item.type === "resource" && isMcpUIResource(item.resource))
91536
- ).length > 0 && /* @__PURE__ */ jsx33("div", { className: "px-4", children: /* @__PURE__ */ jsx33(
91537
- JSONDisplay,
91493
+ ),
91494
+ (hasMcpAppsResource || hasAppsSdkResource || hasMcpUIResources) && onMaximize && /* @__PURE__ */ jsx34(
91495
+ Button,
91538
91496
  {
91539
- data: content.filter(
91540
- (item) => !(item.type === "resource" && isMcpUIResource(item.resource))
91541
- ),
91542
- filename: `tool-result-${result.toolName}-non-ui-${Date.now()}.json`
91497
+ "data-testid": "tool-result-maximize",
91498
+ variant: "ghost",
91499
+ size: "sm",
91500
+ onClick: onMaximize,
91501
+ title: isMaximized ? "Restore" : "Maximize",
91502
+ children: isMaximized ? /* @__PURE__ */ jsx34(Minimize, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx34(Maximize, { className: "h-4 w-4" })
91543
91503
  }
91544
- ) })
91545
- ] });
91546
- }
91547
- case "json": {
91548
- if (isNonUIResult && formattedMode) {
91549
- const structuredContent = result.result?.structuredContent;
91550
- return /* @__PURE__ */ jsxs18(
91551
- "div",
91504
+ ),
91505
+ toolResults.length > 1 && /* @__PURE__ */ jsxs18(
91506
+ Select,
91552
91507
  {
91553
- className: "px-4 pt-4 space-y-4",
91554
- "data-testid": "tool-execution-results-content",
91508
+ value: selectedIndex.toString(),
91509
+ onValueChange: (value) => setSelectedIndex(parseInt(value)),
91555
91510
  children: [
91556
- structuredContent && /* @__PURE__ */ jsxs18(
91557
- "div",
91558
- {
91559
- className: "space-y-2",
91560
- "data-testid": "tool-execution-results-structured-content",
91561
- children: [
91562
- /* @__PURE__ */ jsx33("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Structured Content" }),
91563
- /* @__PURE__ */ jsx33(
91564
- JSONDisplay,
91565
- {
91566
- data: structuredContent,
91567
- filename: `structured-content-${result.toolName}-${Date.now()}.json`
91568
- }
91569
- )
91570
- ]
91571
- }
91572
- ),
91573
- content && content.length > 0 && /* @__PURE__ */ jsx33(FormattedContentDisplay, { content }),
91574
- !structuredContent && (!content || content.length === 0) && /* @__PURE__ */ jsx33(
91575
- "div",
91576
- {
91577
- className: "text-sm text-gray-500 dark:text-gray-400",
91578
- "data-testid": "tool-execution-results-no-content",
91579
- children: "No content to display"
91580
- }
91581
- )
91511
+ /* @__PURE__ */ jsx34(SelectTrigger, { size: "sm", className: "w-[140px] h-8 text-xs", children: /* @__PURE__ */ jsx34(SelectValue, { children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1", children: [
91512
+ /* @__PURE__ */ jsx34(History, { className: "h-3 w-3" }),
91513
+ /* @__PURE__ */ jsx34(RelativeTimeDisplay, { timestamp: result.timestamp })
91514
+ ] }) }) }),
91515
+ /* @__PURE__ */ jsx34(SelectContent, { children: toolResults.map((r2, idx) => /* @__PURE__ */ jsx34(SelectItem, { value: idx.toString(), children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
91516
+ /* @__PURE__ */ jsx34(History, { className: "h-3 w-3" }),
91517
+ /* @__PURE__ */ jsx34("span", { children: getRelativeTime(r2.timestamp) }),
91518
+ /* @__PURE__ */ jsxs18("span", { className: "text-xs text-muted-foreground", children: [
91519
+ "(",
91520
+ new Date(r2.timestamp).toLocaleTimeString(),
91521
+ ")"
91522
+ ] })
91523
+ ] }) }, idx)) })
91582
91524
  ]
91583
91525
  }
91584
- );
91526
+ ),
91527
+ /* @__PURE__ */ jsx34(
91528
+ Button,
91529
+ {
91530
+ "data-testid": `tool-result-copy-${originalResultIndex}`,
91531
+ variant: "ghost",
91532
+ size: "sm",
91533
+ onClick: () => onCopy(originalResultIndex, copyableText),
91534
+ children: copiedResult === originalResultIndex ? /* @__PURE__ */ jsx34(Check2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx34(Copy4, { className: "h-4 w-4" })
91535
+ }
91536
+ )
91537
+ ] })
91538
+ ]
91539
+ }
91540
+ ),
91541
+ (() => {
91542
+ const errorMessage = result.error || extractErrorMessage(result.result);
91543
+ if (errorMessage) {
91544
+ return /* @__PURE__ */ jsxs18("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3 mx-4", children: [
91545
+ /* @__PURE__ */ jsx34("p", { className: "text-red-800 dark:text-red-300 font-medium", children: "Error:" }),
91546
+ /* @__PURE__ */ jsx34("p", { className: "text-red-700 dark:text-red-400 text-sm", children: errorMessage })
91547
+ ] });
91548
+ }
91549
+ const widgetContent = (() => {
91550
+ if (!viewMode) {
91551
+ return /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center w-full h-[200px]", children: /* @__PURE__ */ jsx34(Spinner, { className: "size-5" }) });
91552
+ }
91553
+ switch (viewMode) {
91554
+ case "chatgpt-app": {
91555
+ if (!hasAppsSdkResource || !result.appsSdkResource) {
91556
+ return /* @__PURE__ */ jsx34("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx34("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx34("p", { className: "text-sm text-red-600 dark:text-red-400", children: "Apps SDK resource not available" }) }) });
91557
+ }
91558
+ const appsSdk = result.appsSdkResource;
91559
+ if (appsSdk.isLoading) {
91560
+ return /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center w-full h-[200px]", children: /* @__PURE__ */ jsx34(Spinner, { className: "size-5" }) });
91561
+ }
91562
+ if (appsSdk.error) {
91563
+ return /* @__PURE__ */ jsxs18("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3 mx-4", children: [
91564
+ /* @__PURE__ */ jsx34("p", { className: "text-red-800 dark:text-red-300 font-medium", children: "Resource Error:" }),
91565
+ /* @__PURE__ */ jsx34("p", { className: "text-red-700 dark:text-red-400 text-sm", children: appsSdk.error })
91566
+ ] });
91567
+ }
91568
+ return /* @__PURE__ */ jsx34("div", { className: "flex-1", children: /* @__PURE__ */ jsx34(
91569
+ OpenAIComponentRenderer,
91570
+ {
91571
+ componentUrl: appsSdk.uri,
91572
+ toolName: result.toolName,
91573
+ toolArgs: memoizedArgs,
91574
+ toolResult: memoizedResult,
91575
+ serverId,
91576
+ readResource: memoizedReadResource,
91577
+ className: "w-full h-full relative p-4",
91578
+ invoking: result.toolMeta?.["openai/toolInvocation/invoking"],
91579
+ invoked: result.toolMeta?.["openai/toolInvocation/invoked"]
91580
+ },
91581
+ `openai-${result.timestamp}`
91582
+ ) });
91585
91583
  }
91586
- return /* @__PURE__ */ jsx33("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx33(
91587
- JSONDisplay,
91588
- {
91589
- data: result.result,
91590
- filename: `tool-result-${result.toolName}-${Date.now()}.json`
91584
+ case "mcp-apps": {
91585
+ if (!hasMcpAppsResource || !mcpAppsResourceUri) {
91586
+ return /* @__PURE__ */ jsx34("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx34("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx34("p", { className: "text-sm text-red-600 dark:text-red-400", children: "MCP Apps resource not available" }) }) });
91587
+ }
91588
+ return /* @__PURE__ */ jsxs18("div", { className: "flex-1 relative", children: [
91589
+ /* @__PURE__ */ jsx34("div", { className: "absolute top-2 right-2 z-30 flex items-center gap-2", children: /* @__PURE__ */ jsx34(
91590
+ MCPAppsDebugControls,
91591
+ {
91592
+ toolCallId: `tool-${result.timestamp}`,
91593
+ displayMode: mcpAppsDisplayMode,
91594
+ onDisplayModeChange: setMcpAppsDisplayMode,
91595
+ propsContext: "tool",
91596
+ resourceUri: mcpAppsResourceUri,
91597
+ toolInput: result.args,
91598
+ resourceAnnotations: result.toolMeta,
91599
+ llmConfig: null,
91600
+ resource: null,
91601
+ onPropsChange: setActiveProps
91602
+ }
91603
+ ) }),
91604
+ /* @__PURE__ */ jsx34(
91605
+ MCPAppsRenderer,
91606
+ {
91607
+ serverId,
91608
+ invoking: result.toolMeta?.["openai/toolInvocation/invoking"],
91609
+ invoked: result.toolMeta?.["openai/toolInvocation/invoked"],
91610
+ toolCallId: `tool-${result.timestamp}`,
91611
+ toolName: result.toolName,
91612
+ toolInput: memoizedArgs,
91613
+ toolOutput: memoizedResult,
91614
+ toolMetadata: result.toolMeta,
91615
+ resourceUri: mcpAppsResourceUri,
91616
+ readResource: memoizedReadResource,
91617
+ className: "w-full h-full relative p-4",
91618
+ customProps: activeProps || void 0,
91619
+ displayMode: mcpAppsDisplayMode,
91620
+ onDisplayModeChange: setMcpAppsDisplayMode,
91621
+ onSendFollowUp: memoizedOnSendFollowUp,
91622
+ onRerun: onRerunTool
91623
+ },
91624
+ `mcp-apps-${result.timestamp}`
91625
+ )
91626
+ ] });
91627
+ }
91628
+ case "mcp-ui": {
91629
+ if (!hasMcpUIResources) {
91630
+ return /* @__PURE__ */ jsx34("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx34("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded p-3", children: /* @__PURE__ */ jsx34("p", { className: "text-sm text-red-600 dark:text-red-400", children: "MCP-UI resource not available" }) }) });
91631
+ }
91632
+ return /* @__PURE__ */ jsxs18("div", { className: "space-y-0 h-full", children: [
91633
+ mcpUIResources.map((item, idx) => /* @__PURE__ */ jsx34("div", { className: "mx-0 size-full", children: /* @__PURE__ */ jsx34(
91634
+ McpUIRenderer,
91635
+ {
91636
+ resource: item.resource,
91637
+ onUIAction: (_action) => {
91638
+ },
91639
+ className: "w-full h-full relative"
91640
+ }
91641
+ ) }, idx)),
91642
+ content.filter(
91643
+ (item) => !(item.type === "resource" && isMcpUIResource(item.resource))
91644
+ ).length > 0 && /* @__PURE__ */ jsx34("div", { className: "px-4", children: /* @__PURE__ */ jsx34(
91645
+ JSONDisplay,
91646
+ {
91647
+ data: content.filter(
91648
+ (item) => !(item.type === "resource" && isMcpUIResource(item.resource))
91649
+ ),
91650
+ filename: `tool-result-${result.toolName}-non-ui-${Date.now()}.json`
91651
+ }
91652
+ ) })
91653
+ ] });
91654
+ }
91655
+ case "json": {
91656
+ if (isNonUIResult && formattedMode) {
91657
+ const structuredContent = result.result?.structuredContent;
91658
+ return /* @__PURE__ */ jsxs18(
91659
+ "div",
91660
+ {
91661
+ className: "px-4 pt-4 space-y-4",
91662
+ "data-testid": "tool-execution-results-content",
91663
+ children: [
91664
+ structuredContent && /* @__PURE__ */ jsxs18(
91665
+ "div",
91666
+ {
91667
+ className: "space-y-2",
91668
+ "data-testid": "tool-execution-results-structured-content",
91669
+ children: [
91670
+ /* @__PURE__ */ jsx34("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400", children: "Structured Content" }),
91671
+ /* @__PURE__ */ jsx34(
91672
+ JSONDisplay,
91673
+ {
91674
+ data: structuredContent,
91675
+ filename: `structured-content-${result.toolName}-${Date.now()}.json`
91676
+ }
91677
+ )
91678
+ ]
91679
+ }
91680
+ ),
91681
+ content && content.length > 0 && /* @__PURE__ */ jsx34(FormattedContentDisplay, { content }),
91682
+ !structuredContent && (!content || content.length === 0) && /* @__PURE__ */ jsx34(
91683
+ "div",
91684
+ {
91685
+ className: "text-sm text-gray-500 dark:text-gray-400",
91686
+ "data-testid": "tool-execution-results-no-content",
91687
+ children: "No content to display"
91688
+ }
91689
+ )
91690
+ ]
91691
+ }
91692
+ );
91591
91693
  }
91592
- ) });
91694
+ return /* @__PURE__ */ jsx34("div", { className: "px-4 pt-4", children: /* @__PURE__ */ jsx34(
91695
+ JSONDisplay,
91696
+ {
91697
+ data: result.result,
91698
+ filename: `tool-result-${result.toolName}-${Date.now()}.json`
91699
+ }
91700
+ ) });
91701
+ }
91702
+ default:
91703
+ return null;
91593
91704
  }
91594
- default:
91595
- return null;
91596
- }
91597
- })();
91598
- })()
91599
- ] }) }) });
91705
+ })();
91706
+ return widgetContent;
91707
+ })()
91708
+ ] }) }),
91709
+ activeUri && (viewMode === "chatgpt-app" || viewMode === "mcp-apps" || viewMode === "mcp-ui") && /* @__PURE__ */ jsx34("div", { className: "absolute bottom-0 left-1/2 -translate-x-1/2 z-40 pointer-events-none", children: /* @__PURE__ */ jsx34("span", { className: "text-[11px] bg-gray-200 dark:bg-zinc-800 text-gray-500 dark:text-gray-400 px-3 py-0.5 rounded-t-xl font-mono max-w-[320px] truncate block", children: activeUri }) })
91710
+ ] });
91600
91711
  }
91601
91712
 
91602
91713
  // src/client/components/chat/ToolResultRenderer.tsx
91603
- import { useEffect as useEffect11, useMemo as useMemo9, useRef as useRef9, useState as useState13 } from "react";
91714
+ import { useEffect as useEffect11, useMemo as useMemo10, useRef as useRef9, useState as useState13 } from "react";
91604
91715
 
91605
91716
  // src/client/components/chat/MCPUIResource.tsx
91606
91717
  import { UIResourceRenderer as UIResourceRenderer2 } from "@mcp-ui/client";
91607
91718
  import { memo as memo3 } from "react";
91608
- import { jsx as jsx34 } from "react/jsx-runtime";
91719
+ import { jsx as jsx35 } from "react/jsx-runtime";
91609
91720
  var MCPUIResource = memo3(({ resource }) => {
91610
91721
  const handleUIAction = async (result) => {
91611
91722
  if (result.type === "tool") {
@@ -91622,7 +91733,7 @@ var MCPUIResource = memo3(({ resource }) => {
91622
91733
  if (!resource.uri?.startsWith("ui://")) {
91623
91734
  return null;
91624
91735
  }
91625
- return /* @__PURE__ */ jsx34("div", { className: "my-4 p-0 border h-[350px] rounded-2xl border-zinc-200 overflow-hidden bg-card", children: /* @__PURE__ */ jsx34(
91736
+ return /* @__PURE__ */ jsx35("div", { className: "my-4 p-0 border h-[350px] rounded-2xl border-zinc-200 overflow-hidden bg-card", children: /* @__PURE__ */ jsx35(
91626
91737
  UIResourceRenderer2,
91627
91738
  {
91628
91739
  resource,
@@ -91641,7 +91752,7 @@ var MCPUIResource = memo3(({ resource }) => {
91641
91752
  });
91642
91753
 
91643
91754
  // src/client/components/chat/ToolResultRenderer.tsx
91644
- import { Fragment as Fragment7, jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
91755
+ import { Fragment as Fragment7, jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
91645
91756
  function ModelContextBadge({ widgetId }) {
91646
91757
  const { getWidget } = useWidgetDebug();
91647
91758
  const widget = getWidget(widgetId);
@@ -91649,9 +91760,9 @@ function ModelContextBadge({ widgetId }) {
91649
91760
  if (!ctx?.content?.length && !ctx?.structuredContent) return null;
91650
91761
  const preview = ctx.content?.map((c2) => c2.text).join(" ") ?? JSON.stringify(ctx.structuredContent).slice(0, 80);
91651
91762
  return /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-1.5 px-3 py-1.5 text-[11px] text-muted-foreground bg-muted/30 border border-border/40 rounded-md mt-1", children: [
91652
- /* @__PURE__ */ jsx35("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-blue-400 shrink-0" }),
91653
- /* @__PURE__ */ jsx35("span", { className: "font-medium", children: "State synced to model" }),
91654
- /* @__PURE__ */ jsx35("span", { className: "truncate opacity-60 max-w-[300px]", children: preview })
91763
+ /* @__PURE__ */ jsx36("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-blue-400 shrink-0" }),
91764
+ /* @__PURE__ */ jsx36("span", { className: "font-medium", children: "State synced to model" }),
91765
+ /* @__PURE__ */ jsx36("span", { className: "truncate opacity-60 max-w-[300px]", children: preview })
91655
91766
  ] });
91656
91767
  }
91657
91768
  function ToolResultRenderer({
@@ -91669,11 +91780,11 @@ function ToolResultRenderer({
91669
91780
  const { playground } = useWidgetDebug();
91670
91781
  const [resourceData, setResourceData] = useState13(null);
91671
91782
  const fetchedUriRef = useRef9(null);
91672
- const toolCallId = useMemo9(
91783
+ const toolCallId = useMemo10(
91673
91784
  () => `chat-tool-${toolName}-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`,
91674
91785
  [toolName]
91675
91786
  );
91676
- const parsedResult = useMemo9(() => {
91787
+ const parsedResult = useMemo10(() => {
91677
91788
  if (!result) {
91678
91789
  return null;
91679
91790
  }
@@ -91687,16 +91798,16 @@ function ToolResultRenderer({
91687
91798
  }
91688
91799
  return result;
91689
91800
  }, [result]);
91690
- const toolMetaJson = useMemo9(() => JSON.stringify(toolMeta), [toolMeta]);
91691
- const widgetProtocol = useMemo9(
91801
+ const toolMetaJson = useMemo10(() => JSON.stringify(toolMeta), [toolMeta]);
91802
+ const widgetProtocol = useMemo10(
91692
91803
  () => detectWidgetProtocol(toolMeta, parsedResult),
91693
91804
  [toolMetaJson, parsedResult]
91694
91805
  );
91695
- const supportsBothProtocols = useMemo9(
91806
+ const supportsBothProtocols = useMemo10(
91696
91807
  () => hasBothProtocols(toolMeta),
91697
91808
  [toolMetaJson]
91698
91809
  );
91699
- const activeProtocol = useMemo9(() => {
91810
+ const activeProtocol = useMemo10(() => {
91700
91811
  if (!widgetProtocol) return null;
91701
91812
  if (widgetProtocol === "both") {
91702
91813
  if (playground.selectedProtocol) {
@@ -91706,21 +91817,21 @@ function ToolResultRenderer({
91706
91817
  }
91707
91818
  return widgetProtocol;
91708
91819
  }, [widgetProtocol, playground.selectedProtocol]);
91709
- const isMcpAppsTool = useMemo9(
91820
+ const isMcpAppsTool = useMemo10(
91710
91821
  () => activeProtocol === "mcp-apps",
91711
91822
  [activeProtocol]
91712
91823
  );
91713
- const isAppsSdkTool = useMemo9(
91824
+ const isAppsSdkTool = useMemo10(
91714
91825
  () => activeProtocol === "chatgpt-app",
91715
91826
  [activeProtocol]
91716
91827
  );
91717
- const hasAppsSdkComponent = useMemo9(
91828
+ const hasAppsSdkComponent = useMemo10(
91718
91829
  () => !!(parsedResult?.content && Array.isArray(parsedResult.content) && parsedResult.content.some(
91719
91830
  (item) => item.type === "resource" && item.resource?.uri?.startsWith("ui://") && item.resource?.mimeType === "text/html+skybridge"
91720
91831
  )),
91721
91832
  [parsedResult]
91722
91833
  );
91723
- const extractedResource = useMemo9(() => {
91834
+ const extractedResource = useMemo10(() => {
91724
91835
  if (hasAppsSdkComponent) {
91725
91836
  const resourceItem = parsedResult.content.find(
91726
91837
  (item) => item.type === "resource" && item.resource?.uri?.startsWith("ui://") && item.resource?.mimeType === "text/html+skybridge"
@@ -91729,9 +91840,9 @@ function ToolResultRenderer({
91729
91840
  }
91730
91841
  return null;
91731
91842
  }, [hasAppsSdkComponent, parsedResult]);
91732
- const memoizedToolArgs = useMemo9(() => toolArgs, [toolName, parsedResult]);
91733
- const memoizedResult = useMemo9(() => parsedResult, [toolName, parsedResult]);
91734
- const resourceUri = useMemo9(() => {
91843
+ const memoizedToolArgs = useMemo10(() => toolArgs, [toolName, parsedResult]);
91844
+ const memoizedResult = useMemo10(() => parsedResult, [toolName, parsedResult]);
91845
+ const resourceUri = useMemo10(() => {
91735
91846
  if (supportsBothProtocols && activeProtocol) {
91736
91847
  return getResourceUriForProtocol(activeProtocol, toolMeta);
91737
91848
  } else if (isMcpAppsTool) {
@@ -91774,9 +91885,11 @@ function ToolResultRenderer({
91774
91885
  });
91775
91886
  }
91776
91887
  }, [extractedResource, resourceUri, activeProtocol, readResource]);
91888
+ const invokingText = toolMeta?.["openai/toolInvocation/invoking"];
91889
+ const invokedText = toolMeta?.["openai/toolInvocation/invoked"];
91777
91890
  if (supportsBothProtocols && resourceData && serverId && readResource) {
91778
- return /* @__PURE__ */ jsxs19("div", { className: "space-y-4 my-4", children: [
91779
- activeProtocol === "mcp-apps" && /* @__PURE__ */ jsx35(
91891
+ return /* @__PURE__ */ jsxs19("div", { className: "my-4", children: [
91892
+ activeProtocol === "mcp-apps" && /* @__PURE__ */ jsx36(
91780
91893
  MCPAppsRenderer,
91781
91894
  {
91782
91895
  serverId,
@@ -91785,6 +91898,8 @@ function ToolResultRenderer({
91785
91898
  toolInput: memoizedToolArgs,
91786
91899
  toolOutput: memoizedResult,
91787
91900
  toolMetadata: toolMeta,
91901
+ invoking: invokingText,
91902
+ invoked: invokedText,
91788
91903
  partialToolInput: partialToolArgs,
91789
91904
  resourceUri: resourceData.uri,
91790
91905
  readResource,
@@ -91794,7 +91909,7 @@ function ToolResultRenderer({
91794
91909
  cancelled
91795
91910
  }
91796
91911
  ),
91797
- activeProtocol === "chatgpt-app" && /* @__PURE__ */ jsx35(
91912
+ activeProtocol === "chatgpt-app" && /* @__PURE__ */ jsx36(
91798
91913
  OpenAIComponentRenderer,
91799
91914
  {
91800
91915
  componentUrl: resourceData.uri,
@@ -91805,6 +91920,8 @@ function ToolResultRenderer({
91805
91920
  readResource,
91806
91921
  noWrapper: true,
91807
91922
  showConsole: false,
91923
+ invoking: invokingText,
91924
+ invoked: invokedText,
91808
91925
  serverBaseUrl
91809
91926
  }
91810
91927
  )
@@ -91812,7 +91929,7 @@ function ToolResultRenderer({
91812
91929
  }
91813
91930
  if (isMcpAppsTool && resourceUri && serverId && readResource) {
91814
91931
  return /* @__PURE__ */ jsxs19(Fragment7, { children: [
91815
- /* @__PURE__ */ jsx35(
91932
+ /* @__PURE__ */ jsx36(
91816
91933
  MCPAppsRenderer,
91817
91934
  {
91818
91935
  serverId,
@@ -91821,6 +91938,8 @@ function ToolResultRenderer({
91821
91938
  toolInput: memoizedToolArgs,
91822
91939
  toolOutput: memoizedResult,
91823
91940
  toolMetadata: toolMeta,
91941
+ invoking: invokingText,
91942
+ invoked: invokedText,
91824
91943
  partialToolInput: partialToolArgs,
91825
91944
  resourceUri: resourceData?.uri || resourceUri,
91826
91945
  readResource,
@@ -91830,11 +91949,11 @@ function ToolResultRenderer({
91830
91949
  serverBaseUrl
91831
91950
  }
91832
91951
  ),
91833
- /* @__PURE__ */ jsx35(ModelContextBadge, { widgetId: toolCallId })
91952
+ /* @__PURE__ */ jsx36(ModelContextBadge, { widgetId: toolCallId })
91834
91953
  ] });
91835
91954
  }
91836
91955
  if ((isAppsSdkTool || hasAppsSdkComponent) && resourceUri && serverId && readResource) {
91837
- return /* @__PURE__ */ jsx35(
91956
+ return /* @__PURE__ */ jsx36(
91838
91957
  OpenAIComponentRenderer,
91839
91958
  {
91840
91959
  componentUrl: resourceData?.uri || resourceUri,
@@ -91846,12 +91965,14 @@ function ToolResultRenderer({
91846
91965
  noWrapper: true,
91847
91966
  className: "my-4",
91848
91967
  showConsole: false,
91968
+ invoking: invokingText,
91969
+ invoked: invokedText,
91849
91970
  serverBaseUrl
91850
91971
  }
91851
91972
  );
91852
91973
  }
91853
91974
  if ((isMcpAppsTool || isAppsSdkTool || hasAppsSdkComponent) && !resourceUri) {
91854
- return /* @__PURE__ */ jsx35("div", { className: "flex items-center justify-center w-full h-[200px] rounded border", children: /* @__PURE__ */ jsx35(Spinner, { className: "size-5" }) });
91975
+ return /* @__PURE__ */ jsx36("div", { className: "flex items-center justify-center w-full h-[200px] rounded border", children: /* @__PURE__ */ jsx36(Spinner, { className: "size-5" }) });
91855
91976
  }
91856
91977
  if ((isMcpAppsTool || isAppsSdkTool) && (!serverId || !readResource)) {
91857
91978
  console.error(
@@ -91862,7 +91983,7 @@ function ToolResultRenderer({
91862
91983
  hasReadResource: !!readResource
91863
91984
  }
91864
91985
  );
91865
- return /* @__PURE__ */ jsx35("div", { className: "my-4 p-4 bg-red-50/30 dark:bg-red-950/20 border border-red-200/50 dark:border-red-800/50 rounded-lg", children: /* @__PURE__ */ jsx35("p", { className: "text-sm text-red-600 dark:text-red-400", children: "Cannot render widget: Missing required props (serverId or readResource)" }) });
91986
+ return /* @__PURE__ */ jsx36("div", { className: "my-4 p-4 bg-red-50/30 dark:bg-red-950/20 border border-red-200/50 dark:border-red-800/50 rounded-lg", children: /* @__PURE__ */ jsx36("p", { className: "text-sm text-red-600 dark:text-red-400", children: "Cannot render widget: Missing required props (serverId or readResource)" }) });
91866
91987
  }
91867
91988
  const mcpUIResources = [];
91868
91989
  if (parsedResult?.content && Array.isArray(parsedResult.content)) {
@@ -91873,7 +91994,7 @@ function ToolResultRenderer({
91873
91994
  }
91874
91995
  }
91875
91996
  if (mcpUIResources.length > 0) {
91876
- return /* @__PURE__ */ jsx35(Fragment7, { children: mcpUIResources.map((resource) => /* @__PURE__ */ jsx35(
91997
+ return /* @__PURE__ */ jsx36(Fragment7, { children: mcpUIResources.map((resource) => /* @__PURE__ */ jsx36(
91877
91998
  MCPUIResource,
91878
91999
  {
91879
92000
  resource
@@ -91961,7 +92082,7 @@ function useKeyboardShortcuts(handlers) {
91961
92082
  }
91962
92083
 
91963
92084
  // src/client/hooks/useMCPPrompts.ts
91964
- import { useState as useState14, useCallback as useCallback12, useEffect as useEffect13, useMemo as useMemo10 } from "react";
92085
+ import { useState as useState14, useCallback as useCallback12, useEffect as useEffect13, useMemo as useMemo11 } from "react";
91965
92086
 
91966
92087
  // src/client/telemetry/events.ts
91967
92088
  var MCPInspectorOpenEvent = class {
@@ -92274,7 +92395,7 @@ function useMCPPrompts({
92274
92395
  const [results, setResults] = useState14([]);
92275
92396
  const [isExecuting, setIsExecuting] = useState14(false);
92276
92397
  const [searchQuery, setSearchQuery] = useState14("");
92277
- const filteredPrompts = useMemo10(() => {
92398
+ const filteredPrompts = useMemo11(() => {
92278
92399
  if (!searchQuery.trim()) return prompts;
92279
92400
  const query = searchQuery.toLowerCase();
92280
92401
  return prompts.filter(
@@ -92394,8 +92515,8 @@ function useMCPPrompts({
92394
92515
 
92395
92516
  // src/client/components/ui/badge.tsx
92396
92517
  import { cva as cva2 } from "class-variance-authority";
92397
- import * as React7 from "react";
92398
- import { jsx as jsx36 } from "react/jsx-runtime";
92518
+ import * as React8 from "react";
92519
+ import { jsx as jsx37 } from "react/jsx-runtime";
92399
92520
  var badgeVariants = cva2(
92400
92521
  "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
92401
92522
  {
@@ -92412,9 +92533,9 @@ var badgeVariants = cva2(
92412
92533
  }
92413
92534
  }
92414
92535
  );
92415
- var Badge = React7.forwardRef(({ className, variant, asChild = false, ...props }, ref) => {
92536
+ var Badge = React8.forwardRef(({ className, variant, asChild = false, ...props }, ref) => {
92416
92537
  const Comp = asChild ? Slot : "span";
92417
- return /* @__PURE__ */ jsx36(
92538
+ return /* @__PURE__ */ jsx37(
92418
92539
  Comp,
92419
92540
  {
92420
92541
  ref,
@@ -92432,7 +92553,7 @@ import { SquarePen } from "lucide-react";
92432
92553
  // src/client/components/chat/ConfigurationDialog.tsx
92433
92554
  import { Check as Check3, ChevronsUpDown, Eye, EyeOff, Key, Loader2 as Loader22 } from "lucide-react";
92434
92555
  import { useEffect as useEffect14, useState as useState15 } from "react";
92435
- import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
92556
+ import { jsx as jsx38, jsxs as jsxs20 } from "react/jsx-runtime";
92436
92557
  var MODELS_CACHE_KEY = "mcp-inspector-models-cache";
92437
92558
  var CACHE_TTL_MS = 24 * 60 * 60 * 1e3;
92438
92559
  function getModelsCache() {
@@ -92587,24 +92708,24 @@ function ConfigurationDialog({
92587
92708
  const getProviderIcon = (provider) => {
92588
92709
  return `https://inspector-cdn.mcp-use.com/providers/${provider}.png`;
92589
92710
  };
92590
- return /* @__PURE__ */ jsx37(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(DialogContent, { className: "max-w-md", "data-testid": "chat-config-dialog", children: [
92711
+ return /* @__PURE__ */ jsx38(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(DialogContent, { className: "max-w-md", "data-testid": "chat-config-dialog", children: [
92591
92712
  /* @__PURE__ */ jsxs20(DialogHeader, { children: [
92592
- /* @__PURE__ */ jsx37(DialogTitle, { children: "LLM Provider Configuration" }),
92593
- /* @__PURE__ */ jsx37(DialogDescription, { children: "Configure your LLM provider and API key to start chatting with the MCP server" })
92713
+ /* @__PURE__ */ jsx38(DialogTitle, { children: "LLM Provider Configuration" }),
92714
+ /* @__PURE__ */ jsx38(DialogDescription, { children: "Configure your LLM provider and API key to start chatting with the MCP server" })
92594
92715
  ] }),
92595
92716
  /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
92596
92717
  /* @__PURE__ */ jsxs20("div", { className: "space-y-2", children: [
92597
- /* @__PURE__ */ jsx37(Label2, { children: "Provider" }),
92718
+ /* @__PURE__ */ jsx38(Label2, { children: "Provider" }),
92598
92719
  /* @__PURE__ */ jsxs20(
92599
92720
  Select,
92600
92721
  {
92601
92722
  value: tempProvider,
92602
92723
  onValueChange: (v2) => onProviderChange(v2),
92603
92724
  children: [
92604
- /* @__PURE__ */ jsx37(SelectTrigger, { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx37(SelectValue, {}) }),
92725
+ /* @__PURE__ */ jsx38(SelectTrigger, { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx38(SelectValue, {}) }),
92605
92726
  /* @__PURE__ */ jsxs20(SelectContent, { children: [
92606
- /* @__PURE__ */ jsx37(SelectItem, { value: "openai", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92607
- /* @__PURE__ */ jsx37(
92727
+ /* @__PURE__ */ jsx38(SelectItem, { value: "openai", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92728
+ /* @__PURE__ */ jsx38(
92608
92729
  "img",
92609
92730
  {
92610
92731
  src: getProviderIcon("openai"),
@@ -92612,10 +92733,10 @@ function ConfigurationDialog({
92612
92733
  className: "w-4 h-4"
92613
92734
  }
92614
92735
  ),
92615
- /* @__PURE__ */ jsx37("span", { children: "OpenAI" })
92736
+ /* @__PURE__ */ jsx38("span", { children: "OpenAI" })
92616
92737
  ] }) }),
92617
- /* @__PURE__ */ jsx37(SelectItem, { value: "anthropic", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92618
- /* @__PURE__ */ jsx37(
92738
+ /* @__PURE__ */ jsx38(SelectItem, { value: "anthropic", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92739
+ /* @__PURE__ */ jsx38(
92619
92740
  "img",
92620
92741
  {
92621
92742
  src: getProviderIcon("anthropic"),
@@ -92623,10 +92744,10 @@ function ConfigurationDialog({
92623
92744
  className: "w-4 h-4"
92624
92745
  }
92625
92746
  ),
92626
- /* @__PURE__ */ jsx37("span", { children: "Anthropic" })
92747
+ /* @__PURE__ */ jsx38("span", { children: "Anthropic" })
92627
92748
  ] }) }),
92628
- /* @__PURE__ */ jsx37(SelectItem, { value: "google", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92629
- /* @__PURE__ */ jsx37(
92749
+ /* @__PURE__ */ jsx38(SelectItem, { value: "google", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
92750
+ /* @__PURE__ */ jsx38(
92630
92751
  "img",
92631
92752
  {
92632
92753
  src: getProviderIcon("google"),
@@ -92634,7 +92755,7 @@ function ConfigurationDialog({
92634
92755
  className: "w-4 h-4"
92635
92756
  }
92636
92757
  ),
92637
- /* @__PURE__ */ jsx37("span", { children: "Google" })
92758
+ /* @__PURE__ */ jsx38("span", { children: "Google" })
92638
92759
  ] }) })
92639
92760
  ] })
92640
92761
  ]
@@ -92642,9 +92763,9 @@ function ConfigurationDialog({
92642
92763
  )
92643
92764
  ] }),
92644
92765
  /* @__PURE__ */ jsxs20("div", { className: "space-y-2", children: [
92645
- /* @__PURE__ */ jsx37(Label2, { children: "API Key" }),
92766
+ /* @__PURE__ */ jsx38(Label2, { children: "API Key" }),
92646
92767
  /* @__PURE__ */ jsxs20("div", { className: "relative", children: [
92647
- /* @__PURE__ */ jsx37(
92768
+ /* @__PURE__ */ jsx38(
92648
92769
  Input,
92649
92770
  {
92650
92771
  type: showPassword ? "text" : "password",
@@ -92655,7 +92776,7 @@ function ConfigurationDialog({
92655
92776
  "data-testid": "chat-config-api-key-input"
92656
92777
  }
92657
92778
  ),
92658
- /* @__PURE__ */ jsx37(
92779
+ /* @__PURE__ */ jsx38(
92659
92780
  Button,
92660
92781
  {
92661
92782
  type: "button",
@@ -92663,25 +92784,25 @@ function ConfigurationDialog({
92663
92784
  size: "sm",
92664
92785
  className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
92665
92786
  onClick: () => setShowPassword(!showPassword),
92666
- children: showPassword ? /* @__PURE__ */ jsx37(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx37(Eye, { className: "h-4 w-4 text-muted-foreground" })
92787
+ children: showPassword ? /* @__PURE__ */ jsx38(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx38(Eye, { className: "h-4 w-4 text-muted-foreground" })
92667
92788
  }
92668
92789
  )
92669
92790
  ] }),
92670
- /* @__PURE__ */ jsx37("p", { className: "text-xs text-muted-foreground", children: "Your API key is stored locally and never sent to our servers" })
92791
+ /* @__PURE__ */ jsx38("p", { className: "text-xs text-muted-foreground", children: "Your API key is stored locally and never sent to our servers" })
92671
92792
  ] }),
92672
92793
  tempApiKey.trim() && /* @__PURE__ */ jsxs20("div", { className: "space-y-2", children: [
92673
- /* @__PURE__ */ jsx37(Label2, { children: "Model" }),
92794
+ /* @__PURE__ */ jsx38(Label2, { children: "Model" }),
92674
92795
  isLoadingModels ? /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
92675
- /* @__PURE__ */ jsx37(Loader22, { className: "h-4 w-4 animate-spin" }),
92676
- /* @__PURE__ */ jsx37("span", { children: "Loading models..." })
92677
- ] }) : modelError ? /* @__PURE__ */ jsx37("div", { className: "text-sm text-destructive", children: modelError }) : models.length > 0 ? /* @__PURE__ */ jsxs20(
92796
+ /* @__PURE__ */ jsx38(Loader22, { className: "h-4 w-4 animate-spin" }),
92797
+ /* @__PURE__ */ jsx38("span", { children: "Loading models..." })
92798
+ ] }) : modelError ? /* @__PURE__ */ jsx38("div", { className: "text-sm text-destructive", children: modelError }) : models.length > 0 ? /* @__PURE__ */ jsxs20(
92678
92799
  Popover,
92679
92800
  {
92680
92801
  open: comboboxOpen,
92681
92802
  modal: true,
92682
92803
  onOpenChange: setComboboxOpen,
92683
92804
  children: [
92684
- /* @__PURE__ */ jsx37(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs20(
92805
+ /* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs20(
92685
92806
  Button,
92686
92807
  {
92687
92808
  variant: "outline",
@@ -92691,12 +92812,12 @@ function ConfigurationDialog({
92691
92812
  "data-testid": "chat-config-model-select",
92692
92813
  children: [
92693
92814
  tempModel ? models.find((model) => model.id === tempModel)?.displayName || models.find((model) => model.id === tempModel)?.id || "Select a model..." : "Select a model...",
92694
- /* @__PURE__ */ jsx37(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
92815
+ /* @__PURE__ */ jsx38(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
92695
92816
  ]
92696
92817
  }
92697
92818
  ) }),
92698
- /* @__PURE__ */ jsx37(PopoverContent, { className: "w-full p-0", align: "start", children: /* @__PURE__ */ jsxs20(Command, { children: [
92699
- /* @__PURE__ */ jsx37(
92819
+ /* @__PURE__ */ jsx38(PopoverContent, { className: "w-full p-0", align: "start", children: /* @__PURE__ */ jsxs20(Command, { children: [
92820
+ /* @__PURE__ */ jsx38(
92700
92821
  CommandInput,
92701
92822
  {
92702
92823
  placeholder: "Search models...",
@@ -92704,8 +92825,8 @@ function ConfigurationDialog({
92704
92825
  }
92705
92826
  ),
92706
92827
  /* @__PURE__ */ jsxs20(CommandList, { children: [
92707
- /* @__PURE__ */ jsx37(CommandEmpty, { children: "No model found." }),
92708
- /* @__PURE__ */ jsx37(CommandGroup, { children: models.map((model) => /* @__PURE__ */ jsxs20(
92828
+ /* @__PURE__ */ jsx38(CommandEmpty, { children: "No model found." }),
92829
+ /* @__PURE__ */ jsx38(CommandGroup, { children: models.map((model) => /* @__PURE__ */ jsxs20(
92709
92830
  CommandItem,
92710
92831
  {
92711
92832
  value: model.id,
@@ -92717,7 +92838,7 @@ function ConfigurationDialog({
92717
92838
  },
92718
92839
  children: [
92719
92840
  model.displayName || model.id,
92720
- /* @__PURE__ */ jsx37(
92841
+ /* @__PURE__ */ jsx38(
92721
92842
  Check3,
92722
92843
  {
92723
92844
  className: cn(
@@ -92734,7 +92855,7 @@ function ConfigurationDialog({
92734
92855
  ] }) })
92735
92856
  ]
92736
92857
  }
92737
- ) : /* @__PURE__ */ jsx37(
92858
+ ) : /* @__PURE__ */ jsx38(
92738
92859
  Input,
92739
92860
  {
92740
92861
  value: tempModel,
@@ -92745,7 +92866,7 @@ function ConfigurationDialog({
92745
92866
  )
92746
92867
  ] }),
92747
92868
  /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
92748
- showClearButton && onClear && /* @__PURE__ */ jsx37(Button, { variant: "outline", onClick: onClear, children: "Clear Config" }),
92869
+ showClearButton && onClear && /* @__PURE__ */ jsx38(Button, { variant: "outline", onClick: onClear, children: "Clear Config" }),
92749
92870
  /* @__PURE__ */ jsxs20(
92750
92871
  Button,
92751
92872
  {
@@ -92754,7 +92875,7 @@ function ConfigurationDialog({
92754
92875
  className: showClearButton ? "ml-auto" : "",
92755
92876
  "data-testid": "chat-config-save-button",
92756
92877
  children: [
92757
- /* @__PURE__ */ jsx37(Key, { className: "h-4 w-4 mr-2" }),
92878
+ /* @__PURE__ */ jsx38(Key, { className: "h-4 w-4 mr-2" }),
92758
92879
  "Save Configuration"
92759
92880
  ]
92760
92881
  }
@@ -92765,7 +92886,7 @@ function ConfigurationDialog({
92765
92886
  }
92766
92887
 
92767
92888
  // src/client/components/chat/ChatHeader.tsx
92768
- import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
92889
+ import { Fragment as Fragment8, jsx as jsx39, jsxs as jsxs21 } from "react/jsx-runtime";
92769
92890
  function ChatHeader({
92770
92891
  llmConfig,
92771
92892
  hasMessages,
@@ -92789,16 +92910,16 @@ function ChatHeader({
92789
92910
  }) {
92790
92911
  return /* @__PURE__ */ jsxs21("div", { className: "flex flex-row absolute top-0 right-0 z-10 w-full items-center justify-between p-1 pt-2 gap-2", children: [
92791
92912
  /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2 rounded-full p-2 px-2 sm:px-4 bg-background/40 backdrop-blur-sm", children: [
92792
- !hideTitle && /* @__PURE__ */ jsx38("h3", { className: "text-xl sm:text-3xl font-base", children: "Chat" }),
92793
- llmConfig && !hideConfigButton && /* @__PURE__ */ jsx38(Fragment8, { children: /* @__PURE__ */ jsxs21(Tooltip, { children: [
92794
- /* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
92913
+ !hideTitle && /* @__PURE__ */ jsx39("h3", { className: "text-xl sm:text-3xl font-base", children: "Chat" }),
92914
+ llmConfig && !hideConfigButton && /* @__PURE__ */ jsx39(Fragment8, { children: /* @__PURE__ */ jsxs21(Tooltip, { children: [
92915
+ /* @__PURE__ */ jsx39(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
92795
92916
  Badge,
92796
92917
  {
92797
92918
  variant: "secondary",
92798
92919
  className: "hidden sm:flex ml-2 pl-1 font-mono text-[11px] cursor-pointer hover:bg-secondary/80 transition-colors",
92799
92920
  onClick: () => onConfigDialogOpenChange(true),
92800
92921
  children: [
92801
- /* @__PURE__ */ jsx38(
92922
+ /* @__PURE__ */ jsx39(
92802
92923
  "img",
92803
92924
  {
92804
92925
  src: `https://inspector-cdn.mcp-use.com/providers/${llmConfig.provider}.png`,
@@ -92812,19 +92933,19 @@ function ChatHeader({
92812
92933
  ]
92813
92934
  }
92814
92935
  ) }),
92815
- /* @__PURE__ */ jsx38(TooltipContent, { children: /* @__PURE__ */ jsx38("p", { children: "Change API Key" }) })
92936
+ /* @__PURE__ */ jsx39(TooltipContent, { children: /* @__PURE__ */ jsx39("p", { children: "Change API Key" }) })
92816
92937
  ] }) })
92817
92938
  ] }),
92818
92939
  /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2 pr-2 sm:pr-3 pt-0 sm:pt-2 shrink-0", children: [
92819
92940
  llmConfig && !hideConfigButton && /* @__PURE__ */ jsxs21(Tooltip, { children: [
92820
- /* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx38(
92941
+ /* @__PURE__ */ jsx39(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx39(
92821
92942
  Button,
92822
92943
  {
92823
92944
  variant: "secondary",
92824
92945
  size: "sm",
92825
92946
  className: "p-2 sm:hidden",
92826
92947
  onClick: () => onConfigDialogOpenChange(true),
92827
- children: /* @__PURE__ */ jsx38(
92948
+ children: /* @__PURE__ */ jsx39(
92828
92949
  "img",
92829
92950
  {
92830
92951
  src: `https://inspector-cdn.mcp-use.com/providers/${llmConfig.provider}.png`,
@@ -92834,10 +92955,10 @@ function ChatHeader({
92834
92955
  )
92835
92956
  }
92836
92957
  ) }),
92837
- /* @__PURE__ */ jsx38(TooltipContent, { children: /* @__PURE__ */ jsx38("p", { children: "Change API Key" }) })
92958
+ /* @__PURE__ */ jsx39(TooltipContent, { children: /* @__PURE__ */ jsx39("p", { children: "Change API Key" }) })
92838
92959
  ] }),
92839
92960
  hasMessages && /* @__PURE__ */ jsxs21(Tooltip, { children: [
92840
- /* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
92961
+ /* @__PURE__ */ jsx39(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
92841
92962
  Button,
92842
92963
  {
92843
92964
  variant: clearButtonVariant ?? "default",
@@ -92845,15 +92966,15 @@ function ChatHeader({
92845
92966
  className: `p-2 cursor-pointer ${clearButtonHideShortcut ? "sm:px-3" : "sm:pr-1 sm:pl-3"}`,
92846
92967
  onClick: onClearChat,
92847
92968
  children: [
92848
- !clearButtonHideIcon && /* @__PURE__ */ jsx38(SquarePen, { className: "h-4 w-4 sm:mr-2" }),
92849
- /* @__PURE__ */ jsx38("span", { className: "hidden sm:inline", children: clearButtonLabel ?? "New Chat" }),
92850
- !clearButtonHideShortcut && /* @__PURE__ */ jsx38("span", { className: "hidden sm:inline text-[12px] border text-zinc-300 p-1 rounded-full border-zinc-300 dark:text-zinc-600 dark:border-zinc-500 ml-2", children: "\u2318O" })
92969
+ !clearButtonHideIcon && /* @__PURE__ */ jsx39(SquarePen, { className: "h-4 w-4 sm:mr-2" }),
92970
+ /* @__PURE__ */ jsx39("span", { className: "hidden sm:inline", children: clearButtonLabel ?? "New Chat" }),
92971
+ !clearButtonHideShortcut && /* @__PURE__ */ jsx39("span", { className: "hidden sm:inline text-[12px] border text-zinc-300 p-1 rounded-full border-zinc-300 dark:text-zinc-600 dark:border-zinc-500 ml-2", children: "\u2318O" })
92851
92972
  ]
92852
92973
  }
92853
92974
  ) }),
92854
- /* @__PURE__ */ jsx38(TooltipContent, { children: /* @__PURE__ */ jsx38("p", { children: clearButtonLabel ?? "New Chat" }) })
92975
+ /* @__PURE__ */ jsx39(TooltipContent, { children: /* @__PURE__ */ jsx39("p", { children: clearButtonLabel ?? "New Chat" }) })
92855
92976
  ] }),
92856
- !hideConfigButton && /* @__PURE__ */ jsx38(
92977
+ !hideConfigButton && /* @__PURE__ */ jsx39(
92857
92978
  ConfigurationDialog,
92858
92979
  {
92859
92980
  open: configDialogOpen,
@@ -92952,7 +93073,7 @@ function formatFileSize(bytes) {
92952
93073
  }
92953
93074
 
92954
93075
  // src/client/components/chat/ChatInput.tsx
92955
- import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
93076
+ import { jsx as jsx40, jsxs as jsxs22 } from "react/jsx-runtime";
92956
93077
  function ChatInput({
92957
93078
  inputValue,
92958
93079
  isConnected,
@@ -92983,18 +93104,18 @@ function ChatInput({
92983
93104
  };
92984
93105
  const hasAttachments = attachments.length > 0;
92985
93106
  return /* @__PURE__ */ jsxs22("div", { className: "relative w-full", children: [
92986
- hasAttachments && /* @__PURE__ */ jsx39("div", { className: "absolute top-0 left-0 right-0 z-20 p-3 flex gap-2 flex-wrap", children: attachments.map((attachment, index) => /* @__PURE__ */ jsxs22(
93107
+ hasAttachments && /* @__PURE__ */ jsx40("div", { className: "absolute top-0 left-0 right-0 z-20 p-3 flex gap-2 flex-wrap", children: attachments.map((attachment, index) => /* @__PURE__ */ jsxs22(
92987
93108
  "div",
92988
93109
  {
92989
93110
  className: "relative group bg-zinc-100/90 dark:bg-zinc-900/90 backdrop-blur-sm rounded-lg p-2 flex items-center gap-2 border border-zinc-200 dark:border-zinc-700",
92990
93111
  "data-testid": `chat-attachment-${index}`,
92991
93112
  children: [
92992
- /* @__PURE__ */ jsx39(ImageIcon, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
93113
+ /* @__PURE__ */ jsx40(ImageIcon, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
92993
93114
  /* @__PURE__ */ jsxs22("div", { className: "flex flex-col min-w-0", children: [
92994
- /* @__PURE__ */ jsx39("span", { className: "text-xs font-medium truncate max-w-[150px]", children: attachment.name || "Image" }),
92995
- attachment.size && /* @__PURE__ */ jsx39("span", { className: "text-xs text-muted-foreground", children: formatFileSize(attachment.size) })
93115
+ /* @__PURE__ */ jsx40("span", { className: "text-xs font-medium truncate max-w-[150px]", children: attachment.name || "Image" }),
93116
+ attachment.size && /* @__PURE__ */ jsx40("span", { className: "text-xs text-muted-foreground", children: formatFileSize(attachment.size) })
92996
93117
  ] }),
92997
- /* @__PURE__ */ jsx39(
93118
+ /* @__PURE__ */ jsx40(
92998
93119
  "button",
92999
93120
  {
93000
93121
  onClick: () => onAttachmentRemove(index),
@@ -93002,14 +93123,14 @@ function ChatInput({
93002
93123
  title: "Remove attachment",
93003
93124
  type: "button",
93004
93125
  "data-testid": `chat-attachment-remove-${index}`,
93005
- children: /* @__PURE__ */ jsx39(X5, { className: "h-3 w-3" })
93126
+ children: /* @__PURE__ */ jsx40(X5, { className: "h-3 w-3" })
93006
93127
  }
93007
93128
  )
93008
93129
  ]
93009
93130
  },
93010
93131
  index
93011
93132
  )) }),
93012
- /* @__PURE__ */ jsx39(
93133
+ /* @__PURE__ */ jsx40(
93013
93134
  Textarea,
93014
93135
  {
93015
93136
  ref: textareaRef,
@@ -93028,7 +93149,7 @@ function ChatInput({
93028
93149
  "data-testid": "chat-input"
93029
93150
  }
93030
93151
  ),
93031
- /* @__PURE__ */ jsx39(
93152
+ /* @__PURE__ */ jsx40(
93032
93153
  "input",
93033
93154
  {
93034
93155
  ref: fileInputRef,
@@ -93040,7 +93161,7 @@ function ChatInput({
93040
93161
  "aria-label": "Upload images"
93041
93162
  }
93042
93163
  ),
93043
- showAttachButton && /* @__PURE__ */ jsx39("div", { className: "absolute left-0 p-3 bottom-0", children: /* @__PURE__ */ jsx39(
93164
+ showAttachButton && /* @__PURE__ */ jsx40("div", { className: "absolute left-0 p-3 bottom-0", children: /* @__PURE__ */ jsx40(
93044
93165
  Button,
93045
93166
  {
93046
93167
  variant: "ghost",
@@ -93051,7 +93172,7 @@ function ChatInput({
93051
93172
  title: "Attach images",
93052
93173
  type: "button",
93053
93174
  "data-testid": "chat-attach-button",
93054
- children: /* @__PURE__ */ jsx39(Paperclip, { className: "h-4 w-4" })
93175
+ children: /* @__PURE__ */ jsx40(Paperclip, { className: "h-4 w-4" })
93055
93176
  }
93056
93177
  ) })
93057
93178
  ] });
@@ -93059,12 +93180,12 @@ function ChatInput({
93059
93180
 
93060
93181
  // src/client/components/chat/PromptResultsList.tsx
93061
93182
  import { MessageSquare, X as X6 } from "lucide-react";
93062
- import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
93183
+ import { jsx as jsx41, jsxs as jsxs23 } from "react/jsx-runtime";
93063
93184
  function PromptResultsList({
93064
93185
  promptResults,
93065
93186
  onDeletePromptResult
93066
93187
  }) {
93067
- return /* @__PURE__ */ jsx40(
93188
+ return /* @__PURE__ */ jsx41(
93068
93189
  "div",
93069
93190
  {
93070
93191
  className: "absolute top-4 left-4 right-4 flex gap-2 overflow-x-auto z-20 flex-nowrap",
@@ -93078,9 +93199,9 @@ function PromptResultsList({
93078
93199
  type: "button",
93079
93200
  className: "flex items-center gap-2 bg-zinc-200 text-zinc-700 dark:text-zinc-300 text-[10px] px-1.5 py-0.5 dark:bg-zinc-700 rounded-lg border border-zinc-200 dark:border-zinc-300 font-medium hover:bg-zinc-300 dark:hover:bg-zinc-600",
93080
93201
  children: [
93081
- /* @__PURE__ */ jsx40(MessageSquare, { className: "h-3.5 w-3.5 shrink-0" }),
93082
- /* @__PURE__ */ jsx40("span", { className: "truncate", title: promptName, children: promptName }),
93083
- /* @__PURE__ */ jsx40(
93202
+ /* @__PURE__ */ jsx41(MessageSquare, { className: "h-3.5 w-3.5 shrink-0" }),
93203
+ /* @__PURE__ */ jsx41("span", { className: "truncate", title: promptName, children: promptName }),
93204
+ /* @__PURE__ */ jsx41(
93084
93205
  "span",
93085
93206
  {
93086
93207
  className: "ml-1 h-4 w-4 rounded-full bg-zinc-400 dark:bg-zinc-600 hover:bg-zinc-500 dark:hover:bg-zinc-500 flex items-center justify-center cursor-pointer shrink-0 transition-colors",
@@ -93091,7 +93212,7 @@ function PromptResultsList({
93091
93212
  title: "Remove prompt",
93092
93213
  role: "button",
93093
93214
  tabIndex: 0,
93094
- children: /* @__PURE__ */ jsx40(X6, { className: "h-2.5 w-2.5 text-white" })
93215
+ children: /* @__PURE__ */ jsx41(X6, { className: "h-2.5 w-2.5 text-white" })
93095
93216
  }
93096
93217
  )
93097
93218
  ]
@@ -93105,7 +93226,7 @@ function PromptResultsList({
93105
93226
  // src/client/components/chat/PromptsDropdown.tsx
93106
93227
  import { MessageSquare as MessageSquare2 } from "lucide-react";
93107
93228
  import { useEffect as useEffect15 } from "react";
93108
- import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
93229
+ import { jsx as jsx42, jsxs as jsxs24 } from "react/jsx-runtime";
93109
93230
  function PromptsDropdown({
93110
93231
  isOpen,
93111
93232
  focusedIndex,
@@ -93122,15 +93243,15 @@ function PromptsDropdown({
93122
93243
  }
93123
93244
  }
93124
93245
  }, [focusedIndex]);
93125
- return /* @__PURE__ */ jsx41(
93246
+ return /* @__PURE__ */ jsx42(
93126
93247
  "div",
93127
93248
  {
93128
93249
  className: "absolute bottom-full left-0 right-0 max-w-3xl w-full max-h-[300px] overflow-y-auto rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 shadow-lg z-30 flex flex-col gap-2 mb-1",
93129
93250
  "data-testid": "chat-prompts-dropdown",
93130
93251
  children: /* @__PURE__ */ jsxs24("div", { className: "p-2", children: [
93131
- /* @__PURE__ */ jsx41("div", { className: "text-xs font-medium text-zinc-900 dark:text-zinc-100 mb-2", children: "Prompts" }),
93252
+ /* @__PURE__ */ jsx42("div", { className: "text-xs font-medium text-zinc-900 dark:text-zinc-100 mb-2", children: "Prompts" }),
93132
93253
  prompts.map((prompt, index) => /* @__PURE__ */ jsxs24(Tooltip, { children: [
93133
- /* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs24(
93254
+ /* @__PURE__ */ jsx42(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs24(
93134
93255
  Button,
93135
93256
  {
93136
93257
  id: `prompt-${index}`,
@@ -93143,15 +93264,15 @@ function PromptsDropdown({
93143
93264
  onClick: () => onPromptSelect(prompt),
93144
93265
  "data-testid": `chat-prompt-option-${index}`,
93145
93266
  children: [
93146
- /* @__PURE__ */ jsx41("div", { className: "flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx41(MessageSquare2, { className: "h-4 w-4 text-zinc-600 dark:text-zinc-400" }) }),
93147
- /* @__PURE__ */ jsx41("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsxs24("div", { className: "text-sm font-medium text-zinc-900 dark:text-zinc-100 flex items-center gap-2", children: [
93267
+ /* @__PURE__ */ jsx42("div", { className: "flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx42(MessageSquare2, { className: "h-4 w-4 text-zinc-600 dark:text-zinc-400" }) }),
93268
+ /* @__PURE__ */ jsx42("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsxs24("div", { className: "text-sm font-medium text-zinc-900 dark:text-zinc-100 flex items-center gap-2", children: [
93148
93269
  prompt.name,
93149
- selectedPrompt?.name === prompt.name && /* @__PURE__ */ jsx41(Spinner, { className: "size-3 text-zinc-600 dark:text-zinc-400" })
93270
+ selectedPrompt?.name === prompt.name && /* @__PURE__ */ jsx42(Spinner, { className: "size-3 text-zinc-600 dark:text-zinc-400" })
93150
93271
  ] }) })
93151
93272
  ]
93152
93273
  }
93153
93274
  ) }),
93154
- /* @__PURE__ */ jsx41(TooltipContent, { children: prompt.description })
93275
+ /* @__PURE__ */ jsx42(TooltipContent, { children: prompt.description })
93155
93276
  ] }, index))
93156
93277
  ] })
93157
93278
  }
@@ -93159,7 +93280,7 @@ function PromptsDropdown({
93159
93280
  }
93160
93281
 
93161
93282
  // src/client/components/chat/ChatInputArea.tsx
93162
- import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
93283
+ import { jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
93163
93284
  function ChatInputArea({
93164
93285
  inputValue,
93165
93286
  isConnected,
@@ -93185,8 +93306,8 @@ function ChatInputArea({
93185
93306
  onFollowupSelect
93186
93307
  }) {
93187
93308
  const canSend = inputValue.trim() || promptResults.length > 0 || attachments.length > 0;
93188
- return /* @__PURE__ */ jsx42("div", { className: "w-full flex flex-col justify-center items-center p-2 sm:p-4 sm:pt-0 text-foreground", children: /* @__PURE__ */ jsxs25("div", { className: "relative w-full max-w-3xl backdrop-blur-xl", children: [
93189
- followups.length > 0 && /* @__PURE__ */ jsx42("div", { className: "mb-2 flex flex-wrap gap-2", children: followups.map((followup) => /* @__PURE__ */ jsx42(
93309
+ return /* @__PURE__ */ jsx43("div", { className: "w-full flex flex-col justify-center items-center p-2 sm:p-4 sm:pt-0 text-foreground", children: /* @__PURE__ */ jsxs25("div", { className: "relative w-full max-w-3xl backdrop-blur-xl", children: [
93310
+ followups.length > 0 && /* @__PURE__ */ jsx43("div", { className: "mb-2 flex flex-wrap gap-2", children: followups.map((followup) => /* @__PURE__ */ jsx43(
93190
93311
  Button,
93191
93312
  {
93192
93313
  type: "button",
@@ -93199,7 +93320,7 @@ function ChatInputArea({
93199
93320
  },
93200
93321
  followup
93201
93322
  )) }),
93202
- /* @__PURE__ */ jsx42(
93323
+ /* @__PURE__ */ jsx43(
93203
93324
  PromptsDropdown,
93204
93325
  {
93205
93326
  isOpen: promptsDropdownOpen,
@@ -93209,14 +93330,14 @@ function ChatInputArea({
93209
93330
  onPromptSelect
93210
93331
  }
93211
93332
  ),
93212
- /* @__PURE__ */ jsx42(
93333
+ /* @__PURE__ */ jsx43(
93213
93334
  PromptResultsList,
93214
93335
  {
93215
93336
  promptResults,
93216
93337
  onDeletePromptResult
93217
93338
  }
93218
93339
  ),
93219
- /* @__PURE__ */ jsx42(
93340
+ /* @__PURE__ */ jsx43(
93220
93341
  ChatInput,
93221
93342
  {
93222
93343
  inputValue,
@@ -93237,16 +93358,16 @@ function ChatInputArea({
93237
93358
  onAttachmentRemove
93238
93359
  }
93239
93360
  ),
93240
- /* @__PURE__ */ jsx42("div", { className: "absolute right-0 p-3 bottom-0 flex items-center gap-2", children: isLoading ? /* @__PURE__ */ jsx42(
93361
+ /* @__PURE__ */ jsx43("div", { className: "absolute right-0 p-3 bottom-0 flex items-center gap-2", children: isLoading ? /* @__PURE__ */ jsx43(
93241
93362
  Button,
93242
93363
  {
93243
93364
  className: "min-w-none h-auto w-auto aspect-square rounded-full items-center justify-center flex",
93244
93365
  title: "Stop streaming",
93245
93366
  type: "button",
93246
93367
  onClick: onStopStreaming,
93247
- children: /* @__PURE__ */ jsx42(Square, { className: "h-4 w-4" })
93368
+ children: /* @__PURE__ */ jsx43(Square, { className: "h-4 w-4" })
93248
93369
  }
93249
- ) : /* @__PURE__ */ jsx42(
93370
+ ) : /* @__PURE__ */ jsx43(
93250
93371
  Button,
93251
93372
  {
93252
93373
  disabled: !canSend || !isConnected || isLoading,
@@ -93255,14 +93376,14 @@ function ChatInputArea({
93255
93376
  type: "button",
93256
93377
  onClick: onSendMessage,
93257
93378
  "data-testid": "chat-send-button",
93258
- children: /* @__PURE__ */ jsx42(Send, { className: "h-4 w-4" })
93379
+ children: /* @__PURE__ */ jsx43(Send, { className: "h-4 w-4" })
93259
93380
  }
93260
93381
  ) })
93261
93382
  ] }) });
93262
93383
  }
93263
93384
 
93264
93385
  // src/client/components/ui/aurora-background.tsx
93265
- import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
93386
+ import { jsx as jsx44, jsxs as jsxs26 } from "react/jsx-runtime";
93266
93387
  function AuroraBackground({
93267
93388
  className,
93268
93389
  children,
@@ -93278,7 +93399,7 @@ function AuroraBackground({
93278
93399
  ),
93279
93400
  ...props,
93280
93401
  children: [
93281
- /* @__PURE__ */ jsx43(
93402
+ /* @__PURE__ */ jsx44(
93282
93403
  "div",
93283
93404
  {
93284
93405
  className: "absolute inset-0 overflow-hidden dark:opacity-50 dark:contrast-200",
@@ -93295,7 +93416,7 @@ function AuroraBackground({
93295
93416
  "--white": "#fff",
93296
93417
  "--transparent": "transparent"
93297
93418
  },
93298
- children: /* @__PURE__ */ jsx43(
93419
+ children: /* @__PURE__ */ jsx44(
93299
93420
  "div",
93300
93421
  {
93301
93422
  className: cn(
@@ -93313,9 +93434,9 @@ function AuroraBackground({
93313
93434
  }
93314
93435
 
93315
93436
  // src/client/components/ui/blur-fade.tsx
93316
- import { AnimatePresence, motion, useInView } from "motion/react";
93437
+ import { AnimatePresence, motion as motion2, useInView } from "motion/react";
93317
93438
  import { useRef as useRef11 } from "react";
93318
- import { jsx as jsx44 } from "react/jsx-runtime";
93439
+ import { jsx as jsx45 } from "react/jsx-runtime";
93319
93440
  function BlurFade({
93320
93441
  children,
93321
93442
  className,
@@ -93345,8 +93466,8 @@ function BlurFade({
93345
93466
  }
93346
93467
  };
93347
93468
  const combinedVariants = variant || defaultVariants;
93348
- return /* @__PURE__ */ jsx44(AnimatePresence, { children: /* @__PURE__ */ jsx44(
93349
- motion.div,
93469
+ return /* @__PURE__ */ jsx45(AnimatePresence, { children: /* @__PURE__ */ jsx45(
93470
+ motion2.div,
93350
93471
  {
93351
93472
  ref,
93352
93473
  initial: "hidden",
@@ -93367,7 +93488,7 @@ function BlurFade({
93367
93488
 
93368
93489
  // src/client/components/chat/ChatLandingForm.tsx
93369
93490
  import { ArrowUp, Loader2 as Loader23 } from "lucide-react";
93370
- import { jsx as jsx45, jsxs as jsxs27 } from "react/jsx-runtime";
93491
+ import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
93371
93492
  function ChatLandingForm({
93372
93493
  mcpServerUrl,
93373
93494
  inputValue,
@@ -93397,9 +93518,9 @@ function ChatLandingForm({
93397
93518
  onQuickQuestionSelect
93398
93519
  }) {
93399
93520
  const canSend = inputValue.trim() || promptResults.length > 0 || attachments.length > 0;
93400
- return /* @__PURE__ */ jsx45(AuroraBackground, { children: /* @__PURE__ */ jsxs27(BlurFade, { className: "w-full max-w-4xl mx-auto px-2 sm:px-4", children: [
93521
+ return /* @__PURE__ */ jsx46(AuroraBackground, { children: /* @__PURE__ */ jsxs27(BlurFade, { className: "w-full max-w-4xl mx-auto px-2 sm:px-4", children: [
93401
93522
  /* @__PURE__ */ jsxs27("div", { className: "text-center mb-6 sm:mb-8", children: [
93402
- /* @__PURE__ */ jsx45(
93523
+ /* @__PURE__ */ jsx46(
93403
93524
  "h1",
93404
93525
  {
93405
93526
  className: "text-2xl sm:text-4xl font-light mb-2 dark:text-white",
@@ -93407,11 +93528,11 @@ function ChatLandingForm({
93407
93528
  children: "Chat with MCP Server"
93408
93529
  }
93409
93530
  ),
93410
- !hideServerUrl && /* @__PURE__ */ jsx45("p", { className: "text-xs sm:text-sm text-zinc-600 dark:text-zinc-400 font-light break-all px-2", children: mcpServerUrl })
93531
+ !hideServerUrl && /* @__PURE__ */ jsx46("p", { className: "text-xs sm:text-sm text-zinc-600 dark:text-zinc-400 font-light break-all px-2", children: mcpServerUrl })
93411
93532
  ] }),
93412
93533
  /* @__PURE__ */ jsxs27("form", { onSubmit, className: "space-y-6", children: [
93413
- /* @__PURE__ */ jsx45("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs27("div", { className: "relative w-full max-w-2xl", children: [
93414
- /* @__PURE__ */ jsx45(
93534
+ /* @__PURE__ */ jsx46("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs27("div", { className: "relative w-full max-w-2xl", children: [
93535
+ /* @__PURE__ */ jsx46(
93415
93536
  PromptsDropdown,
93416
93537
  {
93417
93538
  prompts,
@@ -93421,14 +93542,14 @@ function ChatLandingForm({
93421
93542
  onPromptSelect
93422
93543
  }
93423
93544
  ),
93424
- /* @__PURE__ */ jsx45(
93545
+ /* @__PURE__ */ jsx46(
93425
93546
  PromptResultsList,
93426
93547
  {
93427
93548
  promptResults,
93428
93549
  onDeletePromptResult
93429
93550
  }
93430
93551
  ),
93431
- /* @__PURE__ */ jsx45(
93552
+ /* @__PURE__ */ jsx46(
93432
93553
  ChatInput,
93433
93554
  {
93434
93555
  inputValue,
@@ -93449,7 +93570,7 @@ function ChatLandingForm({
93449
93570
  onAttachmentRemove
93450
93571
  }
93451
93572
  ),
93452
- /* @__PURE__ */ jsx45("div", { className: "absolute right-0 p-3 bottom-0", children: /* @__PURE__ */ jsx45(
93573
+ /* @__PURE__ */ jsx46("div", { className: "absolute right-0 p-3 bottom-0", children: /* @__PURE__ */ jsx46(
93453
93574
  Button,
93454
93575
  {
93455
93576
  type: "submit",
@@ -93461,11 +93582,11 @@ function ChatLandingForm({
93461
93582
  ),
93462
93583
  disabled: isLoading || !canSend || !isConnected,
93463
93584
  "data-testid": "chat-send-button",
93464
- children: isLoading ? /* @__PURE__ */ jsx45(Loader23, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx45(ArrowUp, { className: "h-4 w-4" })
93585
+ children: isLoading ? /* @__PURE__ */ jsx46(Loader23, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx46(ArrowUp, { className: "h-4 w-4" })
93465
93586
  }
93466
93587
  ) })
93467
93588
  ] }) }),
93468
- quickQuestions.length > 0 && /* @__PURE__ */ jsx45("div", { className: "flex flex-wrap items-center justify-center gap-2 px-2", children: quickQuestions.map((question) => /* @__PURE__ */ jsx45(
93589
+ quickQuestions.length > 0 && /* @__PURE__ */ jsx46("div", { className: "flex flex-wrap items-center justify-center gap-2 px-2", children: quickQuestions.map((question) => /* @__PURE__ */ jsx46(
93469
93590
  Button,
93470
93591
  {
93471
93592
  type: "button",
@@ -93478,15 +93599,15 @@ function ChatLandingForm({
93478
93599
  },
93479
93600
  question
93480
93601
  )) }),
93481
- llmConfig && !hideModelBadge && /* @__PURE__ */ jsx45("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ jsxs27(Tooltip, { children: [
93482
- /* @__PURE__ */ jsx45(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs27(
93602
+ llmConfig && !hideModelBadge && /* @__PURE__ */ jsx46("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ jsxs27(Tooltip, { children: [
93603
+ /* @__PURE__ */ jsx46(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs27(
93483
93604
  Badge,
93484
93605
  {
93485
93606
  variant: "secondary",
93486
93607
  className: "pl-1 font-mono text-[11px] cursor-pointer hover:bg-secondary/80 transition-colors",
93487
93608
  onClick: () => onConfigDialogOpenChange(true),
93488
93609
  children: [
93489
- /* @__PURE__ */ jsx45(
93610
+ /* @__PURE__ */ jsx46(
93490
93611
  "img",
93491
93612
  {
93492
93613
  src: `https://inspector-cdn.mcp-use.com/providers/${llmConfig.provider}.png`,
@@ -93500,7 +93621,7 @@ function ChatLandingForm({
93500
93621
  ]
93501
93622
  }
93502
93623
  ) }),
93503
- /* @__PURE__ */ jsx45(TooltipContent, { children: /* @__PURE__ */ jsx45("p", { children: "Change API Key" }) })
93624
+ /* @__PURE__ */ jsx46(TooltipContent, { children: /* @__PURE__ */ jsx46("p", { children: "Change API Key" }) })
93504
93625
  ] }) })
93505
93626
  ] })
93506
93627
  ] }) });
@@ -93508,21 +93629,21 @@ function ChatLandingForm({
93508
93629
 
93509
93630
  // src/client/components/chat/ConfigureEmptyState.tsx
93510
93631
  import { Key as Key2, Settings as Settings2 } from "lucide-react";
93511
- import { jsx as jsx46, jsxs as jsxs28 } from "react/jsx-runtime";
93632
+ import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
93512
93633
  function ConfigureEmptyState({
93513
93634
  onConfigureClick
93514
93635
  }) {
93515
93636
  return /* @__PURE__ */ jsxs28("div", { className: "flex flex-col items-center justify-center h-full text-center", children: [
93516
- /* @__PURE__ */ jsx46(Key2, { className: "h-12 w-12 text-muted-foreground mb-4" }),
93517
- /* @__PURE__ */ jsx46("h3", { className: "text-lg font-semibold mb-2", children: "Configure Your LLM Provider" }),
93518
- /* @__PURE__ */ jsx46("p", { className: "text-sm text-muted-foreground mb-4 max-w-md", children: "To start chatting with the MCP server, you need to configure your LLM provider and API key. Your credentials are stored locally and used only for this chat." }),
93637
+ /* @__PURE__ */ jsx47(Key2, { className: "h-12 w-12 text-muted-foreground mb-4" }),
93638
+ /* @__PURE__ */ jsx47("h3", { className: "text-lg font-semibold mb-2", children: "Configure Your LLM Provider" }),
93639
+ /* @__PURE__ */ jsx47("p", { className: "text-sm text-muted-foreground mb-4 max-w-md", children: "To start chatting with the MCP server, you need to configure your LLM provider and API key. Your credentials are stored locally and used only for this chat." }),
93519
93640
  /* @__PURE__ */ jsxs28(
93520
93641
  Button,
93521
93642
  {
93522
93643
  onClick: onConfigureClick,
93523
93644
  "data-testid": "chat-configure-api-key-button",
93524
93645
  children: [
93525
- /* @__PURE__ */ jsx46(Settings2, { className: "h-4 w-4 mr-2" }),
93646
+ /* @__PURE__ */ jsx47(Settings2, { className: "h-4 w-4 mr-2" }),
93526
93647
  "Configure API Key"
93527
93648
  ]
93528
93649
  }
@@ -93530,49 +93651,6 @@ function ConfigureEmptyState({
93530
93651
  ] });
93531
93652
  }
93532
93653
 
93533
- // src/client/components/ui/text-shimmer.tsx
93534
- import { motion as motion2 } from "motion/react";
93535
- import { useMemo as useMemo11 } from "react";
93536
- import { jsx as jsx47 } from "react/jsx-runtime";
93537
- function TextShimmer({
93538
- children,
93539
- as: Component = "p",
93540
- className,
93541
- duration = 2,
93542
- spread = 2
93543
- }) {
93544
- const MotionComponent = motion2.create(
93545
- Component
93546
- );
93547
- const dynamicSpread = useMemo11(() => {
93548
- return children.length * spread;
93549
- }, [children, spread]);
93550
- return /* @__PURE__ */ jsx47(
93551
- MotionComponent,
93552
- {
93553
- className: cn(
93554
- "relative inline-block bg-[length:250%_100%,auto] bg-clip-text",
93555
- "text-transparent [--base-color:#a1a1aa] [--base-gradient-color:#000]",
93556
- "[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]",
93557
- "dark:[--base-color:#71717a] dark:[--base-gradient-color:#ffffff] dark:[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))]",
93558
- className
93559
- ),
93560
- initial: { backgroundPosition: "100% center" },
93561
- animate: { backgroundPosition: "0% center" },
93562
- transition: {
93563
- repeat: Infinity,
93564
- duration,
93565
- ease: "linear"
93566
- },
93567
- style: {
93568
- "--spread": `${dynamicSpread}px`,
93569
- backgroundImage: `var(--bg), linear-gradient(var(--base-color), var(--base-color))`
93570
- },
93571
- children
93572
- }
93573
- );
93574
- }
93575
-
93576
93654
  // src/client/components/chat/MessageList.tsx
93577
93655
  import { memo as memo4, useEffect as useEffect16, useRef as useRef12 } from "react";
93578
93656