@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.
- package/dist/cdn/inspector.css +1 -1
- package/dist/cdn/inspector.js +55997 -65008
- package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
- package/dist/client/components/MCPAppsRenderer.d.ts +3 -1
- package/dist/client/components/MCPAppsRenderer.d.ts.map +1 -1
- package/dist/client/components/OpenAIComponentRenderer.d.ts +5 -1
- package/dist/client/components/OpenAIComponentRenderer.d.ts.map +1 -1
- package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
- package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
- package/dist/client/index.js +665 -587
- package/dist/web/assets/{1c-BWzch4JO.js → 1c-CuB6KJny.js} +1 -1
- package/dist/web/assets/{abnf-CT_zhnxW.js → abnf-331NRzq6.js} +1 -1
- package/dist/web/assets/{accesslog-cShhb8zs.js → accesslog-DPZ1SVBF.js} +1 -1
- package/dist/web/assets/{actionscript-Cq_Ed--N.js → actionscript-CuGZR-oV.js} +1 -1
- package/dist/web/assets/{ada-uJsdDpQf.js → ada-DRqvTj3B.js} +1 -1
- package/dist/web/assets/{angelscript-DrPTtC5L.js → angelscript-CP2_ypHm.js} +1 -1
- package/dist/web/assets/{apache-BGLo0lBQ.js → apache-DP5S1Xwo.js} +1 -1
- package/dist/web/assets/{applescript-C2ed31F3.js → applescript-CLh7Bl5g.js} +1 -1
- package/dist/web/assets/{arcade-wPY44wYa.js → arcade-L7ZIK7Vg.js} +1 -1
- package/dist/web/assets/{arduino-Ci84_OQ7.js → arduino-D38C-BRe.js} +1 -1
- package/dist/web/assets/{armasm-BT7fDyyc.js → armasm-BL0z-zkV.js} +1 -1
- package/dist/web/assets/{asciidoc-hcetSBLZ.js → asciidoc-BwOqzYyI.js} +1 -1
- package/dist/web/assets/{aspectj-qP5GW6zg.js → aspectj-CsfF5uHW.js} +1 -1
- package/dist/web/assets/{autohotkey-BRTSaEN9.js → autohotkey-BnfF2slP.js} +1 -1
- package/dist/web/assets/{autoit-1B-H0U7m.js → autoit-BUNufrnh.js} +1 -1
- package/dist/web/assets/{avrasm-D3Ji68Dt.js → avrasm-BUwC6GGa.js} +1 -1
- package/dist/web/assets/{awk-pRLtu3M7.js → awk-BAn6DoRI.js} +1 -1
- package/dist/web/assets/{axapta-CGXwOjn1.js → axapta-C5EQhsWz.js} +1 -1
- package/dist/web/assets/{bash-CL86Bo5U.js → bash-CXJ0QYm_.js} +1 -1
- package/dist/web/assets/{basic-713emR8B.js → basic-8InlTbNb.js} +1 -1
- package/dist/web/assets/{bnf-D5IR6nw6.js → bnf-zpEK5Wju.js} +1 -1
- package/dist/web/assets/{brainfuck-DzHDailX.js → brainfuck-BhgAAx-v.js} +1 -1
- package/dist/web/assets/{c-DvWo53J5.js → c-CDPkc2Ya.js} +1 -1
- package/dist/web/assets/{c-like-XXh9X4pX.js → c-like-Ds21bDLY.js} +1 -1
- package/dist/web/assets/{cal-CGXJawoG.js → cal-DWpElLgG.js} +1 -1
- package/dist/web/assets/{capnproto-B-81vtig.js → capnproto-96me6T8-.js} +1 -1
- package/dist/web/assets/{ceylon-C9jkMJyl.js → ceylon-Eu9VMqL5.js} +1 -1
- package/dist/web/assets/{clean-Bl5mmdRd.js → clean-Bw3NaeUf.js} +1 -1
- package/dist/web/assets/{client-DtN-_gPI.js → client-Dqtz8Ili.js} +3 -3
- package/dist/web/assets/{clojure-BukU2jlg.js → clojure-CcB35oPu.js} +1 -1
- package/dist/web/assets/{clojure-repl-9lcYFe-R.js → clojure-repl-UmCtFENG.js} +1 -1
- package/dist/web/assets/{cmake-D6hq-I__.js → cmake-BNsFX7mM.js} +1 -1
- package/dist/web/assets/{coffeescript-C_J7DXX1.js → coffeescript-BO-bY-7g.js} +1 -1
- package/dist/web/assets/{coq-gXkBAlvJ.js → coq-DxEbCmAp.js} +1 -1
- package/dist/web/assets/{core-LI0wjVSm.js → core-Ca6TmLdX.js} +1 -1
- package/dist/web/assets/{cos-BTplGz5w.js → cos-D7p4YQ1F.js} +1 -1
- package/dist/web/assets/{cpp-CI1760Ho.js → cpp-BfXjKrw-.js} +1 -1
- package/dist/web/assets/{crmsh-DH6-DvgY.js → crmsh-Cu_wHzWI.js} +1 -1
- package/dist/web/assets/{crystal-hjrHp7Yv.js → crystal-B4ffFRgA.js} +1 -1
- package/dist/web/assets/{csharp-CB3yKbly.js → csharp-F3YLadH3.js} +1 -1
- package/dist/web/assets/{csp-B00phXpq.js → csp-BLkoFjJ1.js} +1 -1
- package/dist/web/assets/{css-StInuocU.js → css-CBlOEu5y.js} +1 -1
- package/dist/web/assets/{d-CV5_tWwR.js → d-B8LLg7Ap.js} +1 -1
- package/dist/web/assets/{dart-DrmTIzw4.js → dart-Bg7_Weak.js} +1 -1
- package/dist/web/assets/{delphi-BcB6hhpr.js → delphi-CUFJtF08.js} +1 -1
- package/dist/web/assets/{diff-Pp2W_HQg.js → diff-D6IyExXS.js} +1 -1
- package/dist/web/assets/{display-A5IEINAP-CIXsdDM7.js → display-A5IEINAP-CalMK9h7.js} +2 -2
- package/dist/web/assets/{django-DET02Zuf.js → django-B-UTY01C.js} +1 -1
- package/dist/web/assets/{dns-4f_7PIO9.js → dns-DfGDf7is.js} +1 -1
- package/dist/web/assets/{dockerfile-vEZJ0uxd.js → dockerfile-BYeQ3jyi.js} +1 -1
- package/dist/web/assets/{dos-BixYFWhs.js → dos-B_5-_6xr.js} +1 -1
- package/dist/web/assets/{dsconfig-BnZ9x7Vm.js → dsconfig-uyDAQQAU.js} +1 -1
- package/dist/web/assets/{dts-Bcw323rr.js → dts-D75DwEM4.js} +1 -1
- package/dist/web/assets/{dust-BiiBiKFU.js → dust-JsNLCukW.js} +1 -1
- package/dist/web/assets/{ebnf-I_IglJLf.js → ebnf-BP6c5l4a.js} +1 -1
- package/dist/web/assets/{elixir-BJEHSyvP.js → elixir-CUhtoXbR.js} +1 -1
- package/dist/web/assets/{elm-cM6RkEze.js → elm-CKMhE8ah.js} +1 -1
- package/dist/web/assets/{embeddings-CnYfeC12.js → embeddings-LX6aYruq.js} +1 -1
- package/dist/web/assets/{erb-Nv9XiE06.js → erb-CIx8MUO5.js} +1 -1
- package/dist/web/assets/{erlang-k6hoIbAZ.js → erlang-CkXPsz4M.js} +1 -1
- package/dist/web/assets/{erlang-repl-DV3N7nkq.js → erlang-repl-k7jT--Ou.js} +1 -1
- package/dist/web/assets/{excel-Bxh_DxOW.js → excel-C5SkgBGz.js} +1 -1
- package/dist/web/assets/{fix-g6kXHsfa.js → fix-_4ZjoSTH.js} +1 -1
- package/dist/web/assets/{flix-Cryw522y.js → flix-DnrR-dRx.js} +1 -1
- package/dist/web/assets/{fortran-BD0HhvEj.js → fortran-CD6uDQX4.js} +1 -1
- package/dist/web/assets/{fsharp-vMayoDV0.js → fsharp-DTtzfUsx.js} +1 -1
- package/dist/web/assets/{gams-C1Wn9txH.js → gams-CQk2cq7o.js} +1 -1
- package/dist/web/assets/{gauss-DsKIEzQY.js → gauss-CtDmpxAf.js} +1 -1
- package/dist/web/assets/{gcode-DU2tUCEF.js → gcode-B_EYK0Vg.js} +1 -1
- package/dist/web/assets/{gherkin-DeUH7cEV.js → gherkin-DVcj5Cvn.js} +1 -1
- package/dist/web/assets/{glsl-DYiVBLqm.js → glsl-BoRlfwJN.js} +1 -1
- package/dist/web/assets/{gml-gas72WV-.js → gml-DwXf4s-K.js} +1 -1
- package/dist/web/assets/{go-BcwxmCu3.js → go-jKSz3kk6.js} +1 -1
- package/dist/web/assets/{golo-zePT5_Bc.js → golo-Dz5XOjjS.js} +1 -1
- package/dist/web/assets/{gradle-1GIWcZRP.js → gradle-CG3C4PH5.js} +1 -1
- package/dist/web/assets/{groovy-F95cfGVA.js → groovy-SRcDLXTF.js} +1 -1
- package/dist/web/assets/{haml-Csn-F8TT.js → haml-CJsy3-F-.js} +1 -1
- package/dist/web/assets/{handlebars-CJUa8Oym.js → handlebars-LN8E0NSL.js} +1 -1
- package/dist/web/assets/{haskell-BWMYMGc0.js → haskell-ZP5N77Rb.js} +1 -1
- package/dist/web/assets/{haxe-DShjNAaD.js → haxe-S_8gGOoI.js} +1 -1
- package/dist/web/assets/{hsp-BYg3woMs.js → hsp-KqF2E7-o.js} +1 -1
- package/dist/web/assets/{htmlbars-DESfSS0b.js → htmlbars-Bw_UyB1p.js} +1 -1
- package/dist/web/assets/{http-CmDctLNs.js → http-BI5U1FE3.js} +1 -1
- package/dist/web/assets/{hy-CL-17rgL.js → hy-BAOLWsZC.js} +1 -1
- package/dist/web/assets/index-B53yBrEF.css +1 -0
- package/dist/web/assets/{index-B1hmvbOl.js → index-BJOEo8tI.js} +1 -1
- package/dist/web/assets/{index-IBr5XNeV.js → index-Bmd2u1yJ.js} +1 -1
- package/dist/web/assets/{index-DXXcD1Qg.js → index-ChIi2Veb.js} +1 -1
- package/dist/web/assets/{index-BMhVR8vU.js → index-Cz7z8sOR.js} +1 -1
- package/dist/web/assets/{index-uEj4g89g.js → index-DUSfaXA6.js} +1 -1
- package/dist/web/assets/{index-DEX9beXi.js → index-DtyH_PEF.js} +1 -1
- package/dist/web/assets/index-YcAOTRMN.js +2005 -0
- package/dist/web/assets/{inform7-DV3NXpQ5.js → inform7-DgEbiTHe.js} +1 -1
- package/dist/web/assets/{ini-8iBTslYp.js → ini-VsC63Yhp.js} +1 -1
- package/dist/web/assets/{irpf90-OKqjue6L.js → irpf90-BPXrE0Br.js} +1 -1
- package/dist/web/assets/{isbl-BIO2oFCV.js → isbl-Dz4HkKrY.js} +1 -1
- package/dist/web/assets/{java-BIc--hdi.js → java-C5QDkp3s.js} +1 -1
- package/dist/web/assets/{javascript-B7yKBThj.js → javascript-Qw1A7HIi.js} +1 -1
- package/dist/web/assets/{jboss-cli-DC-_tFfH.js → jboss-cli-DjxxWoe7.js} +1 -1
- package/dist/web/assets/{json-PFyQrwyu.js → json-DwXmVB99.js} +1 -1
- package/dist/web/assets/{julia-Dmc9vUNO.js → julia-_UEF-d-n.js} +1 -1
- package/dist/web/assets/{julia-repl-B-AGoEfG.js → julia-repl-BmGjKqDN.js} +1 -1
- package/dist/web/assets/{kotlin-CSISp0y1.js → kotlin-BGX09JNe.js} +1 -1
- package/dist/web/assets/{langfuse-U2OEF7K7-uZdZcMU4.js → langfuse-U2OEF7K7-oUFfuCA2.js} +24 -24
- package/dist/web/assets/{lasso-uHxA2qvQ.js → lasso-CMKn1wD1.js} +1 -1
- package/dist/web/assets/{latex-Di4WjkOv.js → latex-CSuZLxub.js} +1 -1
- package/dist/web/assets/{ldif-Bvwv1mY0.js → ldif-DtYZcb6_.js} +1 -1
- package/dist/web/assets/{leaf-ScGR4pgd.js → leaf-Dm7kHn1u.js} +1 -1
- package/dist/web/assets/{less-C_yutJld.js → less-BduOo7w1.js} +1 -1
- package/dist/web/assets/{lisp-eMkPYcv6.js → lisp-CTN_y443.js} +1 -1
- package/dist/web/assets/{livecodeserver-B1TcgaLa.js → livecodeserver-Bt_3a5Le.js} +1 -1
- package/dist/web/assets/{livescript-DdG6soNy.js → livescript-fany4WHq.js} +1 -1
- package/dist/web/assets/{llms-DfKXFwBa.js → llms-CaZsx5qn.js} +1 -1
- package/dist/web/assets/{llvm-BmiTBJX_.js → llvm-BPeNPow9.js} +1 -1
- package/dist/web/assets/{lsl-OzzojTdy.js → lsl-CUkRosfV.js} +1 -1
- package/dist/web/assets/{lua-CwCsCmNp.js → lua-BYvWg4jg.js} +1 -1
- package/dist/web/assets/{makefile-BgYLIf-U.js → makefile-oS53Vg0z.js} +1 -1
- package/dist/web/assets/{markdown-fAPd4l7n.js → markdown-D_B0fAXx.js} +1 -1
- package/dist/web/assets/{mathematica-BjKA6SaI.js → mathematica-DKe-IuUK.js} +1 -1
- package/dist/web/assets/{matlab-BPH3IYVZ.js → matlab-D_21Tl-L.js} +1 -1
- package/dist/web/assets/{maxima-CTpKKknl.js → maxima-DUtL1egA.js} +1 -1
- package/dist/web/assets/{mel-Bib6Tv-L.js → mel-LAIz87bj.js} +1 -1
- package/dist/web/assets/{mercury-CALdU6Ge.js → mercury-zYnf0BJA.js} +1 -1
- package/dist/web/assets/{mipsasm-CqdP7SS2.js → mipsasm-By1nFx6c.js} +1 -1
- package/dist/web/assets/{mizar-DEE5bHZf.js → mizar-Bzhf-tV1.js} +1 -1
- package/dist/web/assets/{mojolicious-hZVHxmhq.js → mojolicious-B8QJxbI8.js} +1 -1
- package/dist/web/assets/{monkey-DNdkILnH.js → monkey-Z_CyDrLh.js} +1 -1
- package/dist/web/assets/{moonscript-DgK0T-HS.js → moonscript-CoDseIDC.js} +1 -1
- package/dist/web/assets/{n1ql-CIlKRRs6.js → n1ql-BEBUEhhE.js} +1 -1
- package/dist/web/assets/{nginx-DpOexGSF.js → nginx-BGCHEvnU.js} +1 -1
- package/dist/web/assets/{nim-BCPh1ovx.js → nim-Ctrpw--E.js} +1 -1
- package/dist/web/assets/{nix-B2-gxrbR.js → nix-Caa5UC27.js} +1 -1
- package/dist/web/assets/{node-repl-GjXp6CLP.js → node-repl-sr3s7jQZ.js} +1 -1
- package/dist/web/assets/{nsis-O9G0lH29.js → nsis-CzkCLfi2.js} +1 -1
- package/dist/web/assets/{objectivec-B3b_RACR.js → objectivec-jvD65_0I.js} +1 -1
- package/dist/web/assets/{ocaml-DtfZ5tri.js → ocaml-DhDYdcp2.js} +1 -1
- package/dist/web/assets/{openscad-BejXLlQ2.js → openscad-BqnRwGZd.js} +1 -1
- package/dist/web/assets/{oxygene-DNd9sLzW.js → oxygene-Cd0jRim3.js} +1 -1
- package/dist/web/assets/{parser3-DRtE79m9.js → parser3-BETxqEki.js} +1 -1
- package/dist/web/assets/{perl-Dip9KECA.js → perl-knvs0MzJ.js} +1 -1
- package/dist/web/assets/{pf-lt9Y1lR8.js → pf-DiXaovgm.js} +1 -1
- package/dist/web/assets/{pgsql-BQL9JHoh.js → pgsql-BWEvOXP5.js} +1 -1
- package/dist/web/assets/{php-Bi6324i6.js → php-fyvUpIS6.js} +1 -1
- package/dist/web/assets/{php-template-Dm96hKrh.js → php-template-Bvb-N_hu.js} +1 -1
- package/dist/web/assets/{plaintext-DMCXt4YO.js → plaintext-Dwt8jzyJ.js} +1 -1
- package/dist/web/assets/{pony-Bia0W3TW.js → pony-Cfelzwqf.js} +1 -1
- package/dist/web/assets/{powershell-xoiy_WI4.js → powershell-2b2YR7rM.js} +1 -1
- package/dist/web/assets/{processing-is58fA9K.js → processing-CgyyQkLr.js} +1 -1
- package/dist/web/assets/{profile-BOoDppKU.js → profile-CHSonwOR.js} +1 -1
- package/dist/web/assets/{prolog-BYxlSk9o.js → prolog-CArpL4nb.js} +1 -1
- package/dist/web/assets/{properties-BO1Iq-dJ.js → properties-B7x5j4f3.js} +1 -1
- package/dist/web/assets/{protobuf-Srgh7iT4.js → protobuf-DbZMyS9y.js} +1 -1
- package/dist/web/assets/{puppet-DWSUFkvp.js → puppet-CyK4RmCj.js} +1 -1
- package/dist/web/assets/{purebasic-DxNUDCE4.js → purebasic-Bu9BNLQf.js} +1 -1
- package/dist/web/assets/{python-DovuYhDu.js → python-DpcgEz0v.js} +1 -1
- package/dist/web/assets/{python-repl-B1OBOSTn.js → python-repl-BAoj7DrU.js} +1 -1
- package/dist/web/assets/{q-42rDkXms.js → q-aLpDzBqb.js} +1 -1
- package/dist/web/assets/{qml-CBCHfIu7.js → qml-CF8YT9EP.js} +1 -1
- package/dist/web/assets/{r-CaE923HL.js → r-DJifPsK_.js} +1 -1
- package/dist/web/assets/{reasonml-BYrYCrep.js → reasonml-DYlZCQtf.js} +1 -1
- package/dist/web/assets/{rib-Bhv7NbId.js → rib-BWlooZzU.js} +1 -1
- package/dist/web/assets/{roboconf-BfZ1K6KL.js → roboconf-B3mKPOxb.js} +1 -1
- package/dist/web/assets/{routeros-BXIpVeBP.js → routeros-Ri82AIpo.js} +1 -1
- package/dist/web/assets/{rsl-Bjm5MqAG.js → rsl-YFzXeAfb.js} +1 -1
- package/dist/web/assets/{ruby-CPet6iCi.js → ruby-CjV_PTlL.js} +1 -1
- package/dist/web/assets/{ruleslanguage-DK-1k2MI.js → ruleslanguage-DJCtPhmJ.js} +1 -1
- package/dist/web/assets/{rust-9ntsz2kE.js → rust-T_ZZbr83.js} +1 -1
- package/dist/web/assets/{sas-91qluzca.js → sas-DnThN-QA.js} +1 -1
- package/dist/web/assets/{scala-QAnm6LqO.js → scala-CiCGCGBM.js} +1 -1
- package/dist/web/assets/{scheme-CbCu1C1B.js → scheme-C81ecRNU.js} +1 -1
- package/dist/web/assets/{scilab-CrQkRgM7.js → scilab-yIe92bs8.js} +1 -1
- package/dist/web/assets/{scss-D_KOChRt.js → scss-BGCT6i58.js} +1 -1
- package/dist/web/assets/{shell-TLeode3j.js → shell-CtJaW7qj.js} +1 -1
- package/dist/web/assets/{smali-DLlQwRbQ.js → smali-D9JxR6Ok.js} +1 -1
- package/dist/web/assets/{smalltalk-EAR6TTRw.js → smalltalk-Cc681-eJ.js} +1 -1
- package/dist/web/assets/{sml-N2cejLu1.js → sml-CTRWATz0.js} +1 -1
- package/dist/web/assets/{sqf-C22NGT13.js → sqf-DSWEsa4V.js} +1 -1
- package/dist/web/assets/{sql-CWTNbFDI.js → sql-CDB6g9ay.js} +1 -1
- package/dist/web/assets/{sql_more-CnZjQWQO.js → sql_more-CpMC6pU4.js} +1 -1
- package/dist/web/assets/{stan-BK8Qdckq.js → stan-BHnXBW_m.js} +1 -1
- package/dist/web/assets/{stata-DyqAXFWa.js → stata-84iUAWPp.js} +1 -1
- package/dist/web/assets/{stdio-MPKB6J4F-B0j-te4c.js → stdio-ZJFIZK2F-DAa98oll.js} +1 -1
- package/dist/web/assets/{step21-DHjUfeMe.js → step21-DDfRrzcc.js} +1 -1
- package/dist/web/assets/{stylus-YUPPnLVL.js → stylus-6UGB2DbU.js} +1 -1
- package/dist/web/assets/{subunit-B8m1GQqo.js → subunit-CI6BjWYM.js} +1 -1
- package/dist/web/assets/{swift-DhFAtG6r.js → swift-gZKjqZzX.js} +1 -1
- package/dist/web/assets/{taggerscript-BX_x0Ial.js → taggerscript-4a4rpAZe.js} +1 -1
- package/dist/web/assets/{tap-6j4jJ06c.js → tap-1yGDzo5T.js} +1 -1
- package/dist/web/assets/{tcl-BMqmGvnI.js → tcl-Blqm3M6H.js} +1 -1
- package/dist/web/assets/{thrift-BHwGzm9d.js → thrift-SCSYAnoo.js} +1 -1
- package/dist/web/assets/{tp-Br6ODkD7.js → tp-CJiYvF2Z.js} +1 -1
- package/dist/web/assets/{twig-BUg1tStP.js → twig-CwKcbSAY.js} +1 -1
- package/dist/web/assets/{typescript-DPw_D4qy.js → typescript-Dfq7Dw6S.js} +1 -1
- package/dist/web/assets/{vala-B9ZbKGNt.js → vala-CwjTTkCe.js} +1 -1
- package/dist/web/assets/{vbnet-CUnYo6Nq.js → vbnet-DkyZUDFs.js} +1 -1
- package/dist/web/assets/{vbscript-DqeU3ZVU.js → vbscript-D7mSa0kc.js} +1 -1
- package/dist/web/assets/{vbscript-html-m-WQzabX.js → vbscript-html-4muOpfOP.js} +1 -1
- package/dist/web/assets/{verilog-BUjbit38.js → verilog-CTx73zAb.js} +1 -1
- package/dist/web/assets/{vhdl-DarKCYnW.js → vhdl-bNkZElSZ.js} +1 -1
- package/dist/web/assets/{vim-IIbsNuQT.js → vim-BEHLt-ak.js} +1 -1
- package/dist/web/assets/{x86asm-DfuTazNN.js → x86asm-LPghO6jq.js} +1 -1
- package/dist/web/assets/{xl-BzrAs-xW.js → xl-C1a1l7dp.js} +1 -1
- package/dist/web/assets/{xml-BkJvQlqf.js → xml-DkVcEWrP.js} +1 -1
- package/dist/web/assets/{xquery-B8FbSCV_.js → xquery-BC8Ygt24.js} +1 -1
- package/dist/web/assets/{yaml-5ajRw-Fq.js → yaml-dlNOCKmh.js} +1 -1
- package/dist/web/assets/{zephir-CulEk9fW.js → zephir-Bif85EPV.js} +1 -1
- package/dist/web/index.html +3 -3
- package/package.json +2 -2
- package/dist/web/assets/index-CZUbUtgl.css +0 -1
- package/dist/web/assets/index-DKfT2EtL.js +0 -2044
- package/dist/web/assets/index-Dre4ow2N.js +0 -7
package/dist/client/index.js
CHANGED
|
@@ -6280,7 +6280,7 @@ var init_module = __esm({
|
|
|
6280
6280
|
}
|
|
6281
6281
|
});
|
|
6282
6282
|
|
|
6283
|
-
// ../mcp-use/dist/chunk-
|
|
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
|
|
6447
|
-
"../mcp-use/dist/chunk-
|
|
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.
|
|
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-
|
|
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
|
|
12539
|
-
"../mcp-use/dist/chunk-
|
|
12538
|
+
var init_chunk_PFGLTHGD = __esm({
|
|
12539
|
+
"../mcp-use/dist/chunk-PFGLTHGD.js"() {
|
|
12540
12540
|
"use strict";
|
|
12541
|
-
|
|
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-
|
|
13051
|
+
// ../mcp-use/dist/chunk-JEVNTJLN.js
|
|
13052
13052
|
var _a20, CodeModeConnector;
|
|
13053
|
-
var
|
|
13054
|
-
"../mcp-use/dist/chunk-
|
|
13053
|
+
var init_chunk_JEVNTJLN = __esm({
|
|
13054
|
+
"../mcp-use/dist/chunk-JEVNTJLN.js"() {
|
|
13055
13055
|
"use strict";
|
|
13056
|
-
|
|
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-
|
|
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
|
|
13355
|
-
"../mcp-use/dist/chunk-
|
|
13354
|
+
var init_chunk_DGKH46XW = __esm({
|
|
13355
|
+
"../mcp-use/dist/chunk-DGKH46XW.js"() {
|
|
13356
13356
|
"use strict";
|
|
13357
13357
|
init_chunk_GKPKUKD6();
|
|
13358
|
-
|
|
13359
|
-
|
|
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-
|
|
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
|
|
34158
|
-
"../mcp-use/dist/chunk-
|
|
34157
|
+
var init_chunk_7FCA6TQV = __esm({
|
|
34158
|
+
"../mcp-use/dist/chunk-7FCA6TQV.js"() {
|
|
34159
34159
|
"use strict";
|
|
34160
34160
|
init_chunk_GKPKUKD6();
|
|
34161
|
-
|
|
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-
|
|
34305
|
-
var
|
|
34306
|
-
__export(
|
|
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
|
|
34310
|
-
"../mcp-use/dist/stdio-
|
|
34309
|
+
var init_stdio_ZJFIZK2F = __esm({
|
|
34310
|
+
"../mcp-use/dist/stdio-ZJFIZK2F.js"() {
|
|
34311
34311
|
"use strict";
|
|
34312
|
-
|
|
34312
|
+
init_chunk_7FCA6TQV();
|
|
34313
34313
|
init_chunk_GKPKUKD6();
|
|
34314
|
-
|
|
34315
|
-
|
|
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-
|
|
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
|
|
34428
|
-
"../mcp-use/dist/chunk-
|
|
34427
|
+
var init_chunk_X7GVPLW2 = __esm({
|
|
34428
|
+
"../mcp-use/dist/chunk-X7GVPLW2.js"() {
|
|
34429
34429
|
"use strict";
|
|
34430
|
-
|
|
34430
|
+
init_chunk_JEVNTJLN();
|
|
34431
34431
|
init_chunk_RPN2XO5I();
|
|
34432
|
-
|
|
34433
|
-
|
|
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(() => (
|
|
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
|
-
|
|
35537
|
-
|
|
35536
|
+
init_chunk_X7GVPLW2();
|
|
35537
|
+
init_chunk_JEVNTJLN();
|
|
35538
35538
|
init_chunk_RPN2XO5I();
|
|
35539
|
-
|
|
35539
|
+
init_chunk_DGKH46XW();
|
|
35540
35540
|
init_chunk_GKPKUKD6();
|
|
35541
|
-
|
|
35542
|
-
|
|
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-
|
|
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
|
|
80369
|
-
"../mcp-use/dist/chunk-
|
|
80368
|
+
var init_chunk_WNXYB26L = __esm({
|
|
80369
|
+
"../mcp-use/dist/chunk-WNXYB26L.js"() {
|
|
80370
80370
|
"use strict";
|
|
80371
80371
|
init_chunk_3RU35UU4();
|
|
80372
|
-
|
|
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-
|
|
82721
|
+
// ../mcp-use/dist/chunk-QIRMWWEB.js
|
|
82722
82722
|
var _a44, BrowserMCPClient;
|
|
82723
|
-
var
|
|
82724
|
-
"../mcp-use/dist/chunk-
|
|
82723
|
+
var init_chunk_QIRMWWEB = __esm({
|
|
82724
|
+
"../mcp-use/dist/chunk-QIRMWWEB.js"() {
|
|
82725
82725
|
"use strict";
|
|
82726
|
-
|
|
82727
|
-
|
|
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
|
-
|
|
83632
|
+
init_chunk_WNXYB26L();
|
|
83633
83633
|
init_chunk_UJPHRNQP();
|
|
83634
83634
|
init_chunk_3RU35UU4();
|
|
83635
83635
|
init_chunk_RPN2XO5I();
|
|
83636
|
-
|
|
83637
|
-
|
|
83636
|
+
init_chunk_QIRMWWEB();
|
|
83637
|
+
init_chunk_DGKH46XW();
|
|
83638
83638
|
init_chunk_GKPKUKD6();
|
|
83639
|
-
|
|
83640
|
-
|
|
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 {
|
|
85205
|
-
|
|
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
|
|
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 =
|
|
87789
|
-
const agentPrompt = cspViolations.length >
|
|
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(
|
|
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(
|
|
88268
|
-
|
|
88269
|
-
|
|
88270
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
89725
|
-
/* @__PURE__ */
|
|
89726
|
-
|
|
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
|
-
|
|
89729
|
-
|
|
89730
|
-
|
|
89731
|
-
|
|
89732
|
-
|
|
89733
|
-
|
|
89734
|
-
|
|
89735
|
-
|
|
89736
|
-
|
|
89737
|
-
|
|
89738
|
-
|
|
89739
|
-
|
|
89740
|
-
|
|
89741
|
-
|
|
89742
|
-
|
|
89743
|
-
|
|
89744
|
-
|
|
89745
|
-
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
-
|
|
90764
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
90908
|
+
children: /* @__PURE__ */ jsx32(X4, { className: "w-4 h-4 text-foreground" })
|
|
90819
90909
|
}
|
|
90820
90910
|
),
|
|
90821
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
90916
|
-
/* @__PURE__ */
|
|
90917
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
91085
|
+
return /* @__PURE__ */ jsx34("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "No content" });
|
|
90994
91086
|
}
|
|
90995
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
91108
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
91151
|
-
/* @__PURE__ */
|
|
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__ */
|
|
91160
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
91313
|
+
const memoizedArgs = useMemo9(
|
|
91222
91314
|
() => result?.args,
|
|
91223
91315
|
[result?.timestamp, selectedIndex]
|
|
91224
91316
|
);
|
|
91225
|
-
const memoizedResult =
|
|
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 =
|
|
91332
|
+
const widgetProtocol = useMemo9(
|
|
91241
91333
|
() => result ? detectWidgetProtocol(result.toolMeta, result.result) : null,
|
|
91242
91334
|
[result]
|
|
91243
91335
|
);
|
|
91244
|
-
const supportsBothProtocols =
|
|
91336
|
+
const supportsBothProtocols = useMemo9(
|
|
91245
91337
|
() => result ? hasBothProtocols(result.toolMeta) : false,
|
|
91246
91338
|
[result]
|
|
91247
91339
|
);
|
|
91248
|
-
const activeProtocol =
|
|
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 =
|
|
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 =
|
|
91354
|
+
const hasMcpAppsResource = useMemo9(
|
|
91263
91355
|
() => (activeProtocol === "mcp-apps" || supportsBothProtocols) && !!mcpAppsResourceUri,
|
|
91264
91356
|
[activeProtocol, supportsBothProtocols, mcpAppsResourceUri]
|
|
91265
91357
|
);
|
|
91266
|
-
const openaiOutputTemplate =
|
|
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 =
|
|
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 =
|
|
91276
|
-
const mcpUIResources =
|
|
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
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
91338
|
-
/* @__PURE__ */ jsxs18(
|
|
91339
|
-
|
|
91340
|
-
|
|
91341
|
-
|
|
91342
|
-
|
|
91343
|
-
|
|
91344
|
-
|
|
91345
|
-
/* @__PURE__ */
|
|
91346
|
-
|
|
91347
|
-
|
|
91348
|
-
|
|
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__ */
|
|
91358
|
-
index > 0 && /* @__PURE__ */
|
|
91359
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
91371
|
-
|
|
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
|
-
|
|
91487
|
-
|
|
91488
|
-
|
|
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__ */
|
|
91499
|
-
|
|
91468
|
+
),
|
|
91469
|
+
/* @__PURE__ */ jsx34("span", { className: "text-xs text-zinc-400", children: "|" }),
|
|
91470
|
+
/* @__PURE__ */ jsx34(
|
|
91471
|
+
"button",
|
|
91500
91472
|
{
|
|
91501
|
-
|
|
91502
|
-
|
|
91503
|
-
|
|
91504
|
-
|
|
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
|
-
|
|
91521
|
-
|
|
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
|
-
|
|
91529
|
-
|
|
91530
|
-
|
|
91531
|
-
|
|
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
|
-
)
|
|
91534
|
-
|
|
91535
|
-
|
|
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:
|
|
91540
|
-
|
|
91541
|
-
|
|
91542
|
-
|
|
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
|
-
|
|
91554
|
-
|
|
91508
|
+
value: selectedIndex.toString(),
|
|
91509
|
+
onValueChange: (value) => setSelectedIndex(parseInt(value)),
|
|
91555
91510
|
children: [
|
|
91556
|
-
|
|
91557
|
-
"
|
|
91558
|
-
{
|
|
91559
|
-
|
|
91560
|
-
|
|
91561
|
-
|
|
91562
|
-
|
|
91563
|
-
|
|
91564
|
-
|
|
91565
|
-
|
|
91566
|
-
|
|
91567
|
-
|
|
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
|
-
|
|
91587
|
-
|
|
91588
|
-
|
|
91589
|
-
|
|
91590
|
-
|
|
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
|
-
|
|
91595
|
-
|
|
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
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
91653
|
-
/* @__PURE__ */
|
|
91654
|
-
/* @__PURE__ */
|
|
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 =
|
|
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 =
|
|
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 =
|
|
91691
|
-
const widgetProtocol =
|
|
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 =
|
|
91806
|
+
const supportsBothProtocols = useMemo10(
|
|
91696
91807
|
() => hasBothProtocols(toolMeta),
|
|
91697
91808
|
[toolMetaJson]
|
|
91698
91809
|
);
|
|
91699
|
-
const activeProtocol =
|
|
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 =
|
|
91820
|
+
const isMcpAppsTool = useMemo10(
|
|
91710
91821
|
() => activeProtocol === "mcp-apps",
|
|
91711
91822
|
[activeProtocol]
|
|
91712
91823
|
);
|
|
91713
|
-
const isAppsSdkTool =
|
|
91824
|
+
const isAppsSdkTool = useMemo10(
|
|
91714
91825
|
() => activeProtocol === "chatgpt-app",
|
|
91715
91826
|
[activeProtocol]
|
|
91716
91827
|
);
|
|
91717
|
-
const hasAppsSdkComponent =
|
|
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 =
|
|
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 =
|
|
91733
|
-
const memoizedResult =
|
|
91734
|
-
const resourceUri =
|
|
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: "
|
|
91779
|
-
activeProtocol === "mcp-apps" && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
91952
|
+
/* @__PURE__ */ jsx36(ModelContextBadge, { widgetId: toolCallId })
|
|
91834
91953
|
] });
|
|
91835
91954
|
}
|
|
91836
91955
|
if ((isAppsSdkTool || hasAppsSdkComponent) && resourceUri && serverId && readResource) {
|
|
91837
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 =
|
|
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
|
|
92398
|
-
import { jsx as
|
|
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 =
|
|
92536
|
+
var Badge = React8.forwardRef(({ className, variant, asChild = false, ...props }, ref) => {
|
|
92416
92537
|
const Comp = asChild ? Slot : "span";
|
|
92417
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
92593
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
92725
|
+
/* @__PURE__ */ jsx38(SelectTrigger, { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx38(SelectValue, {}) }),
|
|
92605
92726
|
/* @__PURE__ */ jsxs20(SelectContent, { children: [
|
|
92606
|
-
/* @__PURE__ */
|
|
92607
|
-
/* @__PURE__ */
|
|
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__ */
|
|
92736
|
+
/* @__PURE__ */ jsx38("span", { children: "OpenAI" })
|
|
92616
92737
|
] }) }),
|
|
92617
|
-
/* @__PURE__ */
|
|
92618
|
-
/* @__PURE__ */
|
|
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__ */
|
|
92747
|
+
/* @__PURE__ */ jsx38("span", { children: "Anthropic" })
|
|
92627
92748
|
] }) }),
|
|
92628
|
-
/* @__PURE__ */
|
|
92629
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
92766
|
+
/* @__PURE__ */ jsx38(Label2, { children: "API Key" }),
|
|
92646
92767
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
92647
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
92676
|
-
/* @__PURE__ */
|
|
92677
|
-
] }) : modelError ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
92815
|
+
/* @__PURE__ */ jsx38(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
92695
92816
|
]
|
|
92696
92817
|
}
|
|
92697
92818
|
) }),
|
|
92698
|
-
/* @__PURE__ */
|
|
92699
|
-
/* @__PURE__ */
|
|
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__ */
|
|
92708
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
92793
|
-
llmConfig && !hideConfigButton && /* @__PURE__ */
|
|
92794
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
92958
|
+
/* @__PURE__ */ jsx39(TooltipContent, { children: /* @__PURE__ */ jsx39("p", { children: "Change API Key" }) })
|
|
92838
92959
|
] }),
|
|
92839
92960
|
hasMessages && /* @__PURE__ */ jsxs21(Tooltip, { children: [
|
|
92840
|
-
/* @__PURE__ */
|
|
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__ */
|
|
92849
|
-
/* @__PURE__ */
|
|
92850
|
-
!clearButtonHideShortcut && /* @__PURE__ */
|
|
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__ */
|
|
92975
|
+
/* @__PURE__ */ jsx39(TooltipContent, { children: /* @__PURE__ */ jsx39("p", { children: clearButtonLabel ?? "New Chat" }) })
|
|
92855
92976
|
] }),
|
|
92856
|
-
!hideConfigButton && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
92995
|
-
attachment.size && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
93082
|
-
/* @__PURE__ */
|
|
93083
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
93147
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
93189
|
-
followups.length > 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
93333
|
+
/* @__PURE__ */ jsx43(
|
|
93213
93334
|
PromptResultsList,
|
|
93214
93335
|
{
|
|
93215
93336
|
promptResults,
|
|
93216
93337
|
onDeletePromptResult
|
|
93217
93338
|
}
|
|
93218
93339
|
),
|
|
93219
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
93368
|
+
children: /* @__PURE__ */ jsx43(Square, { className: "h-4 w-4" })
|
|
93248
93369
|
}
|
|
93249
|
-
) : /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
93349
|
-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
93414
|
-
/* @__PURE__ */
|
|
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__ */
|
|
93545
|
+
/* @__PURE__ */ jsx46(
|
|
93425
93546
|
PromptResultsList,
|
|
93426
93547
|
{
|
|
93427
93548
|
promptResults,
|
|
93428
93549
|
onDeletePromptResult
|
|
93429
93550
|
}
|
|
93430
93551
|
),
|
|
93431
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
93482
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
93517
|
-
/* @__PURE__ */
|
|
93518
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|