@mcp-use/inspector 20.0.0-beta.4 → 20.0.0-beta.6

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 (61) hide show
  1. package/dist/cdn/{ChatTab-UQAPDRQG.js → ChatTab-D6J3Gyp7.js} +885 -837
  2. package/dist/cdn/{ConnectionSettingsForm-DrY1p-NO.js → ConnectionSettingsForm-CWQueI8J.js} +1 -1
  3. package/dist/cdn/{ConnectionSettingsTab-B1cRD7hz.js → ConnectionSettingsTab-FGyt3QaI.js} +1 -1
  4. package/dist/cdn/{MarkdownRenderer-BoDJE8tP.js → MarkdownRenderer-gLqUICEd.js} +1 -1
  5. package/dist/cdn/{OAuthCallback-C9AvCkOn.js → OAuthCallback-Bg2bP-o9.js} +1 -1
  6. package/dist/cdn/{PromptsTab-CkAWyWVb.js → PromptsTab-C4LuwyWN.js} +1 -1
  7. package/dist/cdn/{ResourcesTab-BtBKxd4c.js → ResourcesTab-CQkKni-P.js} +5 -5
  8. package/dist/cdn/{SamplingTab-Czp7Rmhz.js → SamplingTab-D8q-iCMc.js} +3 -3
  9. package/dist/cdn/{ToolsTab-Dm4vCB8D.js → ToolsTab-6xaVH43x.js} +4 -4
  10. package/dist/cdn/{ViewPreview-CZvl_7x-.js → ViewPreview-Ohh6JwOn.js} +2 -2
  11. package/dist/cdn/{WidgetWrapper-DeiogRXV.js → WidgetWrapper-CruwjBOd.js} +2 -2
  12. package/dist/cdn/{dist-3QLh0dt8.js → dist-CXHFvGre.js} +5 -4
  13. package/dist/cdn/{index-browser-CIoYSwCt.js → index-browser-DkQOzkvX.js} +1 -1
  14. package/dist/cdn/inspector.js +5 -5
  15. package/dist/cdn/{react-0oJnFpBS.js → react-BLtCruam.js} +576 -569
  16. package/dist/cdn/{telemetry-BbhH1Z_E.js → telemetry-C7Ytz2BG.js} +2 -2
  17. package/dist/cdn/{useConfig-BNpU7Atw.js → useConfig-BW6uQf2m.js} +2 -2
  18. package/dist/cdn/{useViewHostProps-ru80AnlT.js → useViewHostProps-CINeSkth.js} +1 -1
  19. package/dist/cli.js +1 -1
  20. package/dist/client/components/chat/MessageList.d.ts +1 -0
  21. package/dist/client/components/chat/MessageList.d.ts.map +1 -1
  22. package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
  23. package/dist/client/components/chat/partialToolArgs.d.ts +10 -0
  24. package/dist/client/components/chat/partialToolArgs.d.ts.map +1 -0
  25. package/dist/client/components/chat/types.d.ts +1 -0
  26. package/dist/client/components/chat/types.d.ts.map +1 -1
  27. package/dist/client/components/chat/useChatMessages.d.ts.map +1 -1
  28. package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +1 -1
  29. package/dist/client/index.js +158 -81
  30. package/dist/server/cdn-shell.js +2 -2
  31. package/dist/server/{chunk-PGN3B3MQ.js → chunk-GBY4WAVP.js} +1 -1
  32. package/dist/server/{chunk-BEJGHVKM.js → chunk-IFF5T5J4.js} +1 -1
  33. package/dist/server/{chunk-5L3HMC5B.js → chunk-NUHI6MJ6.js} +1 -1
  34. package/dist/server/cli.js +2 -2
  35. package/dist/server/index.js +3 -3
  36. package/dist/server/middleware.js +3 -3
  37. package/dist/server/version.js +1 -1
  38. package/dist/web/assets/ChatTab-CsBPVCSc.js +18 -0
  39. package/dist/web/assets/{ConnectionSettingsTab-XwjwKfsO.js → ConnectionSettingsTab-DQTXfnl1.js} +1 -1
  40. package/dist/web/assets/{ElicitationTab-BD1tfmYR.js → ElicitationTab-_FKB7nNG.js} +1 -1
  41. package/dist/web/assets/{ManufactOAuthCallback-DD3qfIC3.js → ManufactOAuthCallback-BRO6TPkZ.js} +1 -1
  42. package/dist/web/assets/{MarkdownRenderer-DH-7vpw0.js → MarkdownRenderer-gaJFjbtr.js} +1 -1
  43. package/dist/web/assets/{NotificationsTab-Cg48O6IH.js → NotificationsTab-LYcfRjyd.js} +1 -1
  44. package/dist/web/assets/{OAuthCallback-4i2i3YpE.js → OAuthCallback-D8UItgTB.js} +1 -1
  45. package/dist/web/assets/{PromptsTab-pAR6izrQ.js → PromptsTab-B2uVMRR2.js} +1 -1
  46. package/dist/web/assets/{ResourcesTab-CgvfWrsU.js → ResourcesTab-DhOZYPjE.js} +1 -1
  47. package/dist/web/assets/{SamplingTab-DfIWMQFY.js → SamplingTab-C-oY2hoi.js} +1 -1
  48. package/dist/web/assets/{ServerMetadataTab-Dsz8Qhyr.js → ServerMetadataTab-BkTxO5KS.js} +1 -1
  49. package/dist/web/assets/{ToolsTab-ln9w58BW.js → ToolsTab-DupHgo7A.js} +1 -1
  50. package/dist/web/assets/{ViewPreview-CQ3G3VP0.js → ViewPreview--z6jL0Zg.js} +1 -1
  51. package/dist/web/assets/{WidgetWrapper-A-zaxY5s.js → WidgetWrapper-CZaEVEw4.js} +1 -1
  52. package/dist/web/assets/{checkbox-DZWS_U_i.js → checkbox-BQ9mI_6k.js} +1 -1
  53. package/dist/web/assets/{dist-DxRFPg-B.js → dist-B8sA8Zml.js} +5 -5
  54. package/dist/web/assets/{index-CoRK2C3M.js → index-C_fCIJ4C.js} +6 -6
  55. package/dist/web/assets/{shared-Dbc2GbRx.js → shared-CCC9rTz4.js} +1 -1
  56. package/dist/web/assets/{tabs-subtle-CxMZqhP6.js → tabs-subtle-246ABJqx.js} +1 -1
  57. package/dist/web/assets/{useConfig-Cg-BtSHA.js → useConfig-BAsKhUxf.js} +1 -1
  58. package/dist/web/assets/{useViewHostProps-CMgPpdfy.js → useViewHostProps-CV5zBxUb.js} +1 -1
  59. package/dist/web/index.html +2 -2
  60. package/package.json +3 -3
  61. package/dist/web/assets/ChatTab-B_5S87J1.js +0 -18
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CoRK2C3M.js","assets/react-CU_d2d5K.js","assets/input-CLYhA7PK.js","assets/createLucideIcon-B3b8EU0b.js","assets/jsx-runtime-Cjj9sGSy.js","assets/FormContext-DH2caWKO.js","assets/select-CJ57-Bor.js","assets/AnimatePresence-C5p0yiY1.js","assets/label-Cdim77Jw.js","assets/index-fBX3akc8.css"])))=>i.map(i=>d[i]);
2
- import{At as e,Mt as t,kt as n}from"./index-CoRK2C3M.js";var r=class{disallowedTools;connectorToolMap=new Map;constructor(e){this.disallowedTools=e??[]}static async createTools(e,t){let r=new this(t);(!e.activeSessions||Object.keys(e.activeSessions).length===0)&&(n.debug(`No active sessions found, creating new ones...`),await e.createAllSessions());let i=e.getAllActiveSessions(),a=Object.values(i).map(e=>e.connector);return r.createToolsFromConnectors(a)}async loadToolsForConnector(e){if(this.connectorToolMap.has(e)){let t=this.connectorToolMap.get(e);return n.debug(`Returning ${t.length} existing tools for connector`),t}let t=[];if(!await this.ensureConnectorInitialized(e))return[];for(let n of e.tools){let r=this.convertTool(n,e);r&&t.push(r)}return this.connectorToolMap.set(e,t),n.debug(`Loaded ${t.length} new tools for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`),t}async createToolsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadToolsForConnector(n);t.push(...e)}return n.debug(`Available tools: ${t.length}`),t}async loadResourcesForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listAllResources())?.resources||[];if(this.convertResource)for(let n of r){let r=this.convertResource(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new resources for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading resources for connector: ${e}`)}return t}async loadPromptsForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listPrompts())?.prompts||[];if(this.convertPrompt)for(let n of r){let r=this.convertPrompt(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new prompts for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading prompts for connector: ${e}`)}return t}async createResourcesFromConnectors(e){let t=[];for(let n of e){let e=await this.loadResourcesForConnector(n);t.push(...e)}return n.debug(`Available resources: ${t.length}`),t}async createPromptsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadPromptsForConnector(n);t.push(...e)}return n.debug(`Available prompts: ${t.length}`),t}checkConnectorInitialized(e){return!!(e.tools&&e.tools.length)}async ensureConnectorInitialized(e){if(!this.checkConnectorInitialized(e)){n.debug(`Connector doesn't have tools, initializing it`);try{return await e.initialize(),!0}catch(e){return n.error(`Error initializing connector: ${e}`),!1}}return!0}};function i(e){return e.replace(/[^A-Za-z0-9_]+/g,`_`).toLowerCase().replace(/^_+|_+$/g,``)}var a=class extends r{usedToolNames=new Set;handlers=new Map;constructor(e=[]){super(e)}async createToolsFromConnectors(e){return this.usedToolNames.clear(),this.handlers.clear(),super.createToolsFromConnectors(e)}createCallTool(){let e=this.handlers;return async(t,r)=>{let i=e.get(t);if(!i)throw Error(`Unknown tool: ${t}`);try{if(i.kind===`tool`)return await i.connector.callTool(i.mcpName,r);if(i.kind===`resource`){let e=i.resourceUri??i.mcpName;return await i.connector.readResource(e)}return await i.connector.getPrompt(i.mcpName,r)}catch(e){throw n.error(`Error executing native MCP tool ${t}: ${e}`),e}}}toProviderTools(e){return e.map(({name:e,description:t,inputSchema:n})=>({name:e,description:t,inputSchema:n}))}reserveName(e,t){if(!this.usedToolNames.has(e))return this.usedToolNames.add(e),e;if(t){let n=`${t}_${e}`;if(!this.usedToolNames.has(n))return this.usedToolNames.add(n),n;let r=2;for(;this.usedToolNames.has(`${n}_${r}`);)r++;let i=`${n}_${r}`;return this.usedToolNames.add(i),i}let n=2;for(;this.usedToolNames.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return this.usedToolNames.add(r),r}register(e,t){return this.handlers.set(e.name,t),e}convertTool(e,t){if(this.disallowedTools.includes(e.name))return null;let n=this.reserveName(e.name??`tool`),r={name:n,dispatchKey:n,description:e.description??``,inputSchema:e.inputSchema??{type:`object`,properties:{}}};return this.register(r,{connector:t,kind:`tool`,mcpName:e.name})}convertResource(e,t){let n=i(e.name||e.uri)||`resource`,r=this.reserveName(n,`resource`),a={name:r,dispatchKey:r,description:e.description||`Return the content of the resource located at URI ${e.uri}.`,inputSchema:{type:`object`,properties:{}}};return this.register(a,{connector:t,kind:`resource`,mcpName:e.uri,resourceUri:e.uri})}convertPrompt(e,t){let n={},r=[];if(e.arguments?.length)for(let t of e.arguments)n[t.name]={type:`string`,description:t.description},t.required!==!1&&r.push(t.name);let a=i(e.name||`prompt`)||`prompt`,o=this.reserveName(a,`prompt`),s={name:o,dispatchKey:o,description:e.description||``,inputSchema:{type:`object`,properties:n,...r.length>0?{required:r}:{}}};return this.register(s,{connector:t,kind:`prompt`,mcpName:e.name})}};function o(e){return{type:`text`,text:e}}function s(e,t){return{type:`image`,url:`data:${t};base64,${e}`,mimeType:t,data:e}}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.content)?!0:`structuredContent`in t}function l(e){return typeof e==`object`&&!!e&&e.isError===!0}function u(e){if(!e||typeof e!=`object`)return null;switch(e.type){case`text`:{let t=e.text;return typeof t==`string`&&t.length>0?o(t):null}case`image`:{let t=e;if(typeof t.data!=`string`||!t.data)return null;let n=typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`image/png`;return s(t.data,n)}case`audio`:{let t=e;return o(`[audio: ${typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`audio/*`}, base64 omitted (${typeof t.data==`string`?t.data.length:0} chars)]`)}case`resource`:{let t=e.resource??{};return typeof t.text==`string`&&t.text.length>0?o(t.text):typeof t.blob==`string`&&typeof t.mimeType==`string`&&t.mimeType.startsWith(`image/`)?s(t.blob,t.mimeType):o(`[resource: ${typeof t.uri==`string`?t.uri:`<unknown>`} (${typeof t.mimeType==`string`?t.mimeType:`unknown`})]`)}case`resource_link`:{let t=e,n=typeof t.uri==`string`?t.uri:`<unknown>`;return o(`[resource_link${typeof t.name==`string`?` "${t.name}"`:``}: ${n}]`)}default:return o(`[unsupported tool content block: ${String(e.type)}]`)}}function ee(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let{_meta:t,...n}=e;return n}return e}function te(e){let t=ee(e);if(typeof t==`string`)return t.length>0?[o(t)]:[];if(c(t)){let e=t,n=[];if(Array.isArray(e.content))for(let t of e.content){let e=u(t);e&&n.push(e)}if(e.structuredContent!==void 0)try{n.push(o(`structuredContent: ${JSON.stringify(e.structuredContent)}`))}catch{}return e.isError&&n.unshift(o(`[tool reported isError=true]`)),n}try{return[o(JSON.stringify(t))]}catch{return[o(String(t))]}}function ne(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-C_fCIJ4C.js","assets/react-CU_d2d5K.js","assets/input-CLYhA7PK.js","assets/createLucideIcon-B3b8EU0b.js","assets/jsx-runtime-Cjj9sGSy.js","assets/FormContext-DH2caWKO.js","assets/select-CJ57-Bor.js","assets/AnimatePresence-C5p0yiY1.js","assets/label-Cdim77Jw.js","assets/index-fBX3akc8.css"])))=>i.map(i=>d[i]);
2
+ import{At as e,Mt as t,kt as n}from"./index-C_fCIJ4C.js";var r=class{disallowedTools;connectorToolMap=new Map;constructor(e){this.disallowedTools=e??[]}static async createTools(e,t){let r=new this(t);(!e.activeSessions||Object.keys(e.activeSessions).length===0)&&(n.debug(`No active sessions found, creating new ones...`),await e.createAllSessions());let i=e.getAllActiveSessions(),a=Object.values(i).map(e=>e.connector);return r.createToolsFromConnectors(a)}async loadToolsForConnector(e){if(this.connectorToolMap.has(e)){let t=this.connectorToolMap.get(e);return n.debug(`Returning ${t.length} existing tools for connector`),t}let t=[];if(!await this.ensureConnectorInitialized(e))return[];for(let n of e.tools){let r=this.convertTool(n,e);r&&t.push(r)}return this.connectorToolMap.set(e,t),n.debug(`Loaded ${t.length} new tools for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`),t}async createToolsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadToolsForConnector(n);t.push(...e)}return n.debug(`Available tools: ${t.length}`),t}async loadResourcesForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listAllResources())?.resources||[];if(this.convertResource)for(let n of r){let r=this.convertResource(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new resources for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading resources for connector: ${e}`)}return t}async loadPromptsForConnector(e){let t=[];if(!await this.ensureConnectorInitialized(e))return[];try{let r=(await e.listPrompts())?.prompts||[];if(this.convertPrompt)for(let n of r){let r=this.convertPrompt(n,e);r&&t.push(r)}n.debug(`Loaded ${t.length} new prompts for connector: ${t.map(e=>e?.name??String(e)).join(`, `)}`)}catch(e){n.warn(`Error loading prompts for connector: ${e}`)}return t}async createResourcesFromConnectors(e){let t=[];for(let n of e){let e=await this.loadResourcesForConnector(n);t.push(...e)}return n.debug(`Available resources: ${t.length}`),t}async createPromptsFromConnectors(e){let t=[];for(let n of e){let e=await this.loadPromptsForConnector(n);t.push(...e)}return n.debug(`Available prompts: ${t.length}`),t}checkConnectorInitialized(e){return!!(e.tools&&e.tools.length)}async ensureConnectorInitialized(e){if(!this.checkConnectorInitialized(e)){n.debug(`Connector doesn't have tools, initializing it`);try{return await e.initialize(),!0}catch(e){return n.error(`Error initializing connector: ${e}`),!1}}return!0}};function i(e){return e.replace(/[^A-Za-z0-9_]+/g,`_`).toLowerCase().replace(/^_+|_+$/g,``)}var a=class extends r{usedToolNames=new Set;handlers=new Map;constructor(e=[]){super(e)}async createToolsFromConnectors(e){return this.usedToolNames.clear(),this.handlers.clear(),super.createToolsFromConnectors(e)}createCallTool(){let e=this.handlers;return async(t,r)=>{let i=e.get(t);if(!i)throw Error(`Unknown tool: ${t}`);try{if(i.kind===`tool`)return await i.connector.callTool(i.mcpName,r);if(i.kind===`resource`){let e=i.resourceUri??i.mcpName;return await i.connector.readResource(e)}return await i.connector.getPrompt(i.mcpName,r)}catch(e){throw n.error(`Error executing native MCP tool ${t}: ${e}`),e}}}toProviderTools(e){return e.map(({name:e,description:t,inputSchema:n})=>({name:e,description:t,inputSchema:n}))}reserveName(e,t){if(!this.usedToolNames.has(e))return this.usedToolNames.add(e),e;if(t){let n=`${t}_${e}`;if(!this.usedToolNames.has(n))return this.usedToolNames.add(n),n;let r=2;for(;this.usedToolNames.has(`${n}_${r}`);)r++;let i=`${n}_${r}`;return this.usedToolNames.add(i),i}let n=2;for(;this.usedToolNames.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return this.usedToolNames.add(r),r}register(e,t){return this.handlers.set(e.name,t),e}convertTool(e,t){if(this.disallowedTools.includes(e.name))return null;let n=this.reserveName(e.name??`tool`),r={name:n,dispatchKey:n,description:e.description??``,inputSchema:e.inputSchema??{type:`object`,properties:{}}};return this.register(r,{connector:t,kind:`tool`,mcpName:e.name})}convertResource(e,t){let n=i(e.name||e.uri)||`resource`,r=this.reserveName(n,`resource`),a={name:r,dispatchKey:r,description:e.description||`Return the content of the resource located at URI ${e.uri}.`,inputSchema:{type:`object`,properties:{}}};return this.register(a,{connector:t,kind:`resource`,mcpName:e.uri,resourceUri:e.uri})}convertPrompt(e,t){let n={},r=[];if(e.arguments?.length)for(let t of e.arguments)n[t.name]={type:`string`,description:t.description},t.required!==!1&&r.push(t.name);let a=i(e.name||`prompt`)||`prompt`,o=this.reserveName(a,`prompt`),s={name:o,dispatchKey:o,description:e.description||``,inputSchema:{type:`object`,properties:n,...r.length>0?{required:r}:{}}};return this.register(s,{connector:t,kind:`prompt`,mcpName:e.name})}};function o(e){return{type:`text`,text:e}}function s(e,t){return{type:`image`,url:`data:${t};base64,${e}`,mimeType:t,data:e}}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.content)?!0:`structuredContent`in t}function l(e){return typeof e==`object`&&!!e&&e.isError===!0}function u(e){if(!e||typeof e!=`object`)return null;switch(e.type){case`text`:{let t=e.text;return typeof t==`string`&&t.length>0?o(t):null}case`image`:{let t=e;if(typeof t.data!=`string`||!t.data)return null;let n=typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`image/png`;return s(t.data,n)}case`audio`:{let t=e;return o(`[audio: ${typeof t.mimeType==`string`&&t.mimeType?t.mimeType:`audio/*`}, base64 omitted (${typeof t.data==`string`?t.data.length:0} chars)]`)}case`resource`:{let t=e.resource??{};return typeof t.text==`string`&&t.text.length>0?o(t.text):typeof t.blob==`string`&&typeof t.mimeType==`string`&&t.mimeType.startsWith(`image/`)?s(t.blob,t.mimeType):o(`[resource: ${typeof t.uri==`string`?t.uri:`<unknown>`} (${typeof t.mimeType==`string`?t.mimeType:`unknown`})]`)}case`resource_link`:{let t=e,n=typeof t.uri==`string`?t.uri:`<unknown>`;return o(`[resource_link${typeof t.name==`string`?` "${t.name}"`:``}: ${n}]`)}default:return o(`[unsupported tool content block: ${String(e.type)}]`)}}function ee(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let{_meta:t,...n}=e;return n}return e}function te(e){let t=ee(e);if(typeof t==`string`)return t.length>0?[o(t)]:[];if(c(t)){let e=t,n=[];if(Array.isArray(e.content))for(let t of e.content){let e=u(t);e&&n.push(e)}if(e.structuredContent!==void 0)try{n.push(o(`structuredContent: ${JSON.stringify(e.structuredContent)}`))}catch{}return e.isError&&n.unshift(o(`[tool reported isError=true]`)),n}try{return[o(JSON.stringify(t))]}catch{return[o(String(t))]}}function ne(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
3
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(`
@@ -9,13 +9,13 @@ import{At as e,Mt as t,kt as n}from"./index-CoRK2C3M.js";var r=class{disallowedT
9
9
  `),n=e.indexOf(`\r
10
10
  \r
11
11
  `);return t===-1?n:n===-1?t:Math.min(t,n)}function _(e){let t,n=[];for(let r of e.split(/\r?\n/)){if(!r||r.startsWith(`:`))continue;let e=r.indexOf(`:`),i=e===-1?r:r.slice(0,e),a=e===-1?``:r.slice(e+1);a.startsWith(` `)&&(a=a.slice(1)),i===`event`?t=a:i===`data`&&n.push(a)}return n.length===0?null:{event:t,data:n.join(`
12
- `)}}function v(e,...t){for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t}}function y(e){if(!e||typeof e!=`object`)return;let t=e,n=v(t,`inputTokens`,`input_tokens`,`prompt_tokens`,`promptTokenCount`,`prompt_eval_count`),r=v(t,`outputTokens`,`output_tokens`,`completion_tokens`,`candidatesTokenCount`,`eval_count`),i=v(t,`totalTokens`,`total_tokens`,`totalTokenCount`)??(n!==void 0&&r!==void 0?n+r:void 0),a=t.input_tokens_details&&typeof t.input_tokens_details==`object`?t.input_tokens_details:void 0,o=t.output_tokens_details&&typeof t.output_tokens_details==`object`?t.output_tokens_details:void 0,s=v(t,`cachedInputTokens`,`cache_read_input_tokens`)??(a?v(a,`cached_tokens`):void 0),c=v(t,`reasoningTokens`,`thoughtsTokenCount`)??(o?v(o,`reasoning_tokens`):void 0);if(!(n===void 0&&r===void 0&&i===void 0&&s===void 0&&c===void 0))return{inputTokens:n,outputTokens:r,totalTokens:i,cachedInputTokens:s,reasoningTokens:c}}var b=`https://api.anthropic.com/v1/messages`,x=`2023-06-01`,oe=4096;function S(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}};let t=h(e.url);return t?{type:`image`,source:{type:`base64`,media_type:t.mimeType,data:t.data}}:{type:`image`,source:{type:`url`,url:e.url}}}function se(e){if(typeof e==`string`)return[{type:`text`,text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else{let e=S(n);e&&t.push(e)}return t.length===0&&t.push({type:`text`,text:`[no content]`}),t}function ce(e){if(typeof e==`string`)return e;let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else if(n.type===`image`){let e=S(n);e&&t.push(e)}return t.length===0?`[no content]`:t}function le(e){let t=[];for(let n of e){if(n.role===`tool`){let e=t[t.length-1],r={type:`tool_result`,tool_use_id:n.toolCallId,content:ce(n.content),...n.toolIsError?{is_error:!0}:{}};e&&e.role===`user`&&Array.isArray(e.content)?e.content.push(r):t.push({role:`user`,content:[r]});continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({type:`text`,text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({type:`tool_use`,id:t.id,name:t.name,input:t.args??{}});e.length===0&&e.push({type:`text`,text:`[no content]`}),t.push({role:`assistant`,content:e});continue}t.push({role:`user`,content:se(n.content)})}return t}function C(e,t){let{config:n,messages:r,tools:i}=e,{system:a,rest:o}=ie(r),s={model:n.model,max_tokens:n.maxTokens??oe,messages:le(o),...t?{stream:!0}:{}};return n.temperature!==void 0&&(s.temperature=n.temperature),a&&(s.system=a),i&&i.length>0&&(s.tools=i.map(e=>({name:e.name,description:e.description,input_schema:e.inputSchema}))),s}async function*ue(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!0)),signal:n});if(!r.ok||!r.body){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=new Map,a;for await(let e of g(r.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}let n=t?.type;if(n===`message_start`)a=y(t?.message?.usage);else if(n===`message_delta`){let e=y(t?.usage);e&&(a={...a,...e})}else if(n===`content_block_start`){let e=t.index,n=t.content_block??{};if(n.type===`tool_use`){i.set(e,{kind:`tool_use`,id:n.id,name:n.name,argsJson:``,emittedStart:!1}),yield{type:`tool-call-start`,index:e,toolCallId:n.id,toolName:n.name};let t=i.get(e);t&&(t.emittedStart=!0)}else i.set(e,{kind:`text`,argsJson:``,emittedStart:!1})}else if(n===`content_block_delta`){let e=t.index,n=t.delta??{},r=i.get(e);if(!r)continue;n.type===`text_delta`&&typeof n.text==`string`?yield{type:`text-delta`,delta:n.text}:n.type===`input_json_delta`&&typeof n.partial_json==`string`&&r.kind===`tool_use`&&(r.argsJson+=n.partial_json,yield{type:`tool-call-args-delta`,index:e,toolCallId:r.id,toolName:r.name,argsDelta:n.partial_json})}else if(n===`content_block_stop`){let e=t.index,n=i.get(e);if(n&&n.kind===`tool_use`&&n.id&&n.name){let t={};if(n.argsJson)try{t=JSON.parse(n.argsJson)}catch{t={}}yield{type:`tool-call-ready`,index:e,toolCallId:n.id,toolName:n.name,args:t}}}else if(n===`message_stop`){if(a){let e=a.totalTokens??(a.inputTokens!==void 0&&a.outputTokens!==void 0?a.inputTokens+a.outputTokens:void 0);yield{type:`usage`,usage:{...a,totalTokens:e}}}}else n===`error`&&(yield{type:`error`,message:t?.error?.message??`Anthropic stream error`})}yield{type:`done`}}async function de(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!1)),signal:n});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=await r.json(),a=``,o=[];for(let e of i?.content??[])e.type===`text`&&typeof e.text==`string`?a+=e.text:e.type===`tool_use`&&o.push({id:e.id,name:e.name,args:e.input&&typeof e.input==`object`?e.input:{}});return{text:a,toolCalls:o}}var fe=new Set([`type`,`description`,`enum`,`properties`,`required`,`items`,`format`,`nullable`,`minimum`,`maximum`,`minItems`,`maxItems`,`minLength`,`maxLength`,`pattern`]);function pe(e){if(!e||typeof e!=`object`)return{type:`object`};let t=w(e);if(typeof t!=`object`||!t)return{type:`object`};let n=t;return n.type||=`object`,n}function w(e){if(Array.isArray(e))return e.map(w);if(!e||typeof e!=`object`)return e;let t=e;for(let e of[`oneOf`,`anyOf`,`allOf`]){let n=t[e];if(Array.isArray(n)&&n.length===1)return w(n[0])}let n={};for(let[e,r]of Object.entries(t))if(fe.has(e))if(e===`properties`&&r&&typeof r==`object`){let t={};for(let[e,n]of Object.entries(r))t[e]=w(n);n[e]=t}else e===`items`?n[e]=w(r):n[e]=r;return n}function me(e){let t=e.trim();return t.startsWith(`models/`)?t.slice(7):t}function he(e,t){let n=t===`stream`?`streamGenerateContent?alt=sse`:`generateContent`;return`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(me(e))}:${n}`}function ge(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{inlineData:{mimeType:e.mimeType,data:e.data}};let t=h(e.url);return t?{inlineData:{mimeType:t.mimeType,data:t.data}}:null}function _e(e){if(typeof e==`string`)return[{text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({text:n.text});else{let e=ge(n);e&&t.push(e)}return t.length===0&&t.push({text:`[no content]`}),t}function ve(e){if(typeof e==`string`){let t;try{t=JSON.parse(e)}catch{t={result:e}}return(!t||typeof t!=`object`)&&(t={result:t}),{response:t,imageParts:[]}}let{text:t,imageParts:n}=f(e),r={};return t&&(r.text=t),n.length>0&&(r.images=n.map(e=>({mimeType:e.mimeType??`image/*`,omitted:!0})),r.note=`Image bytes were sent in the next user turn as inlineData.`),Object.keys(r).length===0&&(r.result=null),{response:r,imageParts:n}}function ye(e){let t=[];for(let n of e){if(n.role===`tool`){let{response:e,imageParts:r}=ve(n.content),i=t[t.length-1],a={functionResponse:{name:n.toolName,response:e}};if(i&&i.role===`function`?i.parts.push(a):t.push({role:`function`,parts:[a]}),r.length>0){let e=[{text:p(n.toolName,r.length)}];for(let t of r){let n=ge(t);n&&e.push(n)}t.push({role:`user`,parts:e})}continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({functionCall:{name:t.name,args:t.args??{}}});e.length===0&&e.push({text:`[no content]`}),t.push({role:`model`,parts:e});continue}t.push({role:`user`,parts:_e(n.content)})}return t}function T(e){let{config:t,messages:n,tools:r}=e,{system:i,rest:a}=ie(n),o={contents:ye(a)};i&&(o.systemInstruction={parts:[{text:i}]});let s={};return t.temperature!==void 0&&(s.temperature=t.temperature),t.maxTokens!==void 0&&(s.maxOutputTokens=t.maxTokens),Object.keys(s).length>0&&(o.generationConfig=s),r&&r.length>0&&(o.tools=[{functionDeclarations:r.map(e=>({name:e.name,description:e.description,parameters:pe(e.inputSchema)}))}]),o}async function*be(e){let{config:t,signal:n}=e,r=`${he(t.model,`stream`)}&key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok||!i.body){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=0,o;for await(let e of g(i.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}o=y(t?.usageMetadata)??o;let n=t?.candidates?.[0]?.content?.parts??[];for(let e of n)if(typeof e.text==`string`&&e.text.length>0)yield{type:`text-delta`,delta:e.text};else if(e.functionCall&&typeof e.functionCall==`object`){let t=a++,n=`call_${t}_${e.functionCall.name??`tool`}`,r=e.functionCall.name??``,i=e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{};yield{type:`tool-call-start`,index:t,toolCallId:n,toolName:r};let o=JSON.stringify(i);o&&o!==`{}`&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:n,toolName:r,argsDelta:o}),yield{type:`tool-call-ready`,index:t,toolCallId:n,toolName:r,args:i}}}o&&(yield{type:`usage`,usage:o}),yield{type:`done`}}async function xe(e){let{config:t,signal:n}=e,r=`${he(t.model,`single`)}?key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=await i.json(),o=``,s=[],c=a?.candidates?.[0]?.content?.parts??[];for(let e of c)typeof e.text==`string`?o+=e.text:e.functionCall&&s.push({id:`call_${s.length}_${e.functionCall.name??`tool`}`,name:e.functionCall.name??``,args:e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{}});return{text:o,toolCalls:s}}async function*Se(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;;){if(t?.aborted)return;let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
12
+ `)}}function v(e,...t){for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t}}function y(e){if(!e||typeof e!=`object`)return;let t=e,n=v(t,`inputTokens`,`input_tokens`,`prompt_tokens`,`promptTokenCount`,`prompt_eval_count`),r=v(t,`outputTokens`,`output_tokens`,`completion_tokens`,`candidatesTokenCount`,`eval_count`),i=v(t,`totalTokens`,`total_tokens`,`totalTokenCount`)??(n!==void 0&&r!==void 0?n+r:void 0),a=t.input_tokens_details&&typeof t.input_tokens_details==`object`?t.input_tokens_details:void 0,o=t.output_tokens_details&&typeof t.output_tokens_details==`object`?t.output_tokens_details:void 0,s=v(t,`cachedInputTokens`,`cache_read_input_tokens`)??(a?v(a,`cached_tokens`):void 0),c=v(t,`reasoningTokens`,`thoughtsTokenCount`)??(o?v(o,`reasoning_tokens`):void 0);if(!(n===void 0&&r===void 0&&i===void 0&&s===void 0&&c===void 0))return{inputTokens:n,outputTokens:r,totalTokens:i,cachedInputTokens:s,reasoningTokens:c}}var b=`https://api.anthropic.com/v1/messages`,x=`2023-06-01`,oe=4096;function S(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}};let t=h(e.url);return t?{type:`image`,source:{type:`base64`,media_type:t.mimeType,data:t.data}}:{type:`image`,source:{type:`url`,url:e.url}}}function se(e){if(typeof e==`string`)return[{type:`text`,text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else{let e=S(n);e&&t.push(e)}return t.length===0&&t.push({type:`text`,text:`[no content]`}),t}function ce(e){if(typeof e==`string`)return e;let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({type:`text`,text:n.text});else if(n.type===`image`){let e=S(n);e&&t.push(e)}return t.length===0?`[no content]`:t}function le(e){let t=[];for(let n of e){if(n.role===`tool`){let e=t[t.length-1],r={type:`tool_result`,tool_use_id:n.toolCallId,content:ce(n.content),...n.toolIsError?{is_error:!0}:{}};e&&e.role===`user`&&Array.isArray(e.content)?e.content.push(r):t.push({role:`user`,content:[r]});continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({type:`text`,text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({type:`tool_use`,id:t.id,name:t.name,input:t.args??{}});e.length===0&&e.push({type:`text`,text:`[no content]`}),t.push({role:`assistant`,content:e});continue}t.push({role:`user`,content:se(n.content)})}return t}function C(e,t){let{config:n,messages:r,tools:i}=e,{system:a,rest:o}=ie(r),s={model:n.model,max_tokens:n.maxTokens??oe,messages:le(o),...t?{stream:!0}:{}};return n.temperature!==void 0&&(s.temperature=n.temperature),a&&(s.system=a),i&&i.length>0&&(s.tools=i.map(e=>({name:e.name,description:e.description,input_schema:e.inputSchema,...t?{eager_input_streaming:!0}:{}}))),s}async function*ue(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!0)),signal:n});if(!r.ok||!r.body){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=new Map,a;for await(let e of g(r.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}let n=t?.type;if(n===`message_start`)a=y(t?.message?.usage);else if(n===`message_delta`){let e=y(t?.usage);e&&(a={...a,...e})}else if(n===`content_block_start`){let e=t.index,n=t.content_block??{};if(n.type===`tool_use`){i.set(e,{kind:`tool_use`,id:n.id,name:n.name,argsJson:``,emittedStart:!1}),yield{type:`tool-call-start`,index:e,toolCallId:n.id,toolName:n.name};let t=i.get(e);t&&(t.emittedStart=!0)}else i.set(e,{kind:`text`,argsJson:``,emittedStart:!1})}else if(n===`content_block_delta`){let e=t.index,n=t.delta??{},r=i.get(e);if(!r)continue;n.type===`text_delta`&&typeof n.text==`string`?yield{type:`text-delta`,delta:n.text}:n.type===`input_json_delta`&&typeof n.partial_json==`string`&&r.kind===`tool_use`&&(r.argsJson+=n.partial_json,yield{type:`tool-call-args-delta`,index:e,toolCallId:r.id,toolName:r.name,argsDelta:n.partial_json})}else if(n===`content_block_stop`){let e=t.index,n=i.get(e);if(n&&n.kind===`tool_use`&&n.id&&n.name){let t={};if(n.argsJson)try{t=JSON.parse(n.argsJson)}catch{t={}}yield{type:`tool-call-ready`,index:e,toolCallId:n.id,toolName:n.name,args:t}}}else if(n===`message_stop`){if(a){let e=a.totalTokens??(a.inputTokens!==void 0&&a.outputTokens!==void 0?a.inputTokens+a.outputTokens:void 0);yield{type:`usage`,usage:{...a,totalTokens:e}}}}else n===`error`&&(yield{type:`error`,message:t?.error?.message??`Anthropic stream error`})}yield{type:`done`}}async function de(e){let{config:t,signal:n}=e,r=await fetch(b,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":t.apiKey,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`},body:JSON.stringify(C(e,!1)),signal:n});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Anthropic request failed (${r.status} ${r.statusText}): ${e}`)}let i=await r.json(),a=``,o=[];for(let e of i?.content??[])e.type===`text`&&typeof e.text==`string`?a+=e.text:e.type===`tool_use`&&o.push({id:e.id,name:e.name,args:e.input&&typeof e.input==`object`?e.input:{}});return{text:a,toolCalls:o}}var fe=new Set([`type`,`description`,`enum`,`properties`,`required`,`items`,`format`,`nullable`,`minimum`,`maximum`,`minItems`,`maxItems`,`minLength`,`maxLength`,`pattern`]);function pe(e){if(!e||typeof e!=`object`)return{type:`object`};let t=w(e);if(typeof t!=`object`||!t)return{type:`object`};let n=t;return n.type||=`object`,n}function w(e){if(Array.isArray(e))return e.map(w);if(!e||typeof e!=`object`)return e;let t=e;for(let e of[`oneOf`,`anyOf`,`allOf`]){let n=t[e];if(Array.isArray(n)&&n.length===1)return w(n[0])}let n={};for(let[e,r]of Object.entries(t))if(fe.has(e))if(e===`properties`&&r&&typeof r==`object`){let t={};for(let[e,n]of Object.entries(r))t[e]=w(n);n[e]=t}else e===`items`?n[e]=w(r):n[e]=r;return n}function me(e){let t=e.trim();return t.startsWith(`models/`)?t.slice(7):t}function he(e,t){let n=t===`stream`?`streamGenerateContent?alt=sse`:`generateContent`;return`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(me(e))}:${n}`}function ge(e){if(e.type!==`image`)return null;if(e.data&&e.mimeType)return{inlineData:{mimeType:e.mimeType,data:e.data}};let t=h(e.url);return t?{inlineData:{mimeType:t.mimeType,data:t.data}}:null}function _e(e){if(typeof e==`string`)return[{text:e||`[no content]`}];let t=[];for(let n of e)if(n.type===`text`)n.text&&t.push({text:n.text});else{let e=ge(n);e&&t.push(e)}return t.length===0&&t.push({text:`[no content]`}),t}function ve(e){if(typeof e==`string`){let t;try{t=JSON.parse(e)}catch{t={result:e}}return(!t||typeof t!=`object`)&&(t={result:t}),{response:t,imageParts:[]}}let{text:t,imageParts:n}=f(e),r={};return t&&(r.text=t),n.length>0&&(r.images=n.map(e=>({mimeType:e.mimeType??`image/*`,omitted:!0})),r.note=`Image bytes were sent in the next user turn as inlineData.`),Object.keys(r).length===0&&(r.result=null),{response:r,imageParts:n}}function ye(e){let t=[];for(let n of e){if(n.role===`tool`){let{response:e,imageParts:r}=ve(n.content),i=t[t.length-1],a={functionResponse:{name:n.toolName,response:e}};if(i&&i.role===`function`?i.parts.push(a):t.push({role:`function`,parts:[a]}),r.length>0){let e=[{text:p(n.toolName,r.length)}];for(let t of r){let n=ge(t);n&&e.push(n)}t.push({role:`user`,parts:e})}continue}if(n.role===`assistant`){let e=[],r=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.map(e=>e.type===`text`?e.text:``).join(``):``;if(r&&e.push({text:r}),n.toolCalls?.length)for(let t of n.toolCalls)e.push({functionCall:{name:t.name,args:t.args??{}}});e.length===0&&e.push({text:`[no content]`}),t.push({role:`model`,parts:e});continue}t.push({role:`user`,parts:_e(n.content)})}return t}function T(e){let{config:t,messages:n,tools:r}=e,{system:i,rest:a}=ie(n),o={contents:ye(a)};i&&(o.systemInstruction={parts:[{text:i}]});let s={};return t.temperature!==void 0&&(s.temperature=t.temperature),t.maxTokens!==void 0&&(s.maxOutputTokens=t.maxTokens),Object.keys(s).length>0&&(o.generationConfig=s),r&&r.length>0&&(o.tools=[{functionDeclarations:r.map(e=>({name:e.name,description:e.description,parameters:pe(e.inputSchema)}))}]),o}async function*be(e){let{config:t,signal:n}=e,r=`${he(t.model,`stream`)}&key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok||!i.body){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=0,o;for await(let e of g(i.body,n)){let t;try{t=JSON.parse(e.data)}catch{continue}o=y(t?.usageMetadata)??o;let n=t?.candidates?.[0]?.content?.parts??[];for(let e of n)if(typeof e.text==`string`&&e.text.length>0)yield{type:`text-delta`,delta:e.text};else if(e.functionCall&&typeof e.functionCall==`object`){let t=a++,n=`call_${t}_${e.functionCall.name??`tool`}`,r=e.functionCall.name??``,i=e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{};yield{type:`tool-call-start`,index:t,toolCallId:n,toolName:r};let o=JSON.stringify(i);o&&o!==`{}`&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:n,toolName:r,argsDelta:o}),yield{type:`tool-call-ready`,index:t,toolCallId:n,toolName:r,args:i}}}o&&(yield{type:`usage`,usage:o}),yield{type:`done`}}async function xe(e){let{config:t,signal:n}=e,r=`${he(t.model,`single`)}?key=${encodeURIComponent(t.apiKey)}`,i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:n});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`Google request failed (${i.status} ${i.statusText}): ${e}`)}let a=await i.json(),o=``,s=[],c=a?.candidates?.[0]?.content?.parts??[];for(let e of c)typeof e.text==`string`?o+=e.text:e.functionCall&&s.push({id:`call_${s.length}_${e.functionCall.name??`tool`}`,name:e.functionCall.name??``,args:e.functionCall.args&&typeof e.functionCall.args==`object`?e.functionCall.args:{}});return{text:o,toolCalls:s}}async function*Se(e,t){let n=e.getReader(),r=new TextDecoder,i=``;try{for(;;){if(t?.aborted)return;let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
13
13
  `);i=o.pop()??``;for(let e of o){let t=e.trim();if(t)try{yield JSON.parse(t)}catch{}}}let e=i.trim();if(e)try{yield JSON.parse(e)}catch{}}finally{n.releaseLock()}}var Ce=`http://localhost:11434`;function E(e){let t=(e||`http://localhost:11434`).trim(),n=t.length;for(;n>0&&t.charCodeAt(n-1)===47;)n--;let r=t.slice(0,n);return r.endsWith(`/api`)?r.slice(0,-4):r}function D(e,t){return`${E(e)}${t}`}var we=class extends Error{constructor(e){super("Could not reach Ollama. If it's running, allow this origin by starting Ollama with `OLLAMA_ORIGINS=*` (or your inspector origin) and try again."),this.name=`OllamaCorsError`,this.cause=e}};function Te(e){let t=[];for(let n of e){if(n.type!==`image`)continue;if(n.data){t.push(n.data);continue}let e=h(n.url);e?.data&&t.push(e.data)}return t}function O(e){if(typeof e==`string`)return{content:e};let t=e.filter(e=>e.type===`text`).map(e=>e.text).join(``),n=Te(e);return{content:t,...n.length>0?{images:n}:{}}}function Ee(e){return e.map(e=>e.role===`tool`?{role:`tool`,tool_name:e.toolName,content:typeof e.content==`string`?e.content:JSON.stringify(e.toolResult??e.content)}:e.role===`assistant`?{role:`assistant`,...typeof e.content==`string`?{content:e.content}:O(e.content),...e.toolCalls?.length?{tool_calls:e.toolCalls.map((e,t)=>({type:`function`,function:{index:t,name:e.name,arguments:e.args}}))}:{}}:{role:e.role,...O(e.content)})}function k(e,t){let{config:n,messages:r,tools:i}=e,a={model:n.model,messages:Ee(r),stream:t},o={};return n.temperature!==void 0&&(o.temperature=n.temperature),n.maxTokens!==void 0&&(o.num_predict=n.maxTokens),Object.keys(o).length>0&&(a.options=o),i&&i.length>0&&(a.tools=i.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}}))),a}function A(e){return{"Content-Type":`application/json`,...e.apiKey.trim()?{Authorization:`Bearer ${e.apiKey.trim()}`}:{}}}function j(e){return Array.isArray(e)?e.map(e=>{let t=e&&typeof e==`object`?e.function:void 0,n=typeof t?.name==`string`?t.name:``,r=t?.arguments;return{name:n,args:r&&typeof r==`object`?r:{}}}).filter(e=>e.name):[]}async function*De(e){let{config:t,signal:n}=e,r=await fetch(D(t.baseUrl,`/api/chat`),{method:`POST`,headers:A(t),body:JSON.stringify(k(e,!0)),signal:n});if(!r.ok||!r.body){let e=await r.text().catch(()=>``);throw Error(`Ollama request failed (${r.status} ${r.statusText}): ${e}`)}let i=!1,a;for await(let e of Se(r.body,n)){let t=e&&typeof e==`object`?e.message:void 0;if(typeof t?.content==`string`&&t.content.length>0&&(yield{type:`text-delta`,delta:t.content}),!i){let e=j(t?.tool_calls);if(e.length>0){for(let[t,n]of e.entries()){let e=`call_${t}_${n.name||`tool`}`;yield{type:`tool-call-start`,index:t,toolCallId:e,toolName:n.name};let r=JSON.stringify(n.args);r&&r!==`{}`&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:e,toolName:n.name,argsDelta:r}),yield{type:`tool-call-ready`,index:t,toolCallId:e,toolName:n.name,args:n.args}}i=!0}}e&&typeof e==`object`&&e.error&&(yield{type:`error`,message:String(e.error)}),a=y(e)??a}a&&(yield{type:`usage`,usage:a}),yield{type:`done`}}async function Oe(e){let{config:t,signal:n}=e,r=await fetch(D(t.baseUrl,`/api/chat`),{method:`POST`,headers:A(t),body:JSON.stringify(k(e,!1)),signal:n});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Ollama request failed (${r.status} ${r.statusText}): ${e}`)}let i=(await r.json())?.message??{};return{text:typeof i.content==`string`?i.content:``,toolCalls:j(i.tool_calls).map((e,t)=>({id:`call_${t}_${e.name||`tool`}`,name:e.name,args:e.args}))}}var M=class extends Error{status;body;constructor(e,t,n){super(t),this.name=`LlmRequestError`,this.status=e,this.body=n}};async function N(e){let t=await e.text().catch(()=>``),n=t;if(t)try{n=JSON.parse(t)}catch{}throw new M(e.status,`OpenAI request failed (${e.status} ${e.statusText}): ${t}`,n)}var ke=`https://api.openai.com/v1`;function P(e,t){return`${e.baseUrl??ke}${t}`}function F(e){let t={"Content-Type":`application/json`,...e.extraHeaders};return e.apiKey&&(t.Authorization=`Bearer ${e.apiKey}`),t}function Ae(e){return typeof e==`string`?e:e.map(e=>e.type===`text`?{type:`text`,text:e.text}:{type:`image_url`,image_url:{url:e.url}})}function I(e){let t=[];for(let n of e){if(n.role===`tool`){let{text:e,imageParts:r}=f(n.content),i=r.length>0?`[image content; see next message]`:`[no content]`;if(t.push({role:`tool`,tool_call_id:n.toolCallId,content:e||i}),r.length>0){let e=[{type:`text`,text:p(n.toolName,r.length)},...r.map(e=>({type:`image_url`,image_url:{url:e.url}}))];t.push({role:`user`,content:e})}continue}if(n.role===`assistant`){let e={role:`assistant`,content:typeof n.content==`string`&&n.content.length>0?n.content:null};n.toolCalls?.length&&(e.tool_calls=n.toolCalls.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.args)}}))),t.push(e);continue}t.push({role:n.role,content:Ae(n.content)})}return t}async function*L(e){let{config:t,messages:n,tools:r,signal:i}=e,a={model:t.model,messages:I(n),stream:!0};t.provider===`openrouter`&&(a.stream_options={include_usage:!0}),t.temperature!==void 0&&(a.temperature=t.temperature),t.maxTokens!==void 0&&(a.max_tokens=t.maxTokens),r&&r.length>0&&(a.tools=r.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}})));let o=P(t,`/chat/completions`),s=await fetch(o,{method:`POST`,headers:F(t),body:JSON.stringify(a),signal:i,...t.credentials?{credentials:t.credentials}:{}}),c=s.body;s.ok||await N(s),c||await N(s);let l=c,u=new Map;for await(let e of g(l,i)){if(!e.data||e.data===`[DONE]`)continue;let t;try{t=JSON.parse(e.data)}catch{continue}let n=y(t?.usage);n&&(yield{type:`usage`,usage:n});let r=t?.choices?.[0];if(!r)continue;let i=r.delta??{};if(typeof i.content==`string`&&i.content.length>0&&(yield{type:`text-delta`,delta:i.content}),Array.isArray(i.tool_calls))for(let e of i.tool_calls){let t=typeof e.index==`number`?e.index:0,n=u.get(t);n||(n={id:e.id??`call_${t}`,name:e.function?.name??``,argsJson:``,started:!1},u.set(t,n)),(e.id&&!n.id.startsWith(`call_`)||e.id)&&(n.id=e.id),e.function?.name&&(n.name=e.function.name),!n.started&&n.name&&(n.started=!0,yield{type:`tool-call-start`,index:t,toolCallId:n.id,toolName:n.name});let r=e.function?.arguments;typeof r==`string`&&r.length>0&&(n.argsJson+=r,n.started&&(yield{type:`tool-call-args-delta`,index:t,toolCallId:n.id,toolName:n.name,argsDelta:r}))}if(r.finish_reason){for(let[e,t]of u){let n={};if(t.argsJson)try{n=JSON.parse(t.argsJson)}catch{n={}}yield{type:`tool-call-ready`,index:e,toolCallId:t.id,toolName:t.name,args:n}}u.clear()}}yield{type:`done`}}async function R(e){let{config:t,messages:n,tools:r,signal:i}=e,a={model:t.model,messages:I(n)};t.temperature!==void 0&&(a.temperature=t.temperature),t.maxTokens!==void 0&&(a.max_tokens=t.maxTokens),r&&r.length>0&&(a.tools=r.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}})));let o=P(t,`/chat/completions`),s=await fetch(o,{method:`POST`,headers:F(t),body:JSON.stringify(a),signal:i,...t.credentials?{credentials:t.credentials}:{}});s.ok||await N(s);let c=(await s.json())?.choices?.[0]?.message;return{text:typeof c?.content==`string`?c.content:``,toolCalls:Array.isArray(c?.tool_calls)?c.tool_calls.map(e=>{let t={};try{t=JSON.parse(e?.function?.arguments??`{}`)}catch{t={}}return{id:e.id,name:e.function?.name??``,args:t}}):[]}}function z(e){return{...e,config:{...e.config,baseUrl:`https://openrouter.ai/api/v1`,extraHeaders:{"HTTP-Referer":`https://inspector.mcp-use.com`,"X-Title":`mcp-use Inspector`}}}}function je(e){switch(e.config.provider){case`openai`:throw Error(`provider 'openai' uses the Responses API via OpenAIResponsesDriver, not streamChat`);case`openai-compatible`:return L(e);case`anthropic`:return ue(e);case`google`:return be(e);case`openrouter`:return L(z(e));case`ollama`:return De(e);default:throw Error(`Unsupported LLM provider: ${e.config.provider}`)}}function Me(e){switch(e.config.provider){case`openai`:throw Error(`provider 'openai' uses the Responses API via OpenAIResponsesDriver, not chat`);case`openai-compatible`:return R(e);case`anthropic`:return de(e);case`google`:return xe(e);case`openrouter`:return R(z(e));case`ollama`:return Oe(e);default:throw Error(`Unsupported LLM provider: ${e.config.provider}`)}}var Ne=`https://api.openai.com/v1`;function B(e,t){return`${(e.baseUrl??Ne).replace(/\/$/,``)}${t}`}function V(e){let t={"Content-Type":`application/json`,...e.extraHeaders};return e.apiKey&&(t.Authorization=`Bearer ${e.apiKey}`),t}async function H(e){let t=await e.text().catch(()=>``);return`OpenAI request failed (${e.status} ${e.statusText}): ${t}`}function Pe(e){return typeof e==`string`?e:e.map(e=>e.type===`text`?{type:`input_text`,text:e.text}:{type:`input_image`,image_url:e.url})}function U(e){let t=[],n=[];for(let r of e){if(r.role===`system`){let e=typeof r.content==`string`?r.content:r.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
14
14
  `);e&&t.push(e);continue}if(r.role===`user`){n.push({role:`user`,content:Pe(r.content)});continue}if(r.role===`assistant`){typeof r.content==`string`&&r.content.length>0&&n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r.content}]});for(let e of r.toolCalls??[])n.push({type:`function_call`,call_id:e.id,name:e.name,arguments:JSON.stringify(e.args)});continue}if(r.role===`tool`){let{text:e,imageParts:t}=f(r.content),i=t.length>0?`[image content; see next message]`:`[no content]`;n.push({type:`function_call_output`,call_id:r.toolCallId,output:e||i}),t.length>0&&n.push({role:`user`,content:[{type:`input_text`,text:p(r.toolName,t.length)},...t.map(e=>({type:`input_image`,image_url:e.url}))]})}}return{instructions:t.length>0?t.join(`
15
15
 
16
- `):void 0,input:n}}function Fe(e){return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.inputSchema,strict:!1}))}function W(e,t,n,r){let i=d(r);if(typeof i==`string`){e.push({type:`function_call_output`,call_id:t,output:i});return}let{text:a,imageParts:o}=f(i);e.push({type:`function_call_output`,call_id:t,output:a||`[image content; see next message]`}),o.length>0&&e.push({role:`user`,content:[{type:`input_text`,text:p(n,o.length)},...o.map(e=>({type:`input_image`,image_url:e.url}))]})}function G(e,t){let n={model:e.config.model,input:e.input,store:!1,include:[`reasoning.encrypted_content`],reasoning:{effort:e.config.reasoningEffort??`low`},stream:t};return e.instructions&&(n.instructions=e.instructions),e.tools&&e.tools.length>0&&(n.tools=Fe(e.tools)),e.config.maxTokens!==void 0&&(n.max_output_tokens=e.config.maxTokens),n}function K(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.type===`function_call`&&(typeof e.call_id!=`string`||typeof e.name!=`string`||t.push({call_id:e.call_id,name:e.name,arguments:typeof e.arguments==`string`?e.arguments:`{}`}))}return t}function Ie(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(e.type!==`message`||e.role!==`assistant`)continue;let r=e.content;if(Array.isArray(r))for(let e of r){if(!e||typeof e!=`object`)continue;let n=e;n.type===`output_text`&&typeof n.text==`string`&&t.push(n.text)}}return t.join(``)}function q(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}}async function*J(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!0)),signal:e.signal});if(!t.ok||!t.body)throw Error(await H(t));let n=new Map,r=0,i=[];for await(let a of g(t.body,e.signal)){if(!a.data||a.data===`[DONE]`)continue;let e;try{e=JSON.parse(a.data)}catch{continue}let t=typeof e.type==`string`?e.type:a.event;if(t===`response.output_text.delta`){let t=e.delta;typeof t==`string`&&t.length>0&&(yield{type:`text-delta`,delta:t});continue}if(t===`response.output_item.added`){let t=e.item;if(t?.type===`function_call`){let e=typeof t.call_id==`string`?t.call_id:`call_${r}`,i=typeof t.name==`string`?t.name:``,a=r++;n.set(e,{index:a,name:i,argsJson:``,started:!0}),yield{type:`tool-call-start`,index:a,toolCallId:e,toolName:i}}continue}if(t===`response.function_call_arguments.delta`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.delta==`string`?e.delta:``,i=n.get(t);i&&r.length>0&&(i.argsJson+=r,yield{type:`tool-call-args-delta`,index:i.index,toolCallId:t,toolName:i.name,argsDelta:r});continue}if(t===`response.function_call_arguments.done`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.arguments==`string`?e.arguments:``,i=n.get(t);i&&(r&&(i.argsJson=r),yield{type:`tool-call-ready`,index:i.index,toolCallId:t,toolName:i.name,args:q(i.argsJson||r)});continue}if(t===`response.completed`){let t=e.response;t&&Array.isArray(t.output)&&(i=t.output);let n=y(t?.usage);n&&(yield{type:`usage`,usage:n});continue}if(t===`error`)return yield{type:`error`,message:typeof e.message==`string`?e.message:`OpenAI Responses stream error`},[]}return yield{type:`done`},i}async function Y(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!1)),signal:e.signal});if(!t.ok)throw Error(await H(t));let n=await t.json(),r=n.status;if(r!==`completed`&&r!==void 0)throw Error(`OpenAI response ended with status ${String(r)}`);let i=Array.isArray(n.output)?n.output:[],a=K(i);return{text:typeof n.output_text==`string`?n.output_text:Ie(i),output:i,toolCalls:a.map(e=>({id:e.call_id,name:e.name,args:q(e.arguments)}))}}var Le=class{constructor(e){this.config=e}managesToolLoop=!0;stream(e){return this.streamSingleTurn(e)}async complete(e){let{instructions:t,input:n}=U(e.messages),r=await Y({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});return{text:r.text,toolCalls:r.toolCalls}}async*streamToolLoop(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10;for(let n=0;n<i;n++){if(e.signal?.aborted)return;let n=J({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal}),i=[];for(;;){let e=await n.next();if(e.done){i=e.value??[];break}if(yield e.value,e.value.type===`error`)return}r.push(...i);let a=K(i);if(a.length===0)return;for(let t of a){if(e.signal?.aborted)return;let n={};try{n=JSON.parse(t.arguments)}catch{n={}}let i,a=!1;try{i=await e.callTool(t.name,n),a=l(i)}catch(e){a=!0,i={isError:!0,error:e instanceof Error?e.message:String(e)}}W(r,t.call_id,t.name,i),yield{type:`tool-result`,toolCallId:t.call_id,toolName:t.name,result:i,isError:a}}}}async runToolLoopNonStreaming(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10,a=[],o=``;for(let n=0;n<i&&!e.signal?.aborted;n++){let n=await Y({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal});if(r.push(...n.output),n.toolCalls.length===0){o=n.text;break}for(let t of n.toolCalls){let n;try{n=await e.callTool(t.name,t.args),l(n)}catch(e){n={isError:!0,error:e instanceof Error?e.message:String(e)}}a.push({toolName:t.name,args:t.args,result:n}),W(r,t.id,t.name,n)}}return{content:o,toolCalls:a}}async*streamSingleTurn(e){let{instructions:t,input:n}=U(e.messages),r=J({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});for(;;){let e=await r.next();if(e.done||(yield e.value,e.value.type===`error`))return}}};function X(e){return e.provider===`openai`?new Le(e):new Re(e)}var Re=class{constructor(e){this.config=e}stream(e){return je({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal})}async complete(e){let t=await Me({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal});return{text:t.text,toolCalls:t.toolCalls}}};async function*ze(e){if(e.driver.managesToolLoop&&e.driver.streamToolLoop){yield*e.driver.streamToolLoop(e);return}let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages];for(let e=0;e<a;e++){if(i?.aborted)return;let e=[],a=``;try{for await(let r of t.stream({messages:o,tools:n,signal:i}))r.type===`text-delta`?a+=r.delta:r.type===`tool-call-ready`&&e.push({id:r.toolCallId,name:r.toolName,args:r.args}),yield r}catch(e){if(e instanceof M)throw e;yield{type:`error`,message:e instanceof Error?e.message:String(e)};return}if(e.length===0)return;o.push({role:`assistant`,content:a,toolCalls:e});for(let t of e){if(i?.aborted)return;let e,n=!1;try{e=await r(t.name,t.args),n=l(e)}catch(t){n=!0,e={isError:!0,error:t instanceof Error?t.message:String(t)}}o.push({role:`tool`,content:d(e),toolCallId:t.id,toolName:t.name,toolResult:e,toolIsError:n}),yield{type:`tool-result`,toolCallId:t.id,toolName:t.name,result:e,isError:n}}}}async function Be(e){if(e.driver.managesToolLoop&&e.driver.runToolLoopNonStreaming)return e.driver.runToolLoopNonStreaming(e);let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages],s=[],c=``;for(let e=0;e<a&&!i?.aborted;e++){let{text:e,toolCalls:a}=await t.complete({messages:o,tools:n,signal:i});if(a.length===0){c=e;break}o.push({role:`assistant`,content:e,toolCalls:a});for(let e of a){let t,n=!1;try{t=await r(e.name,e.args),n=l(t)}catch(e){n=!0,t={isError:!0,error:e instanceof Error?e.message:String(e)}}s.push({toolName:e.name,args:e.args,result:t}),o.push({role:`tool`,content:d(t),toolCallId:e.id,toolName:e.name,toolResult:t,toolIsError:n})}}return{content:c,toolCalls:s}}async function*Z(e,t){yield*ze({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})}async function*Ve(e,t){let n=``,r=null;for await(let i of Z(e,t))if(i.type===`text-delta`)n+=i.delta;else if(i.type===`tool-call-ready`)r={action:{tool:i.toolName,toolInput:i.args,log:`Calling tool ${i.toolName}`},observation:``},yield r;else if(i.type===`tool-result`&&r){let e=typeof i.result==`string`?i.result:JSON.stringify(i.result??``);yield{action:r.action,observation:e},r=null}else if(i.type===`error`)throw Error(i.message);return n}async function He(e,t){return(await Be({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})).content}var Ue={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GOOGLE_API_KEY`,`GOOGLE_GENERATIVE_AI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],ollama:[],"openai-compatible":[`OPENAI_API_KEY`]};function We(e,t){if(t?.apiKey)return t.apiKey;let r=Ue[e]??[];if(typeof process<`u`)for(let t of r){let r={}[t];if(r)return n.debug(`Using API key from ${t} for ${e}`),r}if(e===`ollama`)return``;let i=r.length>0?r.join(` or `):`apiKey in llmConfig`;throw Error(`API key not found for provider '${e}'. Set ${i}.`)}function Q(e,t){let n=e.split(`/`);if(n.length<2)throw Error(`Invalid LLM string '${e}'. Expected 'provider/model'.`);let r=n[0].toLowerCase(),i=n.slice(1).join(`/`),a=[`openai`,`anthropic`,`google`,`openrouter`,`ollama`,`openai-compatible`];if(!a.includes(r))throw Error(`Unsupported provider '${r}'. Supported: ${a.join(`, `)}`);return{provider:r,model:i,apiKey:We(r,t),temperature:t?.temperature,maxTokens:t?.maxTokens,baseUrl:t?.baseUrl,extraHeaders:t?.extraHeaders,credentials:t?.credentials}}function Ge(e,t,n){return{provider:e,model:t,apiKey:We(e,n),temperature:n?.temperature,maxTokens:n?.maxTokens,baseUrl:n?.baseUrl,extraHeaders:n?.extraHeaders,credentials:n?.credentials}}var Ke=`2.0.0-beta.2`;function qe(){return Ke}function $(e,t,n,r,i,a){return typeof e==`object`&&e?{prompt:e.prompt,maxSteps:e.maxSteps,manageConnector:e.manageConnector,messages:e.messages,schema:e.schema,signal:e.signal}:{prompt:e,maxSteps:t,manageConnector:n,schema:i,signal:a}}var Je=`/api/v1/chats`,Ye=`/api/v1/chats/{chat_id}/execute`;function Xe(e,t,n,r,i){if(typeof e==`object`&&e){let t=e;return{query:t.prompt??``,maxSteps:t.maxSteps,manageConnector:t.manageConnector,externalHistory:t.externalHistory,outputSchema:t.schema}}return{query:e,maxSteps:t,manageConnector:n,externalHistory:r,outputSchema:i}}var Ze=class{agentId;apiKey;baseUrl;chatId=null;constructor(e){this.agentId=e.agentId,this.baseUrl=e.baseUrl??`https://cloud.manufact.com`;let t=e.apiKey??(typeof process<`u`&&{}.MCP_USE_API_KEY);if(!t)throw Error(`API key is required for remote execution. Please provide it as a parameter or set the MCP_USE_API_KEY environment variable. You can get an API key from https://cloud.manufact.com`);this.apiKey=t}pydanticToJsonSchema(e){return t(e)}parseStructuredResponse(e,t){let r;if(typeof e==`object`&&e)if(`result`in e){let t=e.result;r=typeof t==`object`&&t&&`result`in t?t.result:t}else r=e;else if(typeof e==`string`)try{r=JSON.parse(e)}catch{r={content:e}}else r=e;try{return t.parse(r)}catch(e){n.warn(`Failed to parse structured output: ${e}`);let i=t._def?.shape();if(i&&`content`in i)return t.parse({content:String(r)});throw e}}async createChatSession(){let e={title:`Remote Agent Session - ${this.agentId}`,agent_id:this.agentId,type:`agent_execution`},t={"Content-Type":`application/json`,"x-api-key":this.apiKey},r=`${this.baseUrl}${Je}`;n.debug(`\u{1F4DD} Creating chat session for agent ${this.agentId}`);try{let i=await fetch(r,{method:`POST`,headers:t,body:JSON.stringify(e)});if(!i.ok){let e=await i.text(),t=i.status;throw Error(t===404?`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`:`Failed to create chat session: ${t} - ${e}`)}let a=(await i.json()).id;return n.debug(`\u2705 Chat session created: ${a}`),a}catch(e){throw e instanceof Error?TypeError(`Failed to create chat session: ${e.message}`):Error(`Failed to create chat session: ${String(e)}`)}}async run(e,t,r,i,a){let{query:o,maxSteps:s,externalHistory:c,outputSchema:l}=Xe(e,t,r,i,a);c!==void 0&&n.warn(`External history is not yet supported for remote execution`);try{n.debug(`\u{1F310} Executing query on remote agent ${this.agentId}`),this.chatId===null&&(this.chatId=await this.createChatSession());let e=this.chatId,t={query:o,max_steps:s??10};l&&(t.output_schema=this.pydanticToJsonSchema(l),n.debug(`🔧 Using structured output with schema`));let r={"Content-Type":`application/json`,"x-api-key":this.apiKey},i=`${this.baseUrl}${Ye.replace(`{chat_id}`,e)}`;n.debug(`\u{1F680} Executing agent in chat ${e}`);let a=await fetch(i,{method:`POST`,headers:r,body:JSON.stringify(t),signal:AbortSignal.timeout(3e5)});if(!a.ok){let e=await a.text(),t=a.status;throw t===401?(n.error(`\u274C Authentication failed: ${e}`),Error(`Authentication failed: Invalid or missing API key. Please check your API key and ensure the MCP_USE_API_KEY environment variable is set correctly.`)):t===403?(n.error(`\u274C Access forbidden: ${e}`),Error(`Access denied: You don't have permission to execute agent '${this.agentId}'. Check if the agent exists and you have the necessary permissions.`)):t===404?(n.error(`\u274C Agent not found: ${e}`),Error(`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`)):t===422?(n.error(`\u274C Validation error: ${e}`),Error(`Request validation failed: ${e}. Please check your query parameters and output schema format.`)):t===500?(n.error(`\u274C Server error: ${e}`),Error(`Internal server error occurred during agent execution. Please try again later or contact support if the issue persists.`)):(n.error(`\u274C Remote execution failed with status ${t}: ${e}`),Error(`Remote agent execution failed: ${t} - ${e}`))}let c=await a.json();if(n.debug(`\u{1F527} Response: ${JSON.stringify(c)}`),n.debug(`✅ Remote execution completed successfully`),typeof c==`object`&&c){if(c.status===`error`||c.error!==null){let e=c.error??String(c);throw n.error(`\u274C Remote agent execution failed: ${e}`),Error(`Remote agent execution failed: ${e}`)}if(String(c).includes(`failed to initialize`))throw n.error(`\u274C Agent initialization failed: ${c}`),Error(`Agent initialization failed on remote server. This usually indicates:
16
+ `):void 0,input:n}}function Fe(e){return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.inputSchema,strict:!1}))}function W(e,t,n,r){let i=d(r);if(typeof i==`string`){e.push({type:`function_call_output`,call_id:t,output:i});return}let{text:a,imageParts:o}=f(i);e.push({type:`function_call_output`,call_id:t,output:a||`[image content; see next message]`}),o.length>0&&e.push({role:`user`,content:[{type:`input_text`,text:p(n,o.length)},...o.map(e=>({type:`input_image`,image_url:e.url}))]})}function G(e,t){let n={model:e.config.model,input:e.input,store:!1,include:[`reasoning.encrypted_content`],reasoning:{effort:e.config.reasoningEffort??`low`},stream:t};return e.instructions&&(n.instructions=e.instructions),e.tools&&e.tools.length>0&&(n.tools=Fe(e.tools)),e.config.maxTokens!==void 0&&(n.max_output_tokens=e.config.maxTokens),n}function K(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.type===`function_call`&&(typeof e.call_id!=`string`||typeof e.name!=`string`||t.push({call_id:e.call_id,name:e.name,arguments:typeof e.arguments==`string`?e.arguments:`{}`}))}return t}function Ie(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(e.type!==`message`||e.role!==`assistant`)continue;let r=e.content;if(Array.isArray(r))for(let e of r){if(!e||typeof e!=`object`)continue;let n=e;n.type===`output_text`&&typeof n.text==`string`&&t.push(n.text)}}return t.join(``)}function q(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}}async function*J(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!0)),signal:e.signal});if(!t.ok||!t.body)throw Error(await H(t));let n=new Map,r=0,i=[];for await(let a of g(t.body,e.signal)){if(!a.data||a.data===`[DONE]`)continue;let e;try{e=JSON.parse(a.data)}catch{continue}let t=typeof e.type==`string`?e.type:a.event;if(t===`response.output_text.delta`){let t=e.delta;typeof t==`string`&&t.length>0&&(yield{type:`text-delta`,delta:t});continue}if(t===`response.output_item.added`){let t=e.item;if(t?.type===`function_call`){let e=typeof t.call_id==`string`?t.call_id:`call_${r}`,i=typeof t.name==`string`?t.name:``,a=r++;n.set(e,{index:a,name:i,argsJson:``,started:!0}),yield{type:`tool-call-start`,index:a,toolCallId:e,toolName:i}}continue}if(t===`response.function_call_arguments.delta`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.delta==`string`?e.delta:``,i=n.get(t);i&&r.length>0&&(i.argsJson+=r,yield{type:`tool-call-args-delta`,index:i.index,toolCallId:t,toolName:i.name,argsDelta:r});continue}if(t===`response.function_call_arguments.done`){let t=typeof e.call_id==`string`?e.call_id:``,r=typeof e.arguments==`string`?e.arguments:``,i=n.get(t);i&&(r&&(i.argsJson=r),yield{type:`tool-call-ready`,index:i.index,toolCallId:t,toolName:i.name,args:q(i.argsJson||r)});continue}if(t===`response.completed`){let t=e.response;t&&Array.isArray(t.output)&&(i=t.output);let n=y(t?.usage);n&&(yield{type:`usage`,usage:n});continue}if(t===`error`)return yield{type:`error`,message:typeof e.message==`string`?e.message:`OpenAI Responses stream error`},[]}return yield{type:`done`},i}async function Y(e){let t=await fetch(B(e.config,`/responses`),{method:`POST`,headers:V(e.config),body:JSON.stringify(G(e,!1)),signal:e.signal});if(!t.ok)throw Error(await H(t));let n=await t.json(),r=n.status;if(r!==`completed`&&r!==void 0)throw Error(`OpenAI response ended with status ${String(r)}`);let i=Array.isArray(n.output)?n.output:[],a=K(i);return{text:typeof n.output_text==`string`?n.output_text:Ie(i),output:i,toolCalls:a.map(e=>({id:e.call_id,name:e.name,args:q(e.arguments)}))}}var Le=class{constructor(e){this.config=e}managesToolLoop=!0;stream(e){return this.streamSingleTurn(e)}async complete(e){let{instructions:t,input:n}=U(e.messages),r=await Y({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});return{text:r.text,toolCalls:r.toolCalls}}async*streamToolLoop(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10;for(let n=0;n<i;n++){if(e.signal?.aborted)return;let n=J({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal}),i=[];for(;;){let e=await n.next();if(e.done){i=e.value??[];break}if(yield e.value,e.value.type===`error`)return}r.push(...i);let a=K(i);if(a.length===0)return;for(let t of a){if(e.signal?.aborted)return;let n={};try{n=JSON.parse(t.arguments)}catch{n={}}let i,a=!1;try{i=await e.callTool(t.name,n),a=l(i)}catch(e){a=!0,i={isError:!0,error:e instanceof Error?e.message:String(e)}}W(r,t.call_id,t.name,i),yield{type:`tool-result`,toolCallId:t.call_id,toolName:t.name,result:i,isError:a}}}}async runToolLoopNonStreaming(e){let{instructions:t,input:n}=U(e.messages),r=[...n],i=e.maxSteps??10,a=[],o=``;for(let n=0;n<i&&!e.signal?.aborted;n++){let n=await Y({config:this.config,instructions:t,input:r,tools:e.tools,signal:e.signal});if(r.push(...n.output),n.toolCalls.length===0){o=n.text;break}for(let t of n.toolCalls){let n;try{n=await e.callTool(t.name,t.args),l(n)}catch(e){n={isError:!0,error:e instanceof Error?e.message:String(e)}}a.push({toolName:t.name,args:t.args,result:n}),W(r,t.id,t.name,n)}}return{content:o,toolCalls:a}}async*streamSingleTurn(e){let{instructions:t,input:n}=U(e.messages),r=J({config:this.config,instructions:t,input:n,tools:e.tools,signal:e.signal});for(;;){let e=await r.next();if(e.done||(yield e.value,e.value.type===`error`))return}}};function X(e){return e.provider===`openai`?new Le(e):new Re(e)}var Re=class{constructor(e){this.config=e}stream(e){return je({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal})}async complete(e){let t=await Me({config:this.config,messages:e.messages,tools:e.tools,signal:e.signal});return{text:t.text,toolCalls:t.toolCalls}}};async function*ze(e){if(e.driver.managesToolLoop&&e.driver.streamToolLoop){yield*e.driver.streamToolLoop(e);return}let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages];for(let e=0;e<a;e++){if(i?.aborted)return;let e=[],a=``;try{for await(let r of t.stream({messages:o,tools:n,signal:i}))r.type===`text-delta`?a+=r.delta:r.type===`tool-call-ready`&&e.push({id:r.toolCallId,name:r.toolName,args:r.args}),yield r}catch(e){if(e instanceof M)throw e;yield{type:`error`,message:e instanceof Error?e.message:String(e)};return}if(e.length===0)return;o.push({role:`assistant`,content:a,toolCalls:e});for(let t of e){if(i?.aborted)return;let e,n=!1;try{e=await r(t.name,t.args),n=l(e)}catch(t){n=!0,e={isError:!0,error:t instanceof Error?t.message:String(t)}}o.push({role:`tool`,content:d(e),toolCallId:t.id,toolName:t.name,toolResult:e,toolIsError:n}),yield{type:`tool-result`,toolCallId:t.id,toolName:t.name,result:e,isError:n}}}}async function Be(e){if(e.driver.managesToolLoop&&e.driver.runToolLoopNonStreaming)return e.driver.runToolLoopNonStreaming(e);let{driver:t,tools:n,callTool:r,signal:i}=e,a=e.maxSteps??10,o=[...e.messages],s=[],c=``;for(let e=0;e<a&&!i?.aborted;e++){let{text:e,toolCalls:a}=await t.complete({messages:o,tools:n,signal:i});if(a.length===0){c=e;break}o.push({role:`assistant`,content:e,toolCalls:a});for(let e of a){let t,n=!1;try{t=await r(e.name,e.args),n=l(t)}catch(e){n=!0,t={isError:!0,error:e instanceof Error?e.message:String(e)}}s.push({toolName:e.name,args:e.args,result:t}),o.push({role:`tool`,content:d(t),toolCallId:e.id,toolName:e.name,toolResult:t,toolIsError:n})}}return{content:c,toolCalls:s}}async function*Z(e,t){yield*ze({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})}async function*Ve(e,t){let n=``,r=null;for await(let i of Z(e,t))if(i.type===`text-delta`)n+=i.delta;else if(i.type===`tool-call-ready`)r={action:{tool:i.toolName,toolInput:i.args,log:`Calling tool ${i.toolName}`},observation:``},yield r;else if(i.type===`tool-result`&&r){let e=typeof i.result==`string`?i.result:JSON.stringify(i.result??``);yield{action:r.action,observation:e},r=null}else if(i.type===`error`)throw Error(i.message);return n}async function He(e,t){return(await Be({driver:e,messages:t.messages,tools:t.tools,callTool:t.callTool,maxSteps:t.maxSteps,signal:t.signal})).content}var Ue={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GOOGLE_API_KEY`,`GOOGLE_GENERATIVE_AI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],ollama:[],"openai-compatible":[`OPENAI_API_KEY`]};function We(e,t){if(t?.apiKey)return t.apiKey;let r=Ue[e]??[];if(typeof process<`u`)for(let t of r){let r={}[t];if(r)return n.debug(`Using API key from ${t} for ${e}`),r}if(e===`ollama`)return``;let i=r.length>0?r.join(` or `):`apiKey in llmConfig`;throw Error(`API key not found for provider '${e}'. Set ${i}.`)}function Q(e,t){let n=e.split(`/`);if(n.length<2)throw Error(`Invalid LLM string '${e}'. Expected 'provider/model'.`);let r=n[0].toLowerCase(),i=n.slice(1).join(`/`),a=[`openai`,`anthropic`,`google`,`openrouter`,`ollama`,`openai-compatible`];if(!a.includes(r))throw Error(`Unsupported provider '${r}'. Supported: ${a.join(`, `)}`);return{provider:r,model:i,apiKey:We(r,t),temperature:t?.temperature,maxTokens:t?.maxTokens,baseUrl:t?.baseUrl,extraHeaders:t?.extraHeaders,credentials:t?.credentials}}function Ge(e,t,n){return{provider:e,model:t,apiKey:We(e,n),temperature:n?.temperature,maxTokens:n?.maxTokens,baseUrl:n?.baseUrl,extraHeaders:n?.extraHeaders,credentials:n?.credentials}}var Ke=`2.0.0-beta.4`;function qe(){return Ke}function $(e,t,n,r,i,a){return typeof e==`object`&&e?{prompt:e.prompt,maxSteps:e.maxSteps,manageConnector:e.manageConnector,messages:e.messages,schema:e.schema,signal:e.signal}:{prompt:e,maxSteps:t,manageConnector:n,schema:i,signal:a}}var Je=`/api/v1/chats`,Ye=`/api/v1/chats/{chat_id}/execute`;function Xe(e,t,n,r,i){if(typeof e==`object`&&e){let t=e;return{query:t.prompt??``,maxSteps:t.maxSteps,manageConnector:t.manageConnector,externalHistory:t.externalHistory,outputSchema:t.schema}}return{query:e,maxSteps:t,manageConnector:n,externalHistory:r,outputSchema:i}}var Ze=class{agentId;apiKey;baseUrl;chatId=null;constructor(e){this.agentId=e.agentId,this.baseUrl=e.baseUrl??`https://cloud.manufact.com`;let t=e.apiKey??(typeof process<`u`&&{}.MCP_USE_API_KEY);if(!t)throw Error(`API key is required for remote execution. Please provide it as a parameter or set the MCP_USE_API_KEY environment variable. You can get an API key from https://cloud.manufact.com`);this.apiKey=t}pydanticToJsonSchema(e){return t(e)}parseStructuredResponse(e,t){let r;if(typeof e==`object`&&e)if(`result`in e){let t=e.result;r=typeof t==`object`&&t&&`result`in t?t.result:t}else r=e;else if(typeof e==`string`)try{r=JSON.parse(e)}catch{r={content:e}}else r=e;try{return t.parse(r)}catch(e){n.warn(`Failed to parse structured output: ${e}`);let i=t._def?.shape();if(i&&`content`in i)return t.parse({content:String(r)});throw e}}async createChatSession(){let e={title:`Remote Agent Session - ${this.agentId}`,agent_id:this.agentId,type:`agent_execution`},t={"Content-Type":`application/json`,"x-api-key":this.apiKey},r=`${this.baseUrl}${Je}`;n.debug(`\u{1F4DD} Creating chat session for agent ${this.agentId}`);try{let i=await fetch(r,{method:`POST`,headers:t,body:JSON.stringify(e)});if(!i.ok){let e=await i.text(),t=i.status;throw Error(t===404?`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`:`Failed to create chat session: ${t} - ${e}`)}let a=(await i.json()).id;return n.debug(`\u2705 Chat session created: ${a}`),a}catch(e){throw e instanceof Error?TypeError(`Failed to create chat session: ${e.message}`):Error(`Failed to create chat session: ${String(e)}`)}}async run(e,t,r,i,a){let{query:o,maxSteps:s,externalHistory:c,outputSchema:l}=Xe(e,t,r,i,a);c!==void 0&&n.warn(`External history is not yet supported for remote execution`);try{n.debug(`\u{1F310} Executing query on remote agent ${this.agentId}`),this.chatId===null&&(this.chatId=await this.createChatSession());let e=this.chatId,t={query:o,max_steps:s??10};l&&(t.output_schema=this.pydanticToJsonSchema(l),n.debug(`🔧 Using structured output with schema`));let r={"Content-Type":`application/json`,"x-api-key":this.apiKey},i=`${this.baseUrl}${Ye.replace(`{chat_id}`,e)}`;n.debug(`\u{1F680} Executing agent in chat ${e}`);let a=await fetch(i,{method:`POST`,headers:r,body:JSON.stringify(t),signal:AbortSignal.timeout(3e5)});if(!a.ok){let e=await a.text(),t=a.status;throw t===401?(n.error(`\u274C Authentication failed: ${e}`),Error(`Authentication failed: Invalid or missing API key. Please check your API key and ensure the MCP_USE_API_KEY environment variable is set correctly.`)):t===403?(n.error(`\u274C Access forbidden: ${e}`),Error(`Access denied: You don't have permission to execute agent '${this.agentId}'. Check if the agent exists and you have the necessary permissions.`)):t===404?(n.error(`\u274C Agent not found: ${e}`),Error(`Agent not found: Agent '${this.agentId}' does not exist or you don't have access to it. Please verify the agent ID and ensure it exists in your account.`)):t===422?(n.error(`\u274C Validation error: ${e}`),Error(`Request validation failed: ${e}. Please check your query parameters and output schema format.`)):t===500?(n.error(`\u274C Server error: ${e}`),Error(`Internal server error occurred during agent execution. Please try again later or contact support if the issue persists.`)):(n.error(`\u274C Remote execution failed with status ${t}: ${e}`),Error(`Remote agent execution failed: ${t} - ${e}`))}let c=await a.json();if(n.debug(`\u{1F527} Response: ${JSON.stringify(c)}`),n.debug(`✅ Remote execution completed successfully`),typeof c==`object`&&c){if(c.status===`error`||c.error!==null){let e=c.error??String(c);throw n.error(`\u274C Remote agent execution failed: ${e}`),Error(`Remote agent execution failed: ${e}`)}if(String(c).includes(`failed to initialize`))throw n.error(`\u274C Agent initialization failed: ${c}`),Error(`Agent initialization failed on remote server. This usually indicates:
17
17
  \u2022 Invalid agent configuration (LLM model, system prompt)
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(e){throw e instanceof Error?e.name===`AbortError`?(n.error(`\u274C Remote execution timed out: ${e}`),Error(`Remote agent execution timed out. The server may be overloaded or the query is taking too long to process. Try again or use a simpler query.`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${e.message}`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${String(e)}`))}}async*stream(e,t,n,r,i){return await this.run(e,t,n,r,i)}async close(){n.debug(`🔌 Remote agent client closed`)}},Qe=class{static getPackageVersion(){return qe()}driver;client;connectors=[];clientOwnedByAgent=!1;nativeAdapter;providerTools=[];callTool;maxSteps;autoInitialize;systemPrompt;disallowedTools;exposeResourcesAsTools;exposePromptsAsTools;initialized=!1;isRemote=!1;remoteAgent=null;isSimplifiedMode=!1;llmString;llmConfig;mcpServersConfig;explicitProviderConfig;conversationMessages=[];memoryEnabled;boundConnections;constructor(e){if(e.agentId){this.isRemote=!0,this.remoteAgent=new Ze({agentId:e.agentId,apiKey:e.apiKey,baseUrl:e.baseUrl}),this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.nativeAdapter=new a,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=[],this.exposeResourcesAsTools=!0,this.exposePromptsAsTools=!0,this.memoryEnabled=e.memoryEnabled??!0;return}if(this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=e.disallowedTools??[],this.exposeResourcesAsTools=e.exposeResourcesAsTools??!0,this.exposePromptsAsTools=e.exposePromptsAsTools??!0,this.memoryEnabled=e.memoryEnabled??!0,this.nativeAdapter=new a(this.disallowedTools),this.llmConfig=e.llmConfig,this.resolveMcpServers(e.mcpServers),typeof e.llm==`string`){if(this.isSimplifiedMode=!0,this.llmString=e.llm,!this.hasLiveConnections()&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0)&&!e.client&&!e.connectors?.length)throw Error(`Simplified mode requires mcpServers, or an existing client/connectors.`)}else if(this.explicitProviderConfig=e.llm,this.client=e.client,this.connectors=e.connectors??[],!this.hasLiveConnections()&&!this.client&&this.connectors.length===0&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0))throw Error(`Explicit mode requires mcpServers, client, or connectors.`);e.client&&(this.client=e.client),e.connectors?.length&&(this.connectors=e.connectors),this.hasLiveConnections()&&this.explicitProviderConfig?this.bindConnections(this.boundConnections,this.explicitProviderConfig):this.hasLiveConnections()&&this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)),this.bindConnections(this.boundConnections,Q(this.llmString,this.llmConfig)))}resolveMcpServers(e){if(e){if(Array.isArray(e)){this.boundConnections=e;return}this.mcpServersConfig=e}}hasLiveConnections(){return(this.boundConnections?.length??0)>0}async initialize(){if(this.isRemote){this.initialized=!0;return}if(!this.initialized){if(this.isSimplifiedMode){if(!this.client&&this.mcpServersConfig){let{MCPClient:t}=await e(async()=>{let{MCPClient:e}=await import(`./index-CoRK2C3M.js`).then(e=>e.Ot);return{MCPClient:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));this.client=new t({mcpServers:this.mcpServersConfig}),this.clientOwnedByAgent=!0}this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)))}else this.explicitProviderConfig&&(this.driver=X(this.explicitProviderConfig));if(!this.driver)throw Error(`LLM driver not configured.`);this.hasLiveConnections()||await this.loadTools(),this.initialized=!0,n.debug(`MCPAgent initialized`)}}async loadTools(){let e=[];if(this.client){(!this.client.activeSessions||Object.keys(this.client.activeSessions).length===0)&&await this.client.createAllSessions();let t=this.client.getAllActiveSessions(),n=Object.values(t).map(e=>e.connector);e.push(...await this.nativeAdapter.createToolsFromConnectors(n)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(n)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(n))}else{for(let e of this.connectors)e.isClientConnected||await e.connect();e.push(...await this.nativeAdapter.createToolsFromConnectors(this.connectors)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(this.connectors)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(this.connectors))}this.providerTools=this.nativeAdapter.toProviderTools(e),this.callTool=this.nativeAdapter.createCallTool()}bindConnections(e,t){let n=new Set(this.disallowedTools),r=new Set,i=new Map,a=e=>{if(!r.has(e))return r.add(e),e;let t=2;for(;r.has(`${e}_${t}`);)t++;let n=`${e}_${t}`;return r.add(n),n},o=[];for(let t of e)for(let e of t.tools??[]){if(n.has(e.name))continue;let r=a(e.name);i.set(r,{connection:t,mcpName:e.name}),o.push({name:r,description:e.description,inputSchema:e.inputSchema??{type:`object`,properties:{}}})}this.providerTools=o,this.callTool=async(e,t)=>{let n=i.get(e);if(!n)throw Error(`Unknown tool: ${e}`);return n.connection.callTool(n.mcpName,t)},this.driver=X(t),this.initialized=!0}buildMessages(e){let t=[{role:`system`,content:this.systemPrompt}];return this.memoryEnabled&&this.conversationMessages.length>0&&t.push(...this.conversationMessages),e.messages?.length&&t.push(...e.messages),e.prompt&&t.push({role:`user`,content:e.prompt}),t}getConversationHistory(){return[...this.conversationMessages]}clearConversationHistory(){this.conversationMessages=[]}setSystemMessage(e){this.systemPrompt=e}async ensureReady(e=!0){if(e&&!this.initialized)if(this.autoInitialize)await this.initialize();else throw Error(`MCPAgent not initialized. Call initialize() first.`);if(!this.driver||!this.callTool)throw Error(`MCPAgent driver or tools not ready.`)}nativeRunParams(e){return{messages:this.buildMessages(e),tools:this.providerTools,callTool:this.callTool,maxSteps:e.maxSteps??this.maxSteps,signal:e.signal}}async run(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(o.schema)throw Error(`Structured output requires @mcp-use/agent/langchain or pass a JSON schema via prompt.`);if(this.isRemote&&this.remoteAgent)return this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=await He(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*stream(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)return await this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=yield*Ve(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*streamEvents(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)throw Error(`streamEvents is not supported for remote agents.`);await this.ensureReady(o.manageConnector??!0),yield*Z(this.driver,this.nativeRunParams(o))}async chat(e){return await this.ensureReady(),(await this.driver.complete({messages:e.messages,tools:[],signal:e.signal})).text}async close(){this.clientOwnedByAgent&&this.client&&await this.client.closeAllSessions?.(),this.initialized=!1}};async function $e(e){return(await X(e.config).complete({messages:e.messages,tools:[],signal:e.signal})).text}export{$e as a,Ge as c,D as i,Qe as n,re as o,we as r,E as s,Ce as t};
21
+ Raw error: ${c}`)}return l?this.parseStructuredResponse(c,l):typeof c==`object`&&c&&`result`in c?c.result:typeof c==`string`?c:String(c)}catch(e){throw e instanceof Error?e.name===`AbortError`?(n.error(`\u274C Remote execution timed out: ${e}`),Error(`Remote agent execution timed out. The server may be overloaded or the query is taking too long to process. Try again or use a simpler query.`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${e.message}`)):(n.error(`\u274C Remote execution error: ${e}`),Error(`Remote agent execution failed: ${String(e)}`))}}async*stream(e,t,n,r,i){return await this.run(e,t,n,r,i)}async close(){n.debug(`🔌 Remote agent client closed`)}},Qe=class{static getPackageVersion(){return qe()}driver;client;connectors=[];clientOwnedByAgent=!1;nativeAdapter;providerTools=[];callTool;maxSteps;autoInitialize;systemPrompt;disallowedTools;exposeResourcesAsTools;exposePromptsAsTools;initialized=!1;isRemote=!1;remoteAgent=null;isSimplifiedMode=!1;llmString;llmConfig;mcpServersConfig;explicitProviderConfig;conversationMessages=[];memoryEnabled;boundConnections;constructor(e){if(e.agentId){this.isRemote=!0,this.remoteAgent=new Ze({agentId:e.agentId,apiKey:e.apiKey,baseUrl:e.baseUrl}),this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.nativeAdapter=new a,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=[],this.exposeResourcesAsTools=!0,this.exposePromptsAsTools=!0,this.memoryEnabled=e.memoryEnabled??!0;return}if(this.maxSteps=e.maxSteps??10,this.autoInitialize=e.autoInitialize??!1,this.systemPrompt=e.systemPrompt??`You are a helpful assistant with access to MCP tools.`,this.disallowedTools=e.disallowedTools??[],this.exposeResourcesAsTools=e.exposeResourcesAsTools??!0,this.exposePromptsAsTools=e.exposePromptsAsTools??!0,this.memoryEnabled=e.memoryEnabled??!0,this.nativeAdapter=new a(this.disallowedTools),this.llmConfig=e.llmConfig,this.resolveMcpServers(e.mcpServers),typeof e.llm==`string`){if(this.isSimplifiedMode=!0,this.llmString=e.llm,!this.hasLiveConnections()&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0)&&!e.client&&!e.connectors?.length)throw Error(`Simplified mode requires mcpServers, or an existing client/connectors.`)}else if(this.explicitProviderConfig=e.llm,this.client=e.client,this.connectors=e.connectors??[],!this.hasLiveConnections()&&!this.client&&this.connectors.length===0&&(!this.mcpServersConfig||Object.keys(this.mcpServersConfig).length===0))throw Error(`Explicit mode requires mcpServers, client, or connectors.`);e.client&&(this.client=e.client),e.connectors?.length&&(this.connectors=e.connectors),this.hasLiveConnections()&&this.explicitProviderConfig?this.bindConnections(this.boundConnections,this.explicitProviderConfig):this.hasLiveConnections()&&this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)),this.bindConnections(this.boundConnections,Q(this.llmString,this.llmConfig)))}resolveMcpServers(e){if(e){if(Array.isArray(e)){this.boundConnections=e;return}this.mcpServersConfig=e}}hasLiveConnections(){return(this.boundConnections?.length??0)>0}async initialize(){if(this.isRemote){this.initialized=!0;return}if(!this.initialized){if(this.isSimplifiedMode){if(!this.client&&this.mcpServersConfig){let{MCPClient:t}=await e(async()=>{let{MCPClient:e}=await import(`./index-C_fCIJ4C.js`).then(e=>e.Ot);return{MCPClient:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));this.client=new t({mcpServers:this.mcpServersConfig}),this.clientOwnedByAgent=!0}this.llmString&&(this.driver=X(Q(this.llmString,this.llmConfig)))}else this.explicitProviderConfig&&(this.driver=X(this.explicitProviderConfig));if(!this.driver)throw Error(`LLM driver not configured.`);this.hasLiveConnections()||await this.loadTools(),this.initialized=!0,n.debug(`MCPAgent initialized`)}}async loadTools(){let e=[];if(this.client){(!this.client.activeSessions||Object.keys(this.client.activeSessions).length===0)&&await this.client.createAllSessions();let t=this.client.getAllActiveSessions(),n=Object.values(t).map(e=>e.connector);e.push(...await this.nativeAdapter.createToolsFromConnectors(n)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(n)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(n))}else{for(let e of this.connectors)e.isClientConnected||await e.connect();e.push(...await this.nativeAdapter.createToolsFromConnectors(this.connectors)),this.exposeResourcesAsTools&&e.push(...await this.nativeAdapter.createResourcesFromConnectors(this.connectors)),this.exposePromptsAsTools&&e.push(...await this.nativeAdapter.createPromptsFromConnectors(this.connectors))}this.providerTools=this.nativeAdapter.toProviderTools(e),this.callTool=this.nativeAdapter.createCallTool()}bindConnections(e,t){let n=new Set(this.disallowedTools),r=new Set,i=new Map,a=e=>{if(!r.has(e))return r.add(e),e;let t=2;for(;r.has(`${e}_${t}`);)t++;let n=`${e}_${t}`;return r.add(n),n},o=[];for(let t of e)for(let e of t.tools??[]){if(n.has(e.name))continue;let r=a(e.name);i.set(r,{connection:t,mcpName:e.name}),o.push({name:r,description:e.description,inputSchema:e.inputSchema??{type:`object`,properties:{}}})}this.providerTools=o,this.callTool=async(e,t)=>{let n=i.get(e);if(!n)throw Error(`Unknown tool: ${e}`);return n.connection.callTool(n.mcpName,t)},this.driver=X(t),this.initialized=!0}buildMessages(e){let t=[{role:`system`,content:this.systemPrompt}];return this.memoryEnabled&&this.conversationMessages.length>0&&t.push(...this.conversationMessages),e.messages?.length&&t.push(...e.messages),e.prompt&&t.push({role:`user`,content:e.prompt}),t}getConversationHistory(){return[...this.conversationMessages]}clearConversationHistory(){this.conversationMessages=[]}setSystemMessage(e){this.systemPrompt=e}async ensureReady(e=!0){if(e&&!this.initialized)if(this.autoInitialize)await this.initialize();else throw Error(`MCPAgent not initialized. Call initialize() first.`);if(!this.driver||!this.callTool)throw Error(`MCPAgent driver or tools not ready.`)}nativeRunParams(e){return{messages:this.buildMessages(e),tools:this.providerTools,callTool:this.callTool,maxSteps:e.maxSteps??this.maxSteps,signal:e.signal}}async run(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(o.schema)throw Error(`Structured output requires @mcp-use/agent/langchain or pass a JSON schema via prompt.`);if(this.isRemote&&this.remoteAgent)return this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=await He(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*stream(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)return await this.remoteAgent.run(o.prompt??``,o.maxSteps,o.manageConnector);await this.ensureReady(o.manageConnector??!0);let s=yield*Ve(this.driver,this.nativeRunParams(o));return this.memoryEnabled&&o.prompt&&(this.conversationMessages.push({role:`user`,content:o.prompt}),this.conversationMessages.push({role:`assistant`,content:s})),s}async*streamEvents(e,t,n,r,i,a){let o=$(e,t,n,r,i,a);if(this.isRemote&&this.remoteAgent)throw Error(`streamEvents is not supported for remote agents.`);await this.ensureReady(o.manageConnector??!0),yield*Z(this.driver,this.nativeRunParams(o))}async chat(e){return await this.ensureReady(),(await this.driver.complete({messages:e.messages,tools:[],signal:e.signal})).text}async close(){this.clientOwnedByAgent&&this.client&&await this.client.closeAllSessions?.(),this.initialized=!1}};async function $e(e){return(await X(e.config).complete({messages:e.messages,tools:[],signal:e.signal})).text}export{$e as a,Ge as c,D as i,Qe as n,re as o,we as r,E as s,Ce as t};