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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cdn/{ChatTab-DtUGK07C.js → ChatTab-C-Ysv6Zf.js} +3 -3
  2. package/dist/cdn/{MarkdownRenderer-bX1BrKgI.js → MarkdownRenderer-CK_6n3T9.js} +1 -1
  3. package/dist/cdn/{PromptsTab-BlXDcau3.js → PromptsTab-DSGYL32k.js} +1 -1
  4. package/dist/cdn/{ResourcesTab-D45_JojP.js → ResourcesTab-d3wxN7xC.js} +2 -2
  5. package/dist/cdn/{SamplingTab-r7tImM6L.js → SamplingTab-DETdWNJk.js} +1 -1
  6. package/dist/cdn/{ToolsTab-DOAO8HnS.js → ToolsTab-BMcnfEWg.js} +2 -2
  7. package/dist/cdn/inspector.css +1 -1
  8. package/dist/cdn/inspector.js +2 -2
  9. package/dist/cdn/{telemetry-TwPKZlFf.js → telemetry-DjQn_Xm9.js} +1 -1
  10. package/dist/cdn/{useConfig-leHVjdjl.js → useConfig-B_adtnP1.js} +1 -1
  11. package/dist/cli.js +61 -2
  12. package/dist/client/index.js +1 -1
  13. package/dist/server/cdn-shell.d.ts.map +1 -1
  14. package/dist/server/cdn-shell.js +2 -2
  15. package/dist/server/{chunk-5GVQGIAX.js → chunk-BD3ROXCC.js} +1 -1
  16. package/dist/server/{chunk-VFVFLXKP.js → chunk-BPXKTFQ5.js} +1 -1
  17. package/dist/server/{chunk-UZZDBVKF.js → chunk-XTVIGRTB.js} +61 -2
  18. package/dist/server/cli.js +2 -2
  19. package/dist/server/index.js +3 -3
  20. package/dist/server/middleware.js +3 -3
  21. package/dist/server/version.js +1 -1
  22. package/dist/web/assets/{ChatTab-B6ubLbeA.js → ChatTab-DxD-KLW_.js} +1 -1
  23. package/dist/web/assets/{ConnectionSettingsTab-Cb2eDgEu.js → ConnectionSettingsTab-pO6p0U0f.js} +1 -1
  24. package/dist/web/assets/{ElicitationTab-CbnCrmu9.js → ElicitationTab-o5_z6gqe.js} +1 -1
  25. package/dist/web/assets/{MCPAppsDebugControls-sRglMhat.js → MCPAppsDebugControls-CZW1uZdH.js} +1 -1
  26. package/dist/web/assets/{ManufactOAuthCallback-D4uYGigW.js → ManufactOAuthCallback-BnWhf5bW.js} +1 -1
  27. package/dist/web/assets/{MarkdownRenderer-Cwxp9fLj.js → MarkdownRenderer-gUUHRIm1.js} +1 -1
  28. package/dist/web/assets/{McpAppsViewPanel-jQYFoZNX.js → McpAppsViewPanel-CDJDb4t-.js} +1 -1
  29. package/dist/web/assets/{NotificationsTab-DuSm762_.js → NotificationsTab-CkJ5E_sR.js} +1 -1
  30. package/dist/web/assets/{OAuthCallback-VLHlUe2c.js → OAuthCallback-Dv_mFcua.js} +1 -1
  31. package/dist/web/assets/{PromptsTab-DK6XZxR8.js → PromptsTab-CLwWFf6d.js} +1 -1
  32. package/dist/web/assets/{ResourcesTab-CUE4MAtJ.js → ResourcesTab-B8cnuq-m.js} +1 -1
  33. package/dist/web/assets/{SamplingTab-BYNkVCTu.js → SamplingTab-BjYHYRHX.js} +1 -1
  34. package/dist/web/assets/{ServerMetadataTab-DWjNFMbq.js → ServerMetadataTab-CPlclbb7.js} +1 -1
  35. package/dist/web/assets/{ToolsTab-BisWWY2p.js → ToolsTab-BSSwvp4Q.js} +2 -2
  36. package/dist/web/assets/{ViewPreview-COrmPpRr.js → ViewPreview-C_LJdgt9.js} +1 -1
  37. package/dist/web/assets/{checkbox-B6dtF73d.js → checkbox-BuuDhnpk.js} +1 -1
  38. package/dist/web/assets/{dist-9Oy7e0v8.js → dist-C39gcmyH.js} +3 -3
  39. package/dist/web/assets/{index-BMaSsizY.js → index-CyvvaDNR.js} +2 -2
  40. package/dist/web/assets/index-bCIH1Sdx.css +1 -0
  41. package/dist/web/assets/{shared-CFs9CZfB.js → shared-Chk1rURG.js} +1 -1
  42. package/dist/web/assets/{tabs-subtle-D2XkWhLL.js → tabs-subtle-CK4nucyB.js} +1 -1
  43. package/dist/web/assets/{useConfig-B6tXvJOb.js → useConfig-CgQbKjVT.js} +1 -1
  44. package/dist/web/assets/{useViewHostProps-DZqOwiAm.js → useViewHostProps-DFI7Ywo7.js} +1 -1
  45. package/dist/web/index.html +3 -3
  46. package/package.json +4 -4
  47. package/dist/web/assets/index-D7TVTIt9.css +0 -1
@@ -1 +1 @@
1
- import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{Dt as r,St as i,ct as a,st as o,vt as s}from"./index-BMaSsizY.js";import{t as c}from"./useViewHostProps-DZqOwiAm.js";var l=e(t(),1),u=n(),d=`preview-default`;function f(e){if(!e)return{};try{let t=atob(e),n=JSON.parse(t);if(n&&typeof n==`object`)return n}catch{}return{}}function p(e,t){let n=`ui://widget/${t}`,r=e.find(e=>e.uri.startsWith(`${n}.`)&&e.uri.endsWith(`.html`));return r?r.uri:e.find(e=>e.name===t)?.uri}function m(){let e=globalThis.__mcpUsePreviewBundle;if(!e||typeof e!=`object`)return;let t=e;if(typeof t.resourceUri==`string`)return t}function h(){(0,l.useEffect)(()=>{let e=document.documentElement,t=document.body,n=e.style.margin,r=t.style.margin,i=t.style.overflow;return e.style.margin=`0`,t.style.margin=`0`,t.style.overflow=`hidden`,()=>{e.style.margin=n,t.style.margin=r,t.style.overflow=i}},[])}function g(e,t){(0,l.useEffect)(()=>{let n=()=>{document.body.dataset.viewError=`runtime_error`};return e&&!t&&(document.body.dataset.viewError=`invalid_payload`),window.addEventListener(`error`,n),window.addEventListener(`unhandledrejection`,n),()=>{window.removeEventListener(`error`,n),window.removeEventListener(`unhandledrejection`,n),delete document.body.dataset.viewError}},[e,t])}function _(e){(0,l.useEffect)(()=>{if(!e)return;let t=!1;return(async()=>{try{await document.fonts.ready}catch{}t||(await new Promise(e=>requestAnimationFrame(()=>e(void 0))),await new Promise(e=>requestAnimationFrame(()=>e(void 0))),!t&&document.body.setAttribute(`data-view-ready`,`true`))})(),()=>{t=!0,document.body.removeAttribute(`data-view-ready`)}},[e])}function v(e,t){(0,l.useEffect)(()=>{if(!e)return;let n=!1,r,i,a=e=>{n||(e&&(document.body.dataset.viewX=String(Math.round(e.left)),document.body.dataset.viewY=String(Math.round(e.top)),document.body.dataset.viewWidth=String(Math.round(e.width)),document.body.dataset.viewHeight=String(Math.round(e.height))),document.body.setAttribute(`data-view-ready`,`true`))};return(async()=>{try{await document.fonts.ready}catch{}if(n||(await new Promise(e=>requestAnimationFrame(()=>e(void 0))),await new Promise(e=>requestAnimationFrame(()=>e(void 0))),n))return;let e=t.current?.querySelector(`iframe`);if(!e){a(null);return}let o=()=>{r&&clearTimeout(r),r=setTimeout(()=>{n||(i?.disconnect(),a(e.getBoundingClientRect()))},250)};i=new ResizeObserver(o),i.observe(e),o()})(),()=>{n=!0,r&&clearTimeout(r),i?.disconnect(),document.body.removeAttribute(`data-view-ready`),delete document.body.dataset.viewX,delete document.body.dataset.viewY,delete document.body.dataset.viewWidth,delete document.body.dataset.viewHeight}},[e,t])}function y({view:e,bundle:t,widthOverride:n}){let[r,a]=(0,l.useState)(!1),o=(0,l.useRef)(null);h(),v(r,o);let s=(0,l.useMemo)(()=>async e=>{if(e===t.resourceUri)return t.resourceContents;throw Error(`Resource ${e} not in screenshot bundle`)},[t]);return(0,u.jsx)(`div`,{ref:o,style:{width:`100vw`,height:`100vh`},children:(0,u.jsx)(i,{viewId:(0,l.useMemo)(()=>`preview-bundle-${e}-${Date.now().toString(36)}`,[e]),toolName:e,toolInput:t.toolInput,toolOutput:t.toolOutput,displayMode:`inline`,inlineMaxWidth:n,chromeless:!0,onReady:()=>a(!0),source:{kind:`live`,connection:{callTool:async()=>{throw Error(`Preview bundle mode has no server connection`)},readResource:s},resourceUri:t.resourceUri},cspMode:`permissive`,hostInfo:{name:`mcp-use-inspector`,version:`11.0.0`},mockOpenAiFileApis:!0})})}function b({view:e}){let[t]=a(),n=(0,l.useMemo)(()=>f(t.get(`props`)),[t]),o=(0,l.useMemo)(()=>t.get(`server`)||`${window.location.origin}${s()||`/`}`,[t]),m=(0,l.useMemo)(()=>{let e=t.get(`headers`);if(e)try{let t=JSON.parse(atob(e));if(t&&typeof t==`object`)return t}catch{}},[t]),{servers:g,addServer:v,storageLoaded:y}=r(),b=g.find(e=>e.id===d);(0,l.useEffect)(()=>{y&&v(d,{url:o,displayName:`Preview`,protocolNegotiation:`auto`,...m?{headers:m}:{}})},[y,o,m,v]);let x=b?.state===`ready`,S=b?.state===`failed`,C=(0,l.useMemo)(()=>{if(x)return p(b.resources,e)},[x,b?.resources,e]),w=(0,l.useMemo)(()=>`preview-${e}-${Date.now().toString(36)}`,[e]),T=(0,l.useMemo)(()=>async e=>{if(!b?.readResource)throw Error(`Server not ready`);return b.readResource(e)},[b]),[E,D]=(0,l.useState)(!1);_(E),h();let O=c({serverId:d,viewId:w,resourceUri:C??``,toolName:e,toolInput:n.toolInput,toolOutput:n.toolOutput,readResource:T,displayMode:`fullscreen`,chromeless:!0,onReady:()=>D(!0)});return S?(0,u.jsxs)(`div`,{style:{padding:16,fontFamily:`monospace`,color:`#b00`},children:[`Failed to connect to MCP server at `,o,`.`]}):!x||!C?x&&!C?(0,u.jsxs)(`div`,{style:{padding:16,fontFamily:`monospace`,color:`#b00`},children:[`View "`,e,`" not found on `,o,`.`]}):(0,u.jsx)(`div`,{style:{width:`100vw`,height:`100vh`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontFamily:`monospace`,color:`var(--muted-foreground, #888)`},children:`Loading…`}):(0,u.jsx)(`div`,{style:{width:`100vw`,height:`100vh`},children:O&&C?(0,u.jsx)(i,{viewId:w,toolName:e,toolInput:n.toolInput,toolOutput:n.toolOutput,displayMode:`fullscreen`,chromeless:!0,...O}):null})}function x(){let e=o(),[t]=a(),n=e.view??``,r=(0,l.useMemo)(()=>m(),[]),i=t.get(`protocol`)===`1`;g(i,r!==void 0);let s=(0,l.useMemo)(()=>{let e=t.get(`width`);if(!e)return;let n=parseInt(e,10);return Number.isFinite(n)&&n>0?n:void 0},[t]);return r?(0,u.jsx)(y,{view:n,bundle:r,widthOverride:s}):i?null:(0,u.jsx)(b,{view:n})}export{x as ViewPreview};
1
+ import{s as e,t}from"./react-CU_d2d5K.js";import{n}from"./createLucideIcon-BEHeJH0M.js";import{Dt as r,St as i,ct as a,st as o,vt as s}from"./index-CyvvaDNR.js";import{t as c}from"./useViewHostProps-DFI7Ywo7.js";var l=e(t(),1),u=n(),d=`preview-default`;function f(e){if(!e)return{};try{let t=atob(e),n=JSON.parse(t);if(n&&typeof n==`object`)return n}catch{}return{}}function p(e,t){let n=`ui://widget/${t}`,r=e.find(e=>e.uri.startsWith(`${n}.`)&&e.uri.endsWith(`.html`));return r?r.uri:e.find(e=>e.name===t)?.uri}function m(){let e=globalThis.__mcpUsePreviewBundle;if(!e||typeof e!=`object`)return;let t=e;if(typeof t.resourceUri==`string`)return t}function h(){(0,l.useEffect)(()=>{let e=document.documentElement,t=document.body,n=e.style.margin,r=t.style.margin,i=t.style.overflow;return e.style.margin=`0`,t.style.margin=`0`,t.style.overflow=`hidden`,()=>{e.style.margin=n,t.style.margin=r,t.style.overflow=i}},[])}function g(e,t){(0,l.useEffect)(()=>{let n=()=>{document.body.dataset.viewError=`runtime_error`};return e&&!t&&(document.body.dataset.viewError=`invalid_payload`),window.addEventListener(`error`,n),window.addEventListener(`unhandledrejection`,n),()=>{window.removeEventListener(`error`,n),window.removeEventListener(`unhandledrejection`,n),delete document.body.dataset.viewError}},[e,t])}function _(e){(0,l.useEffect)(()=>{if(!e)return;let t=!1;return(async()=>{try{await document.fonts.ready}catch{}t||(await new Promise(e=>requestAnimationFrame(()=>e(void 0))),await new Promise(e=>requestAnimationFrame(()=>e(void 0))),!t&&document.body.setAttribute(`data-view-ready`,`true`))})(),()=>{t=!0,document.body.removeAttribute(`data-view-ready`)}},[e])}function v(e,t){(0,l.useEffect)(()=>{if(!e)return;let n=!1,r,i,a=e=>{n||(e&&(document.body.dataset.viewX=String(Math.round(e.left)),document.body.dataset.viewY=String(Math.round(e.top)),document.body.dataset.viewWidth=String(Math.round(e.width)),document.body.dataset.viewHeight=String(Math.round(e.height))),document.body.setAttribute(`data-view-ready`,`true`))};return(async()=>{try{await document.fonts.ready}catch{}if(n||(await new Promise(e=>requestAnimationFrame(()=>e(void 0))),await new Promise(e=>requestAnimationFrame(()=>e(void 0))),n))return;let e=t.current?.querySelector(`iframe`);if(!e){a(null);return}let o=()=>{r&&clearTimeout(r),r=setTimeout(()=>{n||(i?.disconnect(),a(e.getBoundingClientRect()))},250)};i=new ResizeObserver(o),i.observe(e),o()})(),()=>{n=!0,r&&clearTimeout(r),i?.disconnect(),document.body.removeAttribute(`data-view-ready`),delete document.body.dataset.viewX,delete document.body.dataset.viewY,delete document.body.dataset.viewWidth,delete document.body.dataset.viewHeight}},[e,t])}function y({view:e,bundle:t,widthOverride:n}){let[r,a]=(0,l.useState)(!1),o=(0,l.useRef)(null);h(),v(r,o);let s=(0,l.useMemo)(()=>async e=>{if(e===t.resourceUri)return t.resourceContents;throw Error(`Resource ${e} not in screenshot bundle`)},[t]);return(0,u.jsx)(`div`,{ref:o,style:{width:`100vw`,height:`100vh`},children:(0,u.jsx)(i,{viewId:(0,l.useMemo)(()=>`preview-bundle-${e}-${Date.now().toString(36)}`,[e]),toolName:e,toolInput:t.toolInput,toolOutput:t.toolOutput,displayMode:`inline`,inlineMaxWidth:n,chromeless:!0,onReady:()=>a(!0),source:{kind:`live`,connection:{callTool:async()=>{throw Error(`Preview bundle mode has no server connection`)},readResource:s},resourceUri:t.resourceUri},cspMode:`permissive`,hostInfo:{name:`mcp-use-inspector`,version:`11.0.0`},mockOpenAiFileApis:!0})})}function b({view:e}){let[t]=a(),n=(0,l.useMemo)(()=>f(t.get(`props`)),[t]),o=(0,l.useMemo)(()=>t.get(`server`)||`${window.location.origin}${s()||`/`}`,[t]),m=(0,l.useMemo)(()=>{let e=t.get(`headers`);if(e)try{let t=JSON.parse(atob(e));if(t&&typeof t==`object`)return t}catch{}},[t]),{servers:g,addServer:v,storageLoaded:y}=r(),b=g.find(e=>e.id===d);(0,l.useEffect)(()=>{y&&v(d,{url:o,displayName:`Preview`,protocolNegotiation:`auto`,...m?{headers:m}:{}})},[y,o,m,v]);let x=b?.state===`ready`,S=b?.state===`failed`,C=(0,l.useMemo)(()=>{if(x)return p(b.resources,e)},[x,b?.resources,e]),w=(0,l.useMemo)(()=>`preview-${e}-${Date.now().toString(36)}`,[e]),T=(0,l.useMemo)(()=>async e=>{if(!b?.readResource)throw Error(`Server not ready`);return b.readResource(e)},[b]),[E,D]=(0,l.useState)(!1);_(E),h();let O=c({serverId:d,viewId:w,resourceUri:C??``,toolName:e,toolInput:n.toolInput,toolOutput:n.toolOutput,readResource:T,displayMode:`fullscreen`,chromeless:!0,onReady:()=>D(!0)});return S?(0,u.jsxs)(`div`,{style:{padding:16,fontFamily:`monospace`,color:`#b00`},children:[`Failed to connect to MCP server at `,o,`.`]}):!x||!C?x&&!C?(0,u.jsxs)(`div`,{style:{padding:16,fontFamily:`monospace`,color:`#b00`},children:[`View "`,e,`" not found on `,o,`.`]}):(0,u.jsx)(`div`,{style:{width:`100vw`,height:`100vh`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontFamily:`monospace`,color:`var(--muted-foreground, #888)`},children:`Loading…`}):(0,u.jsx)(`div`,{style:{width:`100vw`,height:`100vh`},children:O&&C?(0,u.jsx)(i,{viewId:w,toolName:e,toolInput:n.toolInput,toolOutput:n.toolOutput,displayMode:`fullscreen`,chromeless:!0,...O}):null})}function x(){let e=o(),[t]=a(),n=e.view??``,r=(0,l.useMemo)(()=>m(),[]),i=t.get(`protocol`)===`1`;g(i,r!==void 0);let s=(0,l.useMemo)(()=>{let e=t.get(`width`);if(!e)return;let n=parseInt(e,10);return Number.isFinite(n)&&n>0?n:void 0},[t]);return r?(0,u.jsx)(y,{view:n,bundle:r,widthOverride:s}):i?null:(0,u.jsx)(b,{view:n})}export{x as ViewPreview};
@@ -1 +1 @@
1
- import{n as e}from"./createLucideIcon-BEHeJH0M.js";import{H as t}from"./button-C8Xa2k4x.js";import{Sn as n,g as r,h as i}from"./index-BMaSsizY.js";var a=e();function o({className:e,...o}){return(0,a.jsx)(r,{"data-slot":`checkbox`,className:t(`peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary`,e),...o,children:(0,a.jsx)(i,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none [&>svg]:size-3.5`,children:(0,a.jsx)(n,{})})})}export{o as t};
1
+ import{n as e}from"./createLucideIcon-BEHeJH0M.js";import{H as t}from"./button-C8Xa2k4x.js";import{Sn as n,g as r,h as i}from"./index-CyvvaDNR.js";var a=e();function o({className:e,...o}){return(0,a.jsx)(r,{"data-slot":`checkbox`,className:t(`peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary`,e),...o,children:(0,a.jsx)(i,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none [&>svg]:size-3.5`,children:(0,a.jsx)(n,{})})})}export{o as t};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BMaSsizY.js","assets/react-CU_d2d5K.js","assets/button-C8Xa2k4x.js","assets/createLucideIcon-BEHeJH0M.js","assets/FormContext-sV-yByKz.js","assets/input-C0OQCUZy.js","assets/select-D6jzbLJn.js","assets/AnimatePresence-FfDQQNFJ.js","assets/label-CI7JWQOo.js","assets/index-D7TVTIt9.css"])))=>i.map(i=>d[i]);
2
- import{At as e,Nt as t,jt as n}from"./index-BMaSsizY.js";var r=class{disallowedTools;connectorToolMap=new Map;constructor(e){this.disallowedTools=e??[]}static async createTools(t,n){let r=new this(n);(!t.activeSessions||Object.keys(t.activeSessions).length===0)&&(e.debug(`No active sessions found, creating new ones...`),await t.createAllSessions());let i=t.getAllActiveSessions(),a=Object.values(i).map(e=>e.connector);return r.createToolsFromConnectors(a)}async loadToolsForConnector(t){if(this.connectorToolMap.has(t)){let n=this.connectorToolMap.get(t);return e.debug(`Returning ${n.length} existing tools for connector`),n}let n=[];if(!await this.ensureConnectorInitialized(t))return[];for(let e of t.tools){let r=this.convertTool(e,t);r&&n.push(r)}return this.connectorToolMap.set(t,n),e.debug(`Loaded ${n.length} new tools for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`),n}async createToolsFromConnectors(t){let n=[];for(let e of t){let t=await this.loadToolsForConnector(e);n.push(...t)}return e.debug(`Available tools: ${n.length}`),n}async loadResourcesForConnector(t){let n=[];if(!await this.ensureConnectorInitialized(t))return[];try{let r=(await t.listAllResources())?.resources||[];if(this.convertResource)for(let e of r){let r=this.convertResource(e,t);r&&n.push(r)}e.debug(`Loaded ${n.length} new resources for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`)}catch(t){e.warn(`Error loading resources for connector: ${t}`)}return n}async loadPromptsForConnector(t){let n=[];if(!await this.ensureConnectorInitialized(t))return[];try{let r=(await t.listPrompts())?.prompts||[];if(this.convertPrompt)for(let e of r){let r=this.convertPrompt(e,t);r&&n.push(r)}e.debug(`Loaded ${n.length} new prompts for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`)}catch(t){e.warn(`Error loading prompts for connector: ${t}`)}return n}async createResourcesFromConnectors(t){let n=[];for(let e of t){let t=await this.loadResourcesForConnector(e);n.push(...t)}return e.debug(`Available resources: ${n.length}`),n}async createPromptsFromConnectors(t){let n=[];for(let e of t){let t=await this.loadPromptsForConnector(e);n.push(...t)}return e.debug(`Available prompts: ${n.length}`),n}checkConnectorInitialized(e){return!!(e.tools&&e.tools.length)}async ensureConnectorInitialized(t){if(!this.checkConnectorInitialized(t)){e.debug(`Connector doesn't have tools, initializing it`);try{return await t.initialize(),!0}catch(t){return e.error(`Error initializing connector: ${t}`),!1}}return!0}};function i(e){return e.replace(/[^A-Za-z0-9_]+/g,`_`).toLowerCase().replace(/^_+|_+$/g,``)}var a=class extends r{usedToolNames=new Set;handlers=new Map;constructor(e=[]){super(e)}async createToolsFromConnectors(e){return this.usedToolNames.clear(),this.handlers.clear(),super.createToolsFromConnectors(e)}createCallTool(){let t=this.handlers;return async(n,r)=>{let i=t.get(n);if(!i)throw Error(`Unknown tool: ${n}`);try{if(i.kind===`tool`)return await i.connector.callTool(i.mcpName,r);if(i.kind===`resource`){let e=i.resourceUri??i.mcpName;return await i.connector.readResource(e)}return await i.connector.getPrompt(i.mcpName,r)}catch(t){throw e.error(`Error executing native MCP tool ${n}: ${t}`),t}}}toProviderTools(e){return e.map(({name:e,description:t,inputSchema:n})=>({name:e,description:t,inputSchema:n}))}reserveName(e,t){if(!this.usedToolNames.has(e))return this.usedToolNames.add(e),e;if(t){let n=`${t}_${e}`;if(!this.usedToolNames.has(n))return this.usedToolNames.add(n),n;let r=2;for(;this.usedToolNames.has(`${n}_${r}`);)r++;let i=`${n}_${r}`;return this.usedToolNames.add(i),i}let n=2;for(;this.usedToolNames.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return this.usedToolNames.add(r),r}register(e,t){return this.handlers.set(e.name,t),e}convertTool(e,t){if(this.disallowedTools.includes(e.name))return null;let n=this.reserveName(e.name??`tool`),r={name:n,dispatchKey:n,description:e.description??``,inputSchema:e.inputSchema??{type:`object`,properties:{}}};return this.register(r,{connector:t,kind:`tool`,mcpName:e.name})}convertResource(e,t){let n=i(e.name||e.uri)||`resource`,r=this.reserveName(n,`resource`),a={name:r,dispatchKey:r,description:e.description||`Return the content of the resource located at URI ${e.uri}.`,inputSchema:{type:`object`,properties:{}}};return this.register(a,{connector:t,kind:`resource`,mcpName:e.uri,resourceUri:e.uri})}convertPrompt(e,t){let n={},r=[];if(e.arguments?.length)for(let t of e.arguments)n[t.name]={type:`string`,description:t.description},t.required!==!1&&r.push(t.name);let a=i(e.name||`prompt`)||`prompt`,o=this.reserveName(a,`prompt`),s={name:o,dispatchKey:o,description:e.description||``,inputSchema:{type:`object`,properties:n,...r.length>0?{required:r}:{}}};return this.register(s,{connector:t,kind:`prompt`,mcpName:e.name})}};function o(e){return{type:`text`,text:e}}function s(e,t){return{type:`image`,url:`data:${t};base64,${e}`,mimeType:t,data:e}}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.content)?!0:`structuredContent`in t}function l(e){return typeof e==`object`&&!!e&&e.isError===!0}function u(e){if(!e||typeof e!=`object`)return null;switch(e.type){case`text`:{let t=e.text;return typeof t==`string`&&t.length>0?o(t):null}case`image`:{let t=e;if(typeof t.data!=`string`||!t.data)return null;let n=typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`image/png`;return s(t.data,n)}case`audio`:{let t=e;return o(`[audio: ${typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`audio/*`}, base64 omitted (${typeof t.data==`string`?t.data.length:0} chars)]`)}case`resource`:{let t=e.resource??{};return typeof t.text==`string`&&t.text.length>0?o(t.text):typeof t.blob==`string`&&typeof t.mimeType==`string`&&t.mimeType.startsWith(`image/`)?s(t.blob,t.mimeType):o(`[resource: ${typeof t.uri==`string`?t.uri:`<unknown>`} (${typeof t.mimeType==`string`?t.mimeType:`unknown`})]`)}case`resource_link`:{let t=e,n=typeof t.uri==`string`?t.uri:`<unknown>`;return o(`[resource_link${typeof t.name==`string`?` "${t.name}"`:``}: ${n}]`)}default:return o(`[unsupported tool content block: ${String(e.type)}]`)}}function ee(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let{_meta:t,...n}=e;return n}return e}function te(e){let t=ee(e);if(typeof t==`string`)return t.length>0?[o(t)]:[];if(c(t)){let e=t,n=[];if(Array.isArray(e.content))for(let t of e.content){let e=u(t);e&&n.push(e)}if(e.structuredContent!==void 0)try{n.push(o(`structuredContent: ${JSON.stringify(e.structuredContent)}`))}catch{}return e.isError&&n.unshift(o(`[tool reported isError=true]`)),n}try{return[o(JSON.stringify(t))]}catch{return[o(String(t))]}}function ne(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CyvvaDNR.js","assets/react-CU_d2d5K.js","assets/button-C8Xa2k4x.js","assets/createLucideIcon-BEHeJH0M.js","assets/FormContext-sV-yByKz.js","assets/input-C0OQCUZy.js","assets/select-D6jzbLJn.js","assets/AnimatePresence-FfDQQNFJ.js","assets/label-CI7JWQOo.js","assets/index-bCIH1Sdx.css"])))=>i.map(i=>d[i]);
2
+ import{At as e,Nt as t,jt as n}from"./index-CyvvaDNR.js";var r=class{disallowedTools;connectorToolMap=new Map;constructor(e){this.disallowedTools=e??[]}static async createTools(t,n){let r=new this(n);(!t.activeSessions||Object.keys(t.activeSessions).length===0)&&(e.debug(`No active sessions found, creating new ones...`),await t.createAllSessions());let i=t.getAllActiveSessions(),a=Object.values(i).map(e=>e.connector);return r.createToolsFromConnectors(a)}async loadToolsForConnector(t){if(this.connectorToolMap.has(t)){let n=this.connectorToolMap.get(t);return e.debug(`Returning ${n.length} existing tools for connector`),n}let n=[];if(!await this.ensureConnectorInitialized(t))return[];for(let e of t.tools){let r=this.convertTool(e,t);r&&n.push(r)}return this.connectorToolMap.set(t,n),e.debug(`Loaded ${n.length} new tools for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`),n}async createToolsFromConnectors(t){let n=[];for(let e of t){let t=await this.loadToolsForConnector(e);n.push(...t)}return e.debug(`Available tools: ${n.length}`),n}async loadResourcesForConnector(t){let n=[];if(!await this.ensureConnectorInitialized(t))return[];try{let r=(await t.listAllResources())?.resources||[];if(this.convertResource)for(let e of r){let r=this.convertResource(e,t);r&&n.push(r)}e.debug(`Loaded ${n.length} new resources for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`)}catch(t){e.warn(`Error loading resources for connector: ${t}`)}return n}async loadPromptsForConnector(t){let n=[];if(!await this.ensureConnectorInitialized(t))return[];try{let r=(await t.listPrompts())?.prompts||[];if(this.convertPrompt)for(let e of r){let r=this.convertPrompt(e,t);r&&n.push(r)}e.debug(`Loaded ${n.length} new prompts for connector: ${n.map(e=>e?.name??String(e)).join(`, `)}`)}catch(t){e.warn(`Error loading prompts for connector: ${t}`)}return n}async createResourcesFromConnectors(t){let n=[];for(let e of t){let t=await this.loadResourcesForConnector(e);n.push(...t)}return e.debug(`Available resources: ${n.length}`),n}async createPromptsFromConnectors(t){let n=[];for(let e of t){let t=await this.loadPromptsForConnector(e);n.push(...t)}return e.debug(`Available prompts: ${n.length}`),n}checkConnectorInitialized(e){return!!(e.tools&&e.tools.length)}async ensureConnectorInitialized(t){if(!this.checkConnectorInitialized(t)){e.debug(`Connector doesn't have tools, initializing it`);try{return await t.initialize(),!0}catch(t){return e.error(`Error initializing connector: ${t}`),!1}}return!0}};function i(e){return e.replace(/[^A-Za-z0-9_]+/g,`_`).toLowerCase().replace(/^_+|_+$/g,``)}var a=class extends r{usedToolNames=new Set;handlers=new Map;constructor(e=[]){super(e)}async createToolsFromConnectors(e){return this.usedToolNames.clear(),this.handlers.clear(),super.createToolsFromConnectors(e)}createCallTool(){let t=this.handlers;return async(n,r)=>{let i=t.get(n);if(!i)throw Error(`Unknown tool: ${n}`);try{if(i.kind===`tool`)return await i.connector.callTool(i.mcpName,r);if(i.kind===`resource`){let e=i.resourceUri??i.mcpName;return await i.connector.readResource(e)}return await i.connector.getPrompt(i.mcpName,r)}catch(t){throw e.error(`Error executing native MCP tool ${n}: ${t}`),t}}}toProviderTools(e){return e.map(({name:e,description:t,inputSchema:n})=>({name:e,description:t,inputSchema:n}))}reserveName(e,t){if(!this.usedToolNames.has(e))return this.usedToolNames.add(e),e;if(t){let n=`${t}_${e}`;if(!this.usedToolNames.has(n))return this.usedToolNames.add(n),n;let r=2;for(;this.usedToolNames.has(`${n}_${r}`);)r++;let i=`${n}_${r}`;return this.usedToolNames.add(i),i}let n=2;for(;this.usedToolNames.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return this.usedToolNames.add(r),r}register(e,t){return this.handlers.set(e.name,t),e}convertTool(e,t){if(this.disallowedTools.includes(e.name))return null;let n=this.reserveName(e.name??`tool`),r={name:n,dispatchKey:n,description:e.description??``,inputSchema:e.inputSchema??{type:`object`,properties:{}}};return this.register(r,{connector:t,kind:`tool`,mcpName:e.name})}convertResource(e,t){let n=i(e.name||e.uri)||`resource`,r=this.reserveName(n,`resource`),a={name:r,dispatchKey:r,description:e.description||`Return the content of the resource located at URI ${e.uri}.`,inputSchema:{type:`object`,properties:{}}};return this.register(a,{connector:t,kind:`resource`,mcpName:e.uri,resourceUri:e.uri})}convertPrompt(e,t){let n={},r=[];if(e.arguments?.length)for(let t of e.arguments)n[t.name]={type:`string`,description:t.description},t.required!==!1&&r.push(t.name);let a=i(e.name||`prompt`)||`prompt`,o=this.reserveName(a,`prompt`),s={name:o,dispatchKey:o,description:e.description||``,inputSchema:{type:`object`,properties:n,...r.length>0?{required:r}:{}}};return this.register(s,{connector:t,kind:`prompt`,mcpName:e.name})}};function o(e){return{type:`text`,text:e}}function s(e,t){return{type:`image`,url:`data:${t};base64,${e}`,mimeType:t,data:e}}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.content)?!0:`structuredContent`in t}function l(e){return typeof e==`object`&&!!e&&e.isError===!0}function u(e){if(!e||typeof e!=`object`)return null;switch(e.type){case`text`:{let t=e.text;return typeof t==`string`&&t.length>0?o(t):null}case`image`:{let t=e;if(typeof t.data!=`string`||!t.data)return null;let n=typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`image/png`;return s(t.data,n)}case`audio`:{let t=e;return o(`[audio: ${typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`audio/*`}, base64 omitted (${typeof t.data==`string`?t.data.length:0} chars)]`)}case`resource`:{let t=e.resource??{};return typeof t.text==`string`&&t.text.length>0?o(t.text):typeof t.blob==`string`&&typeof t.mimeType==`string`&&t.mimeType.startsWith(`image/`)?s(t.blob,t.mimeType):o(`[resource: ${typeof t.uri==`string`?t.uri:`<unknown>`} (${typeof t.mimeType==`string`?t.mimeType:`unknown`})]`)}case`resource_link`:{let t=e,n=typeof t.uri==`string`?t.uri:`<unknown>`;return o(`[resource_link${typeof t.name==`string`?` "${t.name}"`:``}: ${n}]`)}default:return o(`[unsupported tool content block: ${String(e.type)}]`)}}function ee(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let{_meta:t,...n}=e;return n}return e}function te(e){let t=ee(e);if(typeof t==`string`)return t.length>0?[o(t)]:[];if(c(t)){let e=t,n=[];if(Array.isArray(e.content))for(let t of e.content){let e=u(t);e&&n.push(e)}if(e.structuredContent!==void 0)try{n.push(o(`structuredContent: ${JSON.stringify(e.structuredContent)}`))}catch{}return e.isError&&n.unshift(o(`[tool reported isError=true]`)),n}try{return[o(JSON.stringify(t))]}catch{return[o(String(t))]}}function ne(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
3
3
  `):null}function d(e){let t=te(e),n=ne(t);return n===null?t:n}function f(e){if(typeof e==`string`)return{text:e,imageParts:[],isString:!0};let t=[],n=[];for(let r of e)r.type===`text`?r.text&&t.push(r.text):r.type===`image`&&n.push(r);return{text:t.join(`
4
4
  `),imageParts:n,isString:!1}}function p(e,t){return`(Tool "${e??`<tool>`}" returned the following image${t===1?``:`s`}:)`}function m(e){let t=typeof e.content==`string`?e.content:Array.isArray(e.content)?e.content.map(e=>e?.text??``).join(`
5
5
  `):JSON.stringify(e.content??``);return t.trim()?t.trim():e.parts?.length?e.parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(``).trim():``}function re(e){let t=[];return e.forEach((e,n)=>{if(e.role===`user`){let n=m(e)||`[no content]`;if(e.attachments?.length){let r=[{type:`text`,text:n}];for(let t of e.attachments)t.type===`image`&&r.push({type:`image`,url:`data:${t.mimeType};base64,${t.data}`,mimeType:t.mimeType,data:t.data});t.push({role:`user`,content:r})}else t.push({role:`user`,content:n});return}let r=(e.parts??[]).filter(e=>e.type===`tool-invocation`&&e.toolInvocation&&e.toolInvocation.result!==void 0);if(r.length===0){let n=m(e)||`[no content]`;t.push({role:`assistant`,content:n});return}let i=m(e),a=r.map((e,t)=>({id:`call_${n}_${t}_${e.toolInvocation.toolName}`,name:e.toolInvocation.toolName,args:e.toolInvocation.args}));t.push({role:`assistant`,content:i,toolCalls:a}),r.forEach((e,r)=>{let i=e.toolInvocation.result;t.push({role:`tool`,content:d(i),toolCallId:`call_${n}_${r}_${e.toolInvocation.toolName}`,toolName:e.toolInvocation.toolName,toolResult:i,toolIsError:l(i)})})}),t}function ie(e){let t=[],n=[];for(let r of e)if(r.role===`system`){if(typeof r.content==`string`)t.push(r.content);else if(Array.isArray(r.content))for(let e of r.content)e.type===`text`&&t.push(e.text)}else n.push(r);return{system:t.length>0?t.join(`
@@ -18,4 +18,4 @@ import{At as e,Nt as t,jt as n}from"./index-BMaSsizY.js";var r=class{disallowedT
18
18
  \u2022 Missing or invalid MCP server configurations
19
19
  \u2022 Network connectivity issues with MCP servers
20
20
  \u2022 Missing environment variables or credentials
21
- Raw error: ${c}`)}return l?this.parseStructuredResponse(c,l):typeof c==`object`&&c&&`result`in c?c.result:typeof c==`string`?c:String(c)}catch(t){throw t instanceof Error?t.name===`AbortError`?(e.error(`\u274C Remote execution timed out: ${t}`),Error(`Remote agent execution timed out. The server may be overloaded or the query is taking too long to process. Try again or use a simpler query.`)):(e.error(`\u274C Remote execution error: ${t}`),Error(`Remote agent execution failed: ${t.message}`)):(e.error(`\u274C Remote execution error: ${t}`),Error(`Remote agent execution failed: ${String(t)}`))}}async*stream(e,t,n,r,i){return await this.run(e,t,n,r,i)}async close(){e.debug(`🔌 Remote agent client closed`)}},Qe=class{static getPackageVersion(){return qe()}driver;client;connectors=[];clientOwnedByAgent=!1;nativeAdapter;providerTools=[];callTool;maxSteps;autoInitialize;systemPrompt;disallowedTools;exposeResourcesAsTools;exposePromptsAsTools;initialized=!1;isRemote=!1;remoteAgent=null;isSimplifiedMode=!1;llmString;llmConfig;mcpServersConfig;explicitProviderConfig;conversationMessages=[];memoryEnabled;boundConnections;constructor(e){if(e.agentId){this.isRemote=!0,this.remoteAgent=new Ze({agentId:e.agentId,apiKey:e.apiKey,baseUrl:e.baseUrl}),this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.nativeAdapter=new a,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=[],this.exposeResourcesAsTools=!0,this.exposePromptsAsTools=!0,this.memoryEnabled=e.memoryEnabled??!0;return}if(this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=e.disallowedTools??[],this.exposeResourcesAsTools=e.exposeResourcesAsTools??!0,this.exposePromptsAsTools=e.exposePromptsAsTools??!0,this.memoryEnabled=e.memoryEnabled??!0,this.nativeAdapter=new a(this.disallowedTools),this.llmConfig=e.llmConfig,this.resolveMcpServers(e.mcpServers),typeof e.llm==`string`){if(this.isSimplifiedMode=!0,this.llmString=e.llm,!this.hasLiveConnections()&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0)&&!e.client&&!e.connectors?.length)throw Error(`Simplified mode requires mcpServers, or an existing client/connectors.`)}else if(this.explicitProviderConfig=e.llm,this.client=e.client,this.connectors=e.connectors??[],!this.hasLiveConnections()&&!this.client&&this.connectors.length===0&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0))throw Error(`Explicit mode requires mcpServers, client, or connectors.`);e.client&&(this.client=e.client),e.connectors?.length&&(this.connectors=e.connectors),this.hasLiveConnections()&&this.explicitProviderConfig?this.bindConnections(this.boundConnections,this.explicitProviderConfig):this.hasLiveConnections()&&this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)),this.bindConnections(this.boundConnections,Q(this.llmString,this.llmConfig)))}resolveMcpServers(e){if(e){if(Array.isArray(e)){this.boundConnections=e;return}this.mcpServersConfig=e}}hasLiveConnections(){return(this.boundConnections?.length??0)>0}async initialize(){if(this.isRemote){this.initialized=!0;return}if(!this.initialized){if(this.isSimplifiedMode){if(!this.client&&this.mcpServersConfig){let{MCPClient:e}=await n(async()=>{let{MCPClient:e}=await import(`./index-BMaSsizY.js`).then(e=>e.kt);return{MCPClient:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));this.client=new e({mcpServers:this.mcpServersConfig}),this.clientOwnedByAgent=!0}this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)))}else this.explicitProviderConfig&&(this.driver=X(this.explicitProviderConfig));if(!this.driver)throw Error(`LLM driver not configured.`);this.hasLiveConnections()||await this.loadTools(),this.initialized=!0,e.debug(`MCPAgent initialized`)}}async loadTools(){let e=[];if(this.client){(!this.client.activeSessions||Object.keys(this.client.activeSessions).length===0)&&await this.client.createAllSessions();let t=this.client.getAllActiveSessions(),n=Object.values(t).map(e=>e.connector);e.push(...await this.nativeAdapter.createToolsFromConnectors(n)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(n)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(n))}else{for(let e of this.connectors)e.isClientConnected||await e.connect();e.push(...await this.nativeAdapter.createToolsFromConnectors(this.connectors)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(this.connectors)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(this.connectors))}this.providerTools=this.nativeAdapter.toProviderTools(e),this.callTool=this.nativeAdapter.createCallTool()}bindConnections(e,t){let n=new Set(this.disallowedTools),r=new Set,i=new Map,a=e=>{if(!r.has(e))return r.add(e),e;let t=2;for(;r.has(`${e}_${t}`);)t++;let n=`${e}_${t}`;return r.add(n),n},o=[];for(let t of e)for(let e of t.tools??[]){if(n.has(e.name))continue;let r=a(e.name);i.set(r,{connection:t,mcpName:e.name}),o.push({name:r,description:e.description,inputSchema:e.inputSchema??{type:`object`,properties:{}}})}this.providerTools=o,this.callTool=async(e,t)=>{let n=i.get(e);if(!n)throw Error(`Unknown tool: ${e}`);return n.connection.callTool(n.mcpName,t)},this.driver=X(t),this.initialized=!0}buildMessages(e){let t=[{role:`system`,content:this.systemPrompt}];return this.memoryEnabled&&this.conversationMessages.length>0&&t.push(...this.conversationMessages),e.messages?.length&&t.push(...e.messages),e.prompt&&t.push({role:`user`,content:e.prompt}),t}getConversationHistory(){return[...this.conversationMessages]}clearConversationHistory(){this.conversationMessages=[]}setSystemMessage(e){this.systemPrompt=e}async ensureReady(e=!0){if(e&&!this.initialized)if(this.autoInitialize)await this.initialize();else throw Error(`MCPAgent not initialized. Call initialize() first.`);if(!this.driver||!this.callTool)throw Error(`MCPAgent driver or tools not ready.`)}nativeRunParams(e){return{messages:this.buildMessages(e),tools:this.providerTools,callTool:this.callTool,maxSteps:e.maxSteps??this.maxSteps,signal:e.signal}}async run(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(o.schema)throw Error(`Structured output requires @mcp-use/agent/langchain or pass a JSON schema via prompt.`);if(this.isRemote&&this.remoteAgent)return this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=await He(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*stream(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)return await this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=yield*Ve(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*streamEvents(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)throw Error(`streamEvents is not supported for remote agents.`);await this.ensureReady(o.manageConnector??!0),yield*Z(this.driver,this.nativeRunParams(o))}async chat(e){return await this.ensureReady(),(await this.driver.complete({messages:e.messages,tools:[],signal:e.signal})).text}async close(){this.clientOwnedByAgent&&this.client&&await this.client.closeAllSessions?.(),this.initialized=!1}};async function $e(e){return(await X(e.config).complete({messages:e.messages,tools:[],signal:e.signal})).text}export{$e as a,Ge as c,D as i,Qe as n,re as o,we as r,E as s,Ce as t};
21
+ Raw error: ${c}`)}return l?this.parseStructuredResponse(c,l):typeof c==`object`&&c&&`result`in c?c.result:typeof c==`string`?c:String(c)}catch(t){throw t instanceof Error?t.name===`AbortError`?(e.error(`\u274C Remote execution timed out: ${t}`),Error(`Remote agent execution timed out. The server may be overloaded or the query is taking too long to process. Try again or use a simpler query.`)):(e.error(`\u274C Remote execution error: ${t}`),Error(`Remote agent execution failed: ${t.message}`)):(e.error(`\u274C Remote execution error: ${t}`),Error(`Remote agent execution failed: ${String(t)}`))}}async*stream(e,t,n,r,i){return await this.run(e,t,n,r,i)}async close(){e.debug(`🔌 Remote agent client closed`)}},Qe=class{static getPackageVersion(){return qe()}driver;client;connectors=[];clientOwnedByAgent=!1;nativeAdapter;providerTools=[];callTool;maxSteps;autoInitialize;systemPrompt;disallowedTools;exposeResourcesAsTools;exposePromptsAsTools;initialized=!1;isRemote=!1;remoteAgent=null;isSimplifiedMode=!1;llmString;llmConfig;mcpServersConfig;explicitProviderConfig;conversationMessages=[];memoryEnabled;boundConnections;constructor(e){if(e.agentId){this.isRemote=!0,this.remoteAgent=new Ze({agentId:e.agentId,apiKey:e.apiKey,baseUrl:e.baseUrl}),this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.nativeAdapter=new a,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=[],this.exposeResourcesAsTools=!0,this.exposePromptsAsTools=!0,this.memoryEnabled=e.memoryEnabled??!0;return}if(this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=e.disallowedTools??[],this.exposeResourcesAsTools=e.exposeResourcesAsTools??!0,this.exposePromptsAsTools=e.exposePromptsAsTools??!0,this.memoryEnabled=e.memoryEnabled??!0,this.nativeAdapter=new a(this.disallowedTools),this.llmConfig=e.llmConfig,this.resolveMcpServers(e.mcpServers),typeof e.llm==`string`){if(this.isSimplifiedMode=!0,this.llmString=e.llm,!this.hasLiveConnections()&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0)&&!e.client&&!e.connectors?.length)throw Error(`Simplified mode requires mcpServers, or an existing client/connectors.`)}else if(this.explicitProviderConfig=e.llm,this.client=e.client,this.connectors=e.connectors??[],!this.hasLiveConnections()&&!this.client&&this.connectors.length===0&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0))throw Error(`Explicit mode requires mcpServers, client, or connectors.`);e.client&&(this.client=e.client),e.connectors?.length&&(this.connectors=e.connectors),this.hasLiveConnections()&&this.explicitProviderConfig?this.bindConnections(this.boundConnections,this.explicitProviderConfig):this.hasLiveConnections()&&this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)),this.bindConnections(this.boundConnections,Q(this.llmString,this.llmConfig)))}resolveMcpServers(e){if(e){if(Array.isArray(e)){this.boundConnections=e;return}this.mcpServersConfig=e}}hasLiveConnections(){return(this.boundConnections?.length??0)>0}async initialize(){if(this.isRemote){this.initialized=!0;return}if(!this.initialized){if(this.isSimplifiedMode){if(!this.client&&this.mcpServersConfig){let{MCPClient:e}=await n(async()=>{let{MCPClient:e}=await import(`./index-CyvvaDNR.js`).then(e=>e.kt);return{MCPClient:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));this.client=new e({mcpServers:this.mcpServersConfig}),this.clientOwnedByAgent=!0}this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)))}else this.explicitProviderConfig&&(this.driver=X(this.explicitProviderConfig));if(!this.driver)throw Error(`LLM driver not configured.`);this.hasLiveConnections()||await this.loadTools(),this.initialized=!0,e.debug(`MCPAgent initialized`)}}async loadTools(){let e=[];if(this.client){(!this.client.activeSessions||Object.keys(this.client.activeSessions).length===0)&&await this.client.createAllSessions();let t=this.client.getAllActiveSessions(),n=Object.values(t).map(e=>e.connector);e.push(...await this.nativeAdapter.createToolsFromConnectors(n)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(n)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(n))}else{for(let e of this.connectors)e.isClientConnected||await e.connect();e.push(...await this.nativeAdapter.createToolsFromConnectors(this.connectors)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(this.connectors)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(this.connectors))}this.providerTools=this.nativeAdapter.toProviderTools(e),this.callTool=this.nativeAdapter.createCallTool()}bindConnections(e,t){let n=new Set(this.disallowedTools),r=new Set,i=new Map,a=e=>{if(!r.has(e))return r.add(e),e;let t=2;for(;r.has(`${e}_${t}`);)t++;let n=`${e}_${t}`;return r.add(n),n},o=[];for(let t of e)for(let e of t.tools??[]){if(n.has(e.name))continue;let r=a(e.name);i.set(r,{connection:t,mcpName:e.name}),o.push({name:r,description:e.description,inputSchema:e.inputSchema??{type:`object`,properties:{}}})}this.providerTools=o,this.callTool=async(e,t)=>{let n=i.get(e);if(!n)throw Error(`Unknown tool: ${e}`);return n.connection.callTool(n.mcpName,t)},this.driver=X(t),this.initialized=!0}buildMessages(e){let t=[{role:`system`,content:this.systemPrompt}];return this.memoryEnabled&&this.conversationMessages.length>0&&t.push(...this.conversationMessages),e.messages?.length&&t.push(...e.messages),e.prompt&&t.push({role:`user`,content:e.prompt}),t}getConversationHistory(){return[...this.conversationMessages]}clearConversationHistory(){this.conversationMessages=[]}setSystemMessage(e){this.systemPrompt=e}async ensureReady(e=!0){if(e&&!this.initialized)if(this.autoInitialize)await this.initialize();else throw Error(`MCPAgent not initialized. Call initialize() first.`);if(!this.driver||!this.callTool)throw Error(`MCPAgent driver or tools not ready.`)}nativeRunParams(e){return{messages:this.buildMessages(e),tools:this.providerTools,callTool:this.callTool,maxSteps:e.maxSteps??this.maxSteps,signal:e.signal}}async run(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(o.schema)throw Error(`Structured output requires @mcp-use/agent/langchain or pass a JSON schema via prompt.`);if(this.isRemote&&this.remoteAgent)return this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=await He(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*stream(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)return await this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=yield*Ve(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*streamEvents(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)throw Error(`streamEvents is not supported for remote agents.`);await this.ensureReady(o.manageConnector??!0),yield*Z(this.driver,this.nativeRunParams(o))}async chat(e){return await this.ensureReady(),(await this.driver.complete({messages:e.messages,tools:[],signal:e.signal})).text}async close(){this.clientOwnedByAgent&&this.client&&await this.client.closeAllSessions?.(),this.initialized=!1}};async function $e(e){return(await X(e.config).complete({messages:e.messages,tools:[],signal:e.signal})).text}export{$e as a,Ge as c,D as i,Qe as n,re as o,we as r,E as s,Ce as t};