@mcp-use/inspector 0.14.0-canary.0 → 0.14.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/cli.js +7 -53
  2. package/dist/client/assets/base-Aouj1Yhj.js +2 -0
  3. package/dist/client/assets/{index-pqhVKjyB.js → base-ZEkF4ver.js} +33 -36
  4. package/dist/client/assets/browser-BWolhM7l.js +12 -0
  5. package/dist/client/assets/embeddings-BTUgP3x_.js +1 -0
  6. package/dist/client/assets/{index-CTUcNdQF.js → index-BOIA9kd1.js} +2 -2
  7. package/dist/client/assets/{index-DvTyGyQK.js → index-BSuQO5pd.js} +3 -3
  8. package/dist/client/assets/index-Bfe1ynAS.js +4 -0
  9. package/dist/client/assets/{index-DorqJhTq.js → index-C88Q8iJs.js} +1 -1
  10. package/dist/client/assets/index-CNfmoBX-.js +1701 -0
  11. package/dist/client/assets/index-CSZqqrHs.js +34 -0
  12. package/dist/client/assets/index-CtWrgdCi.js +7 -0
  13. package/dist/client/assets/index-DIlJ2WcE.js +70 -0
  14. package/dist/client/index.html +2 -2
  15. package/dist/server/{chunk-XGILHZOF.js → chunk-F7YWZTWJ.js} +4 -48
  16. package/dist/server/{chunk-JEKCWLHD.js → chunk-Y4GX3FDV.js} +1 -1
  17. package/dist/server/{chunk-MCMZDGO6.js → chunk-Z5QIR3IS.js} +2 -2
  18. package/dist/server/cli.js +2 -2
  19. package/dist/server/index.js +3 -3
  20. package/dist/server/middleware.js +3 -3
  21. package/dist/server/server.d.ts.map +1 -1
  22. package/dist/server/server.js +28 -5
  23. package/dist/server/shared-routes.d.ts.map +1 -1
  24. package/dist/server/shared-routes.js +2 -2
  25. package/dist/server/shared-utils-browser.d.ts.map +1 -1
  26. package/dist/server/shared-utils-browser.js +1 -1
  27. package/package.json +2 -2
  28. package/dist/client/assets/browser-2Ez00ml2.js +0 -501
  29. package/dist/client/assets/display-A5IEINAP-D2Zkswj8.js +0 -17
  30. package/dist/client/assets/embeddings-SLmbAVWP.js +0 -1
  31. package/dist/client/assets/fs-u42MReIY.js +0 -1
  32. package/dist/client/assets/index-BFXh5irY.js +0 -1701
  33. package/dist/client/assets/index-DDOzs1PG.js +0 -20
  34. package/dist/client/assets/index-DF_VhD4l.js +0 -33
  35. package/dist/client/assets/index-DRz5BQNA.js +0 -1
  36. package/dist/client/assets/index-JiKw9JSs.js +0 -5
  37. package/dist/client/assets/index-ZoGs-72y.js +0 -7
  38. package/dist/client/assets/index-jWGWxByD.js +0 -71
  39. package/dist/client/assets/llms-Og3hdOaD.js +0 -2
  40. package/dist/client/assets/path-BX1ROoWV.js +0 -1
  41. package/dist/client/assets/path-MNZaYwxc.js +0 -1
  42. package/dist/client/assets/posthog-node-CuYhrq1Q.js +0 -1
  43. package/dist/client/assets/util-t-trnxQI.js +0 -1
  44. package/dist/client/assets/winston-CYVymxcI.js +0 -37
@@ -0,0 +1,70 @@
1
+ import{ax as wt,ay as Ot,az as G,aA as K,aq as at,_ as $,aB as te,aC as ee,aD as ae,aE as se,aF as ne,aG as re,aH as oe,aI as ie,aJ as ce,aK as ue,f as le,aL as me,i as Mt,aM as he,aN as fe,c as pe,aO as ge,aP as de,aQ as be,aR as _e,aS as Te,as as ye,aT as Ee,b as Rt,aU as ve,aV as Lt,aW as Ie,aX as Ne,aY as Ce,av as Y,e as Q,aZ as Dt,a_ as kt,a$ as tt,at as we,C as ct,aa as St,ai as ut,b0 as Oe,b1 as At,a8 as Z,ab as Se,R as gt,D as Ae,au as xt,Q as Pe,a9 as Me,ag as Re,E as Ft,b2 as q,h as B,b3 as Bt,b4 as Le,b5 as Ut,G as De,b6 as ke,j as xe,m as Fe,b7 as Be,b8 as Ue,b9 as je,ba as Ve,bb as Ge,bc as Ze,bd as $e,t as He,ar as Pt,r as Xe,be as Ye,bf as We,bg as Je,bh as ht,o as jt,s as Vt,bi as ze}from"./base-ZEkF4ver.js";import{c as Gt,i as Ke,a as qe,b as Qe,e as ta}from"./base-Aouj1Yhj.js";import"./index-Bfe1ynAS.js";function Zt(a,s,n,i,c){if(s!==a){typeof s.toJSON=="function"&&(s=s.toJSON());for(var l=wt(s),m=wt(a),h=!1,b=m.length-1;b>=0;b--){var p=m[b],T=a[p];if(Ot(s,p)&&!(s[p]===void 0&&T!==void 0&&Array.isArray(s)===!1)){var g=s[p];typeof T=="object"&&T!=null&&typeof g=="object"&&g!=null&&Array.isArray(T)===Array.isArray(g)?Zt(T,g,n,i+"/"+G(p),c):T!==g&&(c&&n.push({op:"test",path:i+"/"+G(p),value:K(T)}),n.push({op:"replace",path:i+"/"+G(p),value:K(g)}))}else Array.isArray(a)===Array.isArray(s)?(c&&n.push({op:"test",path:i+"/"+G(p),value:K(T)}),n.push({op:"remove",path:i+"/"+G(p)}),h=!0):(c&&n.push({op:"test",path:i,value:a}),n.push({op:"replace",path:i,value:s}))}if(!(!h&&l.length==m.length))for(var b=0;b<l.length;b++){var p=l[b];!Ot(a,p)&&s[p]!==void 0&&n.push({op:"add",path:i+"/"+G(p),value:K(s[p])})}}}function dt(a,s,n=!1){var i=[];return Zt(a,s,i,"",n),i}var ea={};$(ea,{convertToOpenAIFunction:()=>$t,convertToOpenAITool:()=>aa,isLangChainTool:()=>Gt,isRunnableToolLike:()=>Qe,isStructuredTool:()=>qe,isStructuredToolParams:()=>Ke});function $t(a,s){const n=typeof s=="number"?void 0:s;return{name:a.name,description:a.description,parameters:at(a.schema),...n?.strict!==void 0?{strict:n.strict}:{}}}function aa(a,s){const n=typeof s=="number"?void 0:s;let i;return Gt(a)?i={type:"function",function:$t(a)}:i=a,n?.strict!==void 0&&(i.function.strict=n.strict),i}var sa={};$(sa,{extendInteropZodObject:()=>Ce,getInteropZodDefaultGetter:()=>Ne,getInteropZodObjectShape:()=>Ie,getSchemaDescription:()=>Lt,interopParse:()=>ve,interopParseAsync:()=>Rt,interopSafeParse:()=>Ee,interopSafeParseAsync:()=>ye,interopZodObjectMakeFieldsOptional:()=>Te,interopZodObjectPartial:()=>_e,interopZodObjectPassthrough:()=>be,interopZodObjectStrict:()=>de,interopZodTransformInputSchema:()=>ge,isInteropZodError:()=>pe,isInteropZodLiteral:()=>fe,isInteropZodObject:()=>he,isInteropZodSchema:()=>Mt,isShapelessZodSchema:()=>me,isSimpleStringZodSchema:()=>le,isZodArrayV4:()=>ue,isZodLiteralV3:()=>ce,isZodLiteralV4:()=>ie,isZodNullableV4:()=>oe,isZodObjectV3:()=>re,isZodObjectV4:()=>ne,isZodOptionalV4:()=>se,isZodSchema:()=>ae,isZodSchemaV3:()=>ee,isZodSchemaV4:()=>te});var et=class extends Y{static lc_name(){return"RunnablePassthrough"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;func;constructor(a){super(a),a&&(this.func=a.func)}async invoke(a,s){const n=Q(s);return this.func&&await this.func(a,n),this._callWithConfig(i=>Promise.resolve(i),a,n)}async*transform(a,s){const n=Q(s);let i,c=!0;for await(const l of this._transformStreamWithConfig(a,m=>m,n))if(yield l,c)if(i===void 0)i=l;else try{i=tt(i,l)}catch{i=void 0,c=!1}this.func&&i!==void 0&&await this.func(i,n)}static assign(a){return new Dt(new kt({steps:a}))}};const na=a=>a();function lt(a){const s=a.constructor;return new s({...a,content:a.contentBlocks,response_metadata:{...a.response_metadata,output_version:"v1"}})}var ra={};$(ra,{BaseChatModel:()=>Ht,SimpleChatModel:()=>oa});function mt(a){const s=[];for(const n of a){let i=n;if(Array.isArray(n.content))for(let c=0;c<n.content.length;c++){const l=n.content[c];(Pe(l)||Me(l))&&i===n&&(i=new n.constructor({...i,content:[...n.content.slice(0,c),Re(l),...n.content.slice(c+1)]}))}s.push(i)}return s}var Ht=class U extends ta{lc_namespace=["langchain","chat_models",this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,"outputVersion"]}constructor(s){super(s),this.outputVersion=na(()=>{const n=s.outputVersion??we("LC_OUTPUT_VERSION");return n&&["v0","v1"].includes(n)?n:"v0"})}_separateRunnableConfigFromCallOptionsCompat(s){const[n,i]=super._separateRunnableConfigFromCallOptions(s);return i.signal=n.signal,[n,i]}async invoke(s,n){const i=U._convertInputToPromptValue(s);return(await this.generatePrompt([i],n,n?.callbacks)).generations[0][0].message}async*_streamResponseChunks(s,n,i){throw new Error("Not implemented.")}async*_streamIterator(s,n){if(this._streamResponseChunks===U.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(s,n);else{const c=U._convertInputToPromptValue(s).toChatMessages(),[l,m]=this._separateRunnableConfigFromCallOptionsCompat(n),h={...l.metadata,...this.getLsParams(m)},b=await ct.configure(l.callbacks,this.callbacks,l.tags,this.tags,h,this.metadata,{verbose:this.verbose}),p={options:m,invocation_params:this?.invocationParams(m),batch_size:1},T=m.outputVersion??this.outputVersion,g=await b?.handleChatModelStart(this.toJSON(),[mt(c)],l.runId,void 0,p,void 0,void 0,l.runName);let y,_;try{for await(const d of this._streamResponseChunks(c,m,g?.[0])){if(d.message.id==null){const f=g?.at(0)?.runId;f!=null&&d.message._updateId(`run-${f}`)}d.message.response_metadata={...d.generationInfo,...d.message.response_metadata},T==="v1"?yield lt(d.message):yield d.message,y?y=y.concat(d):y=d,St(d.message)&&d.message.usage_metadata!==void 0&&(_={tokenUsage:{promptTokens:d.message.usage_metadata.input_tokens,completionTokens:d.message.usage_metadata.output_tokens,totalTokens:d.message.usage_metadata.total_tokens}})}}catch(d){throw await Promise.all((g??[]).map(f=>f?.handleLLMError(d))),d}await Promise.all((g??[]).map(d=>d?.handleLLMEnd({generations:[[y]],llmOutput:_})))}}getLsParams(s){const n=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:s.stop,ls_provider:n}}async _generateUncached(s,n,i,c){const l=s.map(y=>y.map(ut));let m;if(c!==void 0&&c.length===l.length)m=c;else{const y={...i.metadata,...this.getLsParams(n)},_=await ct.configure(i.callbacks,this.callbacks,i.tags,this.tags,y,this.metadata,{verbose:this.verbose}),d={options:n,invocation_params:this?.invocationParams(n),batch_size:1};m=await _?.handleChatModelStart(this.toJSON(),l.map(mt),i.runId,void 0,d,void 0,void 0,i.runName)}const h=n.outputVersion??this.outputVersion,b=[],p=[];if(!!m?.[0].handlers.find(Oe)&&!this.disableStreaming&&l.length===1&&this._streamResponseChunks!==U.prototype._streamResponseChunks)try{const y=await this._streamResponseChunks(l[0],n,m?.[0]);let _,d;for await(const f of y){if(f.message.id==null){const N=m?.at(0)?.runId;N!=null&&f.message._updateId(`run-${N}`)}_===void 0?_=f:_=tt(_,f),St(f.message)&&f.message.usage_metadata!==void 0&&(d={tokenUsage:{promptTokens:f.message.usage_metadata.input_tokens,completionTokens:f.message.usage_metadata.output_tokens,totalTokens:f.message.usage_metadata.total_tokens}})}if(_===void 0)throw new Error("Received empty response from chat model call.");b.push([_]),await m?.[0].handleLLMEnd({generations:b,llmOutput:d})}catch(y){throw await m?.[0].handleLLMError(y),y}else{const y=await Promise.allSettled(l.map(async(_,d)=>{const f=await this._generate(_,{...n,promptIndex:d},m?.[d]);if(h==="v1")for(const N of f.generations)N.message=lt(N.message);return f}));await Promise.all(y.map(async(_,d)=>{if(_.status==="fulfilled"){const f=_.value;for(const N of f.generations){if(N.message.id==null){const I=m?.at(0)?.runId;I!=null&&N.message._updateId(`run-${I}`)}N.message.response_metadata={...N.generationInfo,...N.message.response_metadata}}return f.generations.length===1&&(f.generations[0].message.response_metadata={...f.llmOutput,...f.generations[0].message.response_metadata}),b[d]=f.generations,p[d]=f.llmOutput,m?.[d]?.handleLLMEnd({generations:[f.generations],llmOutput:f.llmOutput})}else return await m?.[d]?.handleLLMError(_.reason),Promise.reject(_.reason)}))}const g={generations:b,llmOutput:p.length?this._combineLLMOutput?.(...p):void 0};return Object.defineProperty(g,At,{value:m?{runIds:m?.map(y=>y.runId)}:void 0,configurable:!0}),g}async _generateCached({messages:s,cache:n,llmStringKey:i,parsedOptions:c,handledOptions:l}){const m=s.map(I=>I.map(ut)),h={...l.metadata,...this.getLsParams(c)},b=await ct.configure(l.callbacks,this.callbacks,l.tags,this.tags,h,this.metadata,{verbose:this.verbose}),p={options:c,invocation_params:this?.invocationParams(c),batch_size:1},T=await b?.handleChatModelStart(this.toJSON(),m.map(mt),l.runId,void 0,p,void 0,void 0,l.runName),g=[],_=(await Promise.allSettled(m.map(async(I,L)=>{const w=U._convertInputToPromptValue(I).toString(),M=await n.lookup(w,i);return M==null&&g.push(L),M}))).map((I,L)=>({result:I,runManager:T?.[L]})).filter(({result:I})=>I.status==="fulfilled"&&I.value!=null||I.status==="rejected"),d=c.outputVersion??this.outputVersion,f=[];await Promise.all(_.map(async({result:I,runManager:L},w)=>{if(I.status==="fulfilled"){const M=I.value;return f[w]=M.map(D=>("message"in D&&Z(D.message)&&Se(D.message)&&(D.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},d==="v1"&&(D.message=lt(D.message))),D.generationInfo={...D.generationInfo,tokenUsage:{}},D)),M.length&&await L?.handleLLMNewToken(M[0].text),L?.handleLLMEnd({generations:[M]},void 0,void 0,void 0,{cached:!0})}else return await L?.handleLLMError(I.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(I.reason)}));const N={generations:f,missingPromptIndices:g,startedRunManagers:T};return Object.defineProperty(N,At,{value:T?{runIds:T?.map(I=>I.runId)}:void 0,configurable:!0}),N}async generate(s,n,i){let c;Array.isArray(n)?c={stop:n}:c=n;const l=s.map(d=>d.map(ut)),[m,h]=this._separateRunnableConfigFromCallOptionsCompat(c);if(m.callbacks=m.callbacks??i,!this.cache)return this._generateUncached(l,h,m);const{cache:b}=this,p=this._getSerializedCacheKeyParametersForCall(h),{generations:T,missingPromptIndices:g,startedRunManagers:y}=await this._generateCached({messages:l,cache:b,llmStringKey:p,parsedOptions:h,handledOptions:m});let _={};if(g.length>0){const d=await this._generateUncached(g.map(f=>l[f]),h,m,y!==void 0?g.map(f=>y?.[f]):void 0);await Promise.all(d.generations.map(async(f,N)=>{const I=g[N];T[I]=f;const L=U._convertInputToPromptValue(l[I]).toString();return b.update(L,p,f)})),_=d.llmOutput??{}}return{generations:T,llmOutput:_}}invocationParams(s){return{}}_modelType(){return"base_chat_model"}async generatePrompt(s,n,i){const c=s.map(l=>l.toChatMessages());return this.generate(c,n,i)}withStructuredOutput(s,n){if(typeof this.bindTools!="function")throw new Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(n?.strict)throw new Error('"strict" mode is not supported for this model by default.');const i=s,c=n?.name,l=Lt(i)??"A function available to call.",m=n?.method,h=n?.includeRaw;if(m==="jsonMode")throw new Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let b=c??"extract",p;Mt(i)?p=[{type:"function",function:{name:b,description:l,parameters:at(i)}}]:("name"in i&&(b=i.name),p=[{type:"function",function:{name:b,description:l,parameters:i}}]);const T=this.bindTools(p),g=gt.from(f=>{if(!Ae.isInstance(f))throw new Error("Input is not an AIMessageChunk.");if(!f.tool_calls||f.tool_calls.length===0)throw new Error("No tool calls found in the response.");const N=f.tool_calls.find(I=>I.name===b);if(!N)throw new Error(`No tool call found with name ${b}.`);return N.args});if(!h)return T.pipe(g).withConfig({runName:"StructuredOutput"});const y=et.assign({parsed:(f,N)=>g.invoke(f.raw,N)}),_=et.assign({parsed:()=>null}),d=y.withFallbacks({fallbacks:[_]});return xt.from([{raw:T},d]).withConfig({runName:"StructuredOutputRunnable"})}},oa=class extends Ht{async _generate(a,s,n){const i=await this._call(a,s,n),c=new Ft(i);if(typeof c.content!="string")throw new Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:c.content,message:c}]}}},ia=class extends Y{static lc_name(){return"RouterRunnable"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;runnables;constructor(a){super(a),this.runnables=a.runnables}async invoke(a,s){const{key:n,input:i}=a,c=this.runnables[n];if(c===void 0)throw new Error(`No runnable associated with key "${n}".`);return c.invoke(i,Q(s))}async batch(a,s,n){const i=a.map(g=>g.key),c=a.map(g=>g.input);if(i.find(g=>this.runnables[g]===void 0)!==void 0)throw new Error("One or more keys do not have a corresponding runnable.");const m=i.map(g=>this.runnables[g]),h=this._getOptionsList(s??{},a.length),b=h[0]?.maxConcurrency??n?.maxConcurrency,p=b&&b>0?b:a.length,T=[];for(let g=0;g<c.length;g+=p){const y=c.slice(g,g+p).map((d,f)=>m[f].invoke(d,h[f])),_=await Promise.all(y);T.push(_)}return T.flat()}async stream(a,s){const{key:n,input:i}=a,c=this.runnables[n];if(c===void 0)throw new Error(`No runnable associated with key "${n}".`);return c.stream(i,s)}},ca=class extends Y{static lc_name(){return"RunnableBranch"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;default;branches;constructor(a){super(a),this.branches=a.branches,this.default=a.default}static from(a){if(a.length<1)throw new Error("RunnableBranch requires at least one branch");const n=a.slice(0,-1).map(([c,l])=>[q(c),q(l)]),i=q(a[a.length-1]);return new this({branches:n,default:i})}async _invoke(a,s,n){let i;for(let c=0;c<this.branches.length;c+=1){const[l,m]=this.branches[c];if(await l.invoke(a,B(s,{callbacks:n?.getChild(`condition:${c+1}`)}))){i=await m.invoke(a,B(s,{callbacks:n?.getChild(`branch:${c+1}`)}));break}}return i||(i=await this.default.invoke(a,B(s,{callbacks:n?.getChild("branch:default")}))),i}async invoke(a,s={}){return this._callWithConfig(this._invoke,a,s)}async*_streamIterator(a,s){const i=await(await Bt(s))?.handleChainStart(this.toJSON(),Le(a,"input"),s?.runId,void 0,void 0,void 0,s?.runName);let c,l=!0,m;try{for(let h=0;h<this.branches.length;h+=1){const[b,p]=this.branches[h];if(await b.invoke(a,B(s,{callbacks:i?.getChild(`condition:${h+1}`)}))){m=await p.stream(a,B(s,{callbacks:i?.getChild(`branch:${h+1}`)}));for await(const g of m)if(yield g,l)if(c===void 0)c=g;else try{c=tt(c,g)}catch{c=void 0,l=!1}break}}if(m===void 0){m=await this.default.stream(a,B(s,{callbacks:i?.getChild("branch:default")}));for await(const h of m)if(yield h,l)if(c===void 0)c=h;else try{c=tt(c,h)}catch{c=void 0,l=!1}}}catch(h){throw await i?.handleChainError(h),h}await i?.handleChainEnd(c??{})}},ua=class extends Ut{runnable;inputMessagesKey;outputMessagesKey;historyMessagesKey;getMessageHistory;constructor(a){let s=gt.from((l,m)=>this._enterHistory(l,m??{})).withConfig({runName:"loadHistory"});const n=a.historyMessagesKey??a.inputMessagesKey;n&&(s=et.assign({[n]:s}).withConfig({runName:"insertHistory"}));const i=s.pipe(a.runnable.withListeners({onEnd:(l,m)=>this._exitHistory(l,m??{})})).withConfig({runName:"RunnableWithMessageHistory"}),c=a.config??{};super({...a,config:c,bound:i}),this.runnable=a.runnable,this.getMessageHistory=a.getMessageHistory,this.inputMessagesKey=a.inputMessagesKey,this.outputMessagesKey=a.outputMessagesKey,this.historyMessagesKey=a.historyMessagesKey}_getInputMessages(a){let s;if(typeof a=="object"&&!Array.isArray(a)&&!Z(a)){let n;this.inputMessagesKey?n=this.inputMessagesKey:Object.keys(a).length===1?n=Object.keys(a)[0]:n="input",Array.isArray(a[n])&&Array.isArray(a[n][0])?s=a[n][0]:s=a[n]}else s=a;if(typeof s=="string")return[new De(s)];if(Array.isArray(s))return s;if(Z(s))return[s];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages.
2
+ Got ${JSON.stringify(s,null,2)}`)}_getOutputMessages(a){let s;if(!Array.isArray(a)&&!Z(a)&&typeof a!="string"){let n;this.outputMessagesKey!==void 0?n=this.outputMessagesKey:Object.keys(a).length===1?n=Object.keys(a)[0]:n="output",a.generations!==void 0?s=a.generations[0][0].message:s=a[n]}else s=a;if(typeof s=="string")return[new Ft(s)];if(Array.isArray(s))return s;if(Z(s))return[s];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(s,null,2)}`)}async _enterHistory(a,s){const i=await(s?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?i.concat(this._getInputMessages(a)):i}async _exitHistory(a,s){const n=s.configurable?.messageHistory;let i;Array.isArray(a.inputs)&&Array.isArray(a.inputs[0])?i=a.inputs[0]:i=a.inputs;let c=this._getInputMessages(i);if(this.historyMessagesKey===void 0){const h=await n.getMessages();c=c.slice(h.length)}const l=a.outputs;if(!l)throw new Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(a,null,2)}`);const m=this._getOutputMessages(l);await n.addMessages([...c,...m])}async _mergeConfig(...a){const s=await super._mergeConfig(...a);if(!s.configurable||!s.configurable.sessionId){const i={[this.inputMessagesKey??"input"]:"foo"},c={configurable:{sessionId:"123"}};throw new Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
3
+ eg. chain.invoke(${JSON.stringify(i)}, ${JSON.stringify(c)})`)}const{sessionId:n}=s.configurable;return s.configurable.messageHistory=await this.getMessageHistory(n),s}},la={};$(la,{RouterRunnable:()=>ia,Runnable:()=>Y,RunnableAssign:()=>Dt,RunnableBinding:()=>Ut,RunnableBranch:()=>ca,RunnableEach:()=>Ze,RunnableLambda:()=>gt,RunnableMap:()=>kt,RunnableParallel:()=>Ge,RunnablePassthrough:()=>et,RunnablePick:()=>Ve,RunnableRetry:()=>je,RunnableSequence:()=>xt,RunnableToolLike:()=>Ue,RunnableWithFallbacks:()=>Be,RunnableWithMessageHistory:()=>ua,_coerceToRunnable:()=>q,ensureConfig:()=>Q,getCallbackManagerForConfig:()=>Bt,mergeConfigs:()=>Fe,patchConfig:()=>B,pickRunnableConfigKeys:()=>xe,raceWithSignal:()=>ke});var Xt=class extends Y{parseResultWithPrompt(a,s,n){return this.parseResult(a,n)}_baseMessageToString(a){return typeof a.content=="string"?a.content:this._baseMessageContentToString(a.content)}_baseMessageContentToString(a){return JSON.stringify(a)}async invoke(a,s){return typeof a=="string"?this._callWithConfig(async(n,i)=>this.parseResult([{text:n}],i?.callbacks),a,{...s,runType:"parser"}):this._callWithConfig(async(n,i)=>this.parseResult([{message:n,text:this._baseMessageToString(n)}],i?.callbacks),a,{...s,runType:"parser"})}},st=class extends Xt{parseResult(a,s){return this.parse(a[0].text,s)}async parseWithPrompt(a,s,n){return this.parse(a,n)}_type(){throw new Error("_type not implemented")}},j=class extends Error{llmOutput;observation;sendToLLM;constructor(a,s,n,i=!1){if(super(a),this.llmOutput=s,this.observation=n,this.sendToLLM=i,i&&(n===void 0||s===void 0))throw new Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true");$e(this,"OUTPUT_PARSING_FAILURE")}},W=class extends st{async*_transform(a){for await(const s of a)typeof s=="string"?yield this.parseResult([{text:s}]):yield this.parseResult([{message:s,text:this._baseMessageToString(s)}])}async*transform(a,s){yield*this._transformStreamWithConfig(a,this._transform.bind(this),{...s,runType:"parser"})}},bt=class extends W{diff=!1;constructor(a){super(a),this.diff=a?.diff??this.diff}async*_transform(a){let s,n;for await(const i of a){if(typeof i!="string"&&typeof i.content!="string")throw new Error("Cannot handle non-string output.");let c;if(He(i)){if(typeof i.content!="string")throw new Error("Cannot handle non-string message output.");c=new Pt({message:i,text:i.content})}else if(Z(i)){if(typeof i.content!="string")throw new Error("Cannot handle non-string message output.");c=new Pt({message:Xe(i),text:i.content})}else c=new Ye({text:i});n===void 0?n=c:n=n.concat(c);const l=await this.parsePartialResult([n]);l!=null&&!We(l,s)&&(this.diff?yield this._diff(s,l):yield l,s=l)}}getFormatInstructions(){return""}},ma={};$(ma,{applyPatch:()=>Je,compare:()=>dt});var ha=class extends bt{static lc_name(){return"JsonOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_concatOutputChunks(a,s){return this.diff?super._concatOutputChunks(a,s):s}_diff(a,s){if(s)return a?dt(a,s):[{op:"replace",path:"",value:s}]}async parsePartialResult(a){return ht(a[0].text)}async parse(a){return ht(a,JSON.parse)}getFormatInstructions(){return""}},fa=class extends W{static lc_name(){return"BytesOutputParser"}lc_namespace=["langchain_core","output_parsers","bytes"];lc_serializable=!0;textEncoder=new TextEncoder;parse(a){return Promise.resolve(this.textEncoder.encode(a))}getFormatInstructions(){return""}},J=class extends W{re;async*_transform(a){let s="";for await(const n of a)if(typeof n=="string"?s+=n:s+=n.content,this.re){const i=[...s.matchAll(this.re)];if(i.length>1){let c=0;for(const l of i.slice(0,-1))yield[l[1]],c+=(l.index??0)+l[0].length;s=s.slice(c)}}else{const i=await this.parse(s);if(i.length>1){for(const c of i.slice(0,-1))yield[c];s=i[i.length-1]}}for(const n of await this.parse(s))yield[n]}},pa=class extends J{static lc_name(){return"CommaSeparatedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;async parse(a){try{return a.trim().split(",").map(s=>s.trim())}catch{throw new j(`Could not parse output: ${a}`,a)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},ga=class extends J{lc_namespace=["langchain_core","output_parsers","list"];length;separator;constructor({length:a,separator:s}){super(...arguments),this.length=a,this.separator=s||","}async parse(a){try{const s=a.trim().split(this.separator).map(n=>n.trim());if(this.length!==void 0&&s.length!==this.length)throw new j(`Incorrect number of items. Expected ${this.length}, got ${s.length}.`);return s}catch(s){throw Object.getPrototypeOf(s)===j.prototype?s:new j(`Could not parse output: ${a}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},da=class extends J{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
4
+
5
+ 1. foo
6
+
7
+ 2. bar
8
+
9
+ 3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(a){return[...a.matchAll(this.re)??[]].map(s=>s[1])}},ba=class extends J{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
10
+
11
+ 1. foo
12
+
13
+ 2. bar
14
+
15
+ 3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(a){return[...a.matchAll(this.re)??[]].map(s=>s[1])}},_a=class extends W{static lc_name(){return"StrOutputParser"}lc_namespace=["langchain_core","output_parsers","string"];lc_serializable=!0;parse(a){return Promise.resolve(a)}getFormatInstructions(){return""}_textContentToString(a){return a.text}_imageUrlContentToString(a){throw new Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentToString(a){switch(a.type){case"text":case"text_delta":if("text"in a)return this._textContentToString(a);break;case"image_url":if("image_url"in a)return this._imageUrlContentToString(a);break;default:throw new Error(`Cannot coerce "${a.type}" message part into a string.`)}throw new Error(`Invalid content type: ${a.type}`)}_baseMessageContentToString(a){return a.reduce((s,n)=>s+this._messageContentToString(n),"")}},Yt=class extends st{static lc_name(){return"StructuredOutputParser"}lc_namespace=["langchain","output_parsers","structured"];toJSON(){return this.toJSONNotImplemented()}constructor(a){super(a),this.schema=a}static fromZodSchema(a){return new this(a)}static fromNamesAndDescriptions(a){const s=jt(Object.fromEntries(Object.entries(a).map(([n,i])=>[n,Vt().describe(i)])));return new this(s)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
16
+
17
+ "JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
18
+
19
+ For example, the example "JSON Schema" instance {{"properties": {{"foo": {{"description": "a list of test words", "type": "array", "items": {{"type": "string"}}}}}}, "required": ["foo"]}}
20
+ would match an object with one required property, "foo". The "type" property specifies "foo" must be an "array", and the "description" property semantically describes it as "a list of test words". The items within "foo" must be strings.
21
+ Thus, the object {{"foo": ["bar", "baz"]}} is a well-formatted instance of this example "JSON Schema". The object {{"properties": {{"foo": ["bar", "baz"]}}}} is not well-formatted.
22
+
23
+ Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!
24
+
25
+ Here is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:
26
+ \`\`\`json
27
+ ${JSON.stringify(at(this.schema))}
28
+ \`\`\`
29
+ `}async parse(a){try{const s=a.trim(),i=(s.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||s.match(/```json\s*([\s\S]*?)```/)?.[1]||s).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(c,l)=>`"${l.replace(/\n/g,"\\n")}"`).replace(/\n/g,"");return await Rt(this.schema,JSON.parse(i))}catch(s){throw new j(`Failed to parse. Text: "${a}". Error: ${s}`,a)}}},Wt=class extends Yt{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(a){const s=a?.interpolationDepth??1;if(s<1)throw new Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
30
+ \`\`\`json
31
+ ${this._schemaToInstruction(at(this.schema)).replaceAll("{","{".repeat(s)).replaceAll("}","}".repeat(s))}
32
+ \`\`\``}_schemaToInstruction(a,s=2){const n=a;if("type"in n){let i=!1,c;if(Array.isArray(n.type)){const h=n.type.findIndex(b=>b==="null");h!==-1&&(i=!0,n.type.splice(h,1)),c=n.type.join(" | ")}else c=n.type;if(n.type==="object"&&n.properties){const h=n.description?` // ${n.description}`:"";return`{
33
+ ${Object.entries(n.properties).map(([p,T])=>{const g=n.required?.includes(p)?"":" (optional)";return`${" ".repeat(s)}"${p}": ${this._schemaToInstruction(T,s+2)}${g}`}).join(`
34
+ `)}
35
+ ${" ".repeat(s-2)}}${h}`}if(n.type==="array"&&n.items){const h=n.description?` // ${n.description}`:"";return`array[
36
+ ${" ".repeat(s)}${this._schemaToInstruction(n.items,s+2)}
37
+ ${" ".repeat(s-2)}] ${h}`}const l=i?" (nullable)":"",m=n.description?` // ${n.description}`:"";return`${c}${m}${l}`}if("anyOf"in n)return n.anyOf.map(i=>this._schemaToInstruction(i,s)).join(`
38
+ ${" ".repeat(s-2)}`);throw new Error("unsupported schema type")}static fromZodSchema(a){return new this(a)}static fromNamesAndDescriptions(a){const s=jt(Object.fromEntries(Object.entries(a).map(([n,i])=>[n,Vt().describe(i)])));return new this(s)}},Ta=class extends st{structuredInputParser;constructor({inputSchema:a}){super(...arguments),this.structuredInputParser=new Wt(a)}async parse(a){let s;try{s=await this.structuredInputParser.parse(a)}catch(n){throw new j(`Failed to parse. Text: "${a}". Error: ${n}`,a)}return this.outputProcessor(s)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};const ya=function(){const a={};a.parser=function(e,t){return new n(e,t)},a.SAXParser=n,a.SAXStream=p,a.createStream=b,a.MAX_BUFFER_LENGTH=64*1024;const s=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];a.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function n(e,t){if(!(this instanceof n))return new n(e,t);var u=this;c(u),u.q=u.c="",u.bufferCheckPosition=a.MAX_BUFFER_LENGTH,u.opt=t||{},u.opt.lowercase=u.opt.lowercase||u.opt.lowercasetags,u.looseCase=u.opt.lowercase?"toLowerCase":"toUpperCase",u.tags=[],u.closed=u.closedRoot=u.sawRoot=!1,u.tag=u.error=null,u.strict=!!e,u.noscript=!!(e||u.opt.noscript),u.state=o.BEGIN,u.strictEntities=u.opt.strictEntities,u.ENTITIES=u.strictEntities?Object.create(a.XML_ENTITIES):Object.create(a.ENTITIES),u.attribList=[],u.opt.xmlns&&(u.ns=Object.create(d)),u.trackPosition=u.opt.position!==!1,u.trackPosition&&(u.position=u.line=u.column=0),H(u,"onready")}Object.create||(Object.create=function(e){function t(){}t.prototype=e;var u=new t;return u}),Object.keys||(Object.keys=function(e){var t=[];for(var u in e)e.hasOwnProperty(u)&&t.push(u);return t});function i(e){for(var t=Math.max(a.MAX_BUFFER_LENGTH,10),u=0,r=0,E=s.length;r<E;r++){var O=e[s[r]].length;if(O>t)switch(s[r]){case"textNode":X(e);break;case"cdata":C(e,"oncdata",e.cdata),e.cdata="";break;case"script":C(e,"onscript",e.script),e.script="";break;default:z(e,"Max buffer length exceeded: "+s[r])}u=Math.max(u,O)}var S=a.MAX_BUFFER_LENGTH-u;e.bufferCheckPosition=S+e.position}function c(e){for(var t=0,u=s.length;t<u;t++)e[s[t]]=""}function l(e){X(e),e.cdata!==""&&(C(e,"oncdata",e.cdata),e.cdata=""),e.script!==""&&(C(e,"onscript",e.script),e.script="")}n.prototype={end:function(){yt(this)},write:qt,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){l(this)}};var m=ReadableStream;m||(m=function(){});var h=a.EVENTS.filter(function(e){return e!=="error"&&e!=="end"});function b(e,t){return new p(e,t)}function p(e,t){if(!(this instanceof p))return new p(e,t);m.apply(this),this._parser=new n(e,t),this.writable=!0,this.readable=!0;var u=this;this._parser.onend=function(){u.emit("end")},this._parser.onerror=function(r){u.emit("error",r),u._parser.error=null},this._decoder=null,h.forEach(function(r){Object.defineProperty(u,"on"+r,{get:function(){return u._parser["on"+r]},set:function(E){if(!E)return u.removeAllListeners(r),u._parser["on"+r]=E,E;u.on(r,E)},enumerable:!0,configurable:!1})})}p.prototype=Object.create(m.prototype,{constructor:{value:p}}),p.prototype.write=function(e){return this._parser.write(e.toString()),this.emit("data",e),!0},p.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},p.prototype.on=function(e,t){var u=this;return!u._parser["on"+e]&&h.indexOf(e)!==-1&&(u._parser["on"+e]=function(){var r=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);r.splice(0,0,e),u.emit.apply(u,r)}),m.prototype.on.call(u,e,t)};var T="[CDATA[",g="DOCTYPE",y="http://www.w3.org/XML/1998/namespace",_="http://www.w3.org/2000/xmlns/",d={xml:y,xmlns:_},f=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,N=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,I=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,L=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function w(e){return e===" "||e===`
39
+ `||e==="\r"||e===" "}function M(e){return e==='"'||e==="'"}function D(e){return e===">"||w(e)}function k(e,t){return e.test(t)}function zt(e,t){return!k(e,t)}var o=0;a.STATE={BEGIN:o++,BEGIN_WHITESPACE:o++,TEXT:o++,TEXT_ENTITY:o++,OPEN_WAKA:o++,SGML_DECL:o++,SGML_DECL_QUOTED:o++,DOCTYPE:o++,DOCTYPE_QUOTED:o++,DOCTYPE_DTD:o++,DOCTYPE_DTD_QUOTED:o++,COMMENT_STARTING:o++,COMMENT:o++,COMMENT_ENDING:o++,COMMENT_ENDED:o++,CDATA:o++,CDATA_ENDING:o++,CDATA_ENDING_2:o++,PROC_INST:o++,PROC_INST_BODY:o++,PROC_INST_ENDING:o++,OPEN_TAG:o++,OPEN_TAG_SLASH:o++,ATTRIB:o++,ATTRIB_NAME:o++,ATTRIB_NAME_SAW_WHITE:o++,ATTRIB_VALUE:o++,ATTRIB_VALUE_QUOTED:o++,ATTRIB_VALUE_CLOSED:o++,ATTRIB_VALUE_UNQUOTED:o++,ATTRIB_VALUE_ENTITY_Q:o++,ATTRIB_VALUE_ENTITY_U:o++,CLOSE_TAG:o++,CLOSE_TAG_SAW_WHITE:o++,SCRIPT:o++,SCRIPT_ENDING:o++},a.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},a.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(a.ENTITIES).forEach(function(e){var t=a.ENTITIES[e],u=typeof t=="number"?String.fromCharCode(t):t;a.ENTITIES[e]=u});for(var _t in a.STATE)a.STATE[a.STATE[_t]]=_t;o=a.STATE;function H(e,t,u){e[t]&&e[t](u)}function C(e,t,u){e.textNode&&X(e),H(e,t,u)}function X(e){e.textNode=Tt(e.opt,e.textNode),e.textNode&&H(e,"ontext",e.textNode),e.textNode=""}function Tt(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function z(e,t){return X(e),e.trackPosition&&(t+=`
40
+ Line: `+e.line+`
41
+ Column: `+e.column+`
42
+ Char: `+e.c),t=new Error(t),e.error=t,H(e,"onerror",t),e}function yt(e){return e.sawRoot&&!e.closedRoot&&v(e,"Unclosed root tag"),e.state!==o.BEGIN&&e.state!==o.BEGIN_WHITESPACE&&e.state!==o.TEXT&&z(e,"Unexpected end"),X(e),e.c="",e.closed=!0,H(e,"onend"),n.call(e,e.strict,e.opt),e}function v(e,t){if(typeof e!="object"||!(e instanceof n))throw new Error("bad call to strictFail");e.strict&&z(e,t)}function Kt(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,u=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(u.ns=t.ns),e.attribList.length=0,C(e,"onopentagstart",u)}function nt(e,t){var u=e.indexOf(":"),r=u<0?["",e]:e.split(":"),E=r[0],O=r[1];return t&&e==="xmlns"&&(E="xmlns",O=""),{prefix:E,local:O}}function rt(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),e.attribList.indexOf(e.attribName)!==-1||e.tag.attributes.hasOwnProperty(e.attribName)){e.attribName=e.attribValue="";return}if(e.opt.xmlns){var t=nt(e.attribName,!0),u=t.prefix,r=t.local;if(u==="xmlns")if(r==="xml"&&e.attribValue!==y)v(e,"xml: prefix must be bound to "+y+`
43
+ Actual: `+e.attribValue);else if(r==="xmlns"&&e.attribValue!==_)v(e,"xmlns: prefix must be bound to "+_+`
44
+ Actual: `+e.attribValue);else{var E=e.tag,O=e.tags[e.tags.length-1]||e;E.ns===O.ns&&(E.ns=Object.create(O.ns)),E.ns[r]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,C(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}function F(e,t){if(e.opt.xmlns){var u=e.tag,r=nt(e.tagName);u.prefix=r.prefix,u.local=r.local,u.uri=u.ns[r.prefix]||"",u.prefix&&!u.uri&&(v(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),u.uri=r.prefix);var E=e.tags[e.tags.length-1]||e;u.ns&&E.ns!==u.ns&&Object.keys(u.ns).forEach(function(Ct){C(e,"onopennamespace",{prefix:Ct,uri:u.ns[Ct]})});for(var O=0,S=e.attribList.length;O<S;O++){var P=e.attribList[O],R=P[0],V=P[1],A=nt(R,!0),x=A.prefix,Qt=A.local,Nt=x===""?"":u.ns[x]||"",it={name:R,value:V,prefix:x,local:Qt,uri:Nt};x&&x!=="xmlns"&&!Nt&&(v(e,"Unbound namespace prefix: "+JSON.stringify(x)),it.uri=x),e.tag.attributes[R]=it,C(e,"onattribute",it)}e.attribList.length=0}e.tag.isSelfClosing=!!t,e.sawRoot=!0,e.tags.push(e.tag),C(e,"onopentag",e.tag),t||(!e.noscript&&e.tagName.toLowerCase()==="script"?e.state=o.SCRIPT:e.state=o.TEXT,e.tag=null,e.tagName=""),e.attribName=e.attribValue="",e.attribList.length=0}function ot(e){if(!e.tagName){v(e,"Weird empty close tag."),e.textNode+="</>",e.state=o.TEXT;return}if(e.script){if(e.tagName!=="script"){e.script+="</"+e.tagName+">",e.tagName="",e.state=o.SCRIPT;return}C(e,"onscript",e.script),e.script=""}var t=e.tags.length,u=e.tagName;e.strict||(u=u[e.looseCase]());for(var r=u;t--;){var E=e.tags[t];if(E.name!==r)v(e,"Unexpected close tag");else break}if(t<0){v(e,"Unmatched closing tag: "+e.tagName),e.textNode+="</"+e.tagName+">",e.state=o.TEXT;return}e.tagName=u;for(var O=e.tags.length;O-- >t;){var S=e.tag=e.tags.pop();e.tagName=e.tag.name,C(e,"onclosetag",e.tagName);var P={};for(var R in S.ns)P[R]=S.ns[R];var V=e.tags[e.tags.length-1]||e;e.opt.xmlns&&S.ns!==V.ns&&Object.keys(S.ns).forEach(function(A){var x=S.ns[A];C(e,"onclosenamespace",{prefix:A,uri:x})})}t===0&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=o.TEXT}function Et(e){var t=e.entity,u=t.toLowerCase(),r,E="";return e.ENTITIES[t]?e.ENTITIES[t]:e.ENTITIES[u]?e.ENTITIES[u]:(t=u,t.charAt(0)==="#"&&(t.charAt(1)==="x"?(t=t.slice(2),r=parseInt(t,16),E=r.toString(16)):(t=t.slice(1),r=parseInt(t,10),E=r.toString(10))),t=t.replace(/^0+/,""),isNaN(r)||E.toLowerCase()!==t?(v(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(r))}function vt(e,t){t==="<"?(e.state=o.OPEN_WAKA,e.startTagPosition=e.position):w(t)||(v(e,"Non-whitespace before first tag."),e.textNode=t,e.state=o.TEXT)}function It(e,t){var u="";return t<e.length&&(u=e.charAt(t)),u}function qt(e){var t=this;if(this.error)throw this.error;if(t.closed)return z(t,"Cannot write after close. Assign an onready handler.");if(e===null)return yt(t);typeof e=="object"&&(e=e.toString());for(var u=0,r="";r=It(e,u++),t.c=r,!!r;)switch(t.trackPosition&&(t.position++,r===`
45
+ `?(t.line++,t.column=0):t.column++),t.state){case o.BEGIN:if(t.state=o.BEGIN_WHITESPACE,r==="\uFEFF")continue;vt(t,r);continue;case o.BEGIN_WHITESPACE:vt(t,r);continue;case o.TEXT:if(t.sawRoot&&!t.closedRoot){for(var E=u-1;r&&r!=="<"&&r!=="&";)r=It(e,u++),r&&t.trackPosition&&(t.position++,r===`
46
+ `?(t.line++,t.column=0):t.column++);t.textNode+=e.substring(E,u-1)}r==="<"&&!(t.sawRoot&&t.closedRoot&&!t.strict)?(t.state=o.OPEN_WAKA,t.startTagPosition=t.position):(!w(r)&&(!t.sawRoot||t.closedRoot)&&v(t,"Text data outside of root node."),r==="&"?t.state=o.TEXT_ENTITY:t.textNode+=r);continue;case o.SCRIPT:r==="<"?t.state=o.SCRIPT_ENDING:t.script+=r;continue;case o.SCRIPT_ENDING:r==="/"?t.state=o.CLOSE_TAG:(t.script+="<"+r,t.state=o.SCRIPT);continue;case o.OPEN_WAKA:if(r==="!")t.state=o.SGML_DECL,t.sgmlDecl="";else if(!w(r))if(k(f,r))t.state=o.OPEN_TAG,t.tagName=r;else if(r==="/")t.state=o.CLOSE_TAG,t.tagName="";else if(r==="?")t.state=o.PROC_INST,t.procInstName=t.procInstBody="";else{if(v(t,"Unencoded <"),t.startTagPosition+1<t.position){var O=t.position-t.startTagPosition;r=new Array(O).join(" ")+r}t.textNode+="<"+r,t.state=o.TEXT}continue;case o.SGML_DECL:(t.sgmlDecl+r).toUpperCase()===T?(C(t,"onopencdata"),t.state=o.CDATA,t.sgmlDecl="",t.cdata=""):t.sgmlDecl+r==="--"?(t.state=o.COMMENT,t.comment="",t.sgmlDecl=""):(t.sgmlDecl+r).toUpperCase()===g?(t.state=o.DOCTYPE,(t.doctype||t.sawRoot)&&v(t,"Inappropriately located doctype declaration"),t.doctype="",t.sgmlDecl=""):r===">"?(C(t,"onsgmldeclaration",t.sgmlDecl),t.sgmlDecl="",t.state=o.TEXT):(M(r)&&(t.state=o.SGML_DECL_QUOTED),t.sgmlDecl+=r);continue;case o.SGML_DECL_QUOTED:r===t.q&&(t.state=o.SGML_DECL,t.q=""),t.sgmlDecl+=r;continue;case o.DOCTYPE:r===">"?(t.state=o.TEXT,C(t,"ondoctype",t.doctype),t.doctype=!0):(t.doctype+=r,r==="["?t.state=o.DOCTYPE_DTD:M(r)&&(t.state=o.DOCTYPE_QUOTED,t.q=r));continue;case o.DOCTYPE_QUOTED:t.doctype+=r,r===t.q&&(t.q="",t.state=o.DOCTYPE);continue;case o.DOCTYPE_DTD:t.doctype+=r,r==="]"?t.state=o.DOCTYPE:M(r)&&(t.state=o.DOCTYPE_DTD_QUOTED,t.q=r);continue;case o.DOCTYPE_DTD_QUOTED:t.doctype+=r,r===t.q&&(t.state=o.DOCTYPE_DTD,t.q="");continue;case o.COMMENT:r==="-"?t.state=o.COMMENT_ENDING:t.comment+=r;continue;case o.COMMENT_ENDING:r==="-"?(t.state=o.COMMENT_ENDED,t.comment=Tt(t.opt,t.comment),t.comment&&C(t,"oncomment",t.comment),t.comment=""):(t.comment+="-"+r,t.state=o.COMMENT);continue;case o.COMMENT_ENDED:r!==">"?(v(t,"Malformed comment"),t.comment+="--"+r,t.state=o.COMMENT):t.state=o.TEXT;continue;case o.CDATA:r==="]"?t.state=o.CDATA_ENDING:t.cdata+=r;continue;case o.CDATA_ENDING:r==="]"?t.state=o.CDATA_ENDING_2:(t.cdata+="]"+r,t.state=o.CDATA);continue;case o.CDATA_ENDING_2:r===">"?(t.cdata&&C(t,"oncdata",t.cdata),C(t,"onclosecdata"),t.cdata="",t.state=o.TEXT):r==="]"?t.cdata+="]":(t.cdata+="]]"+r,t.state=o.CDATA);continue;case o.PROC_INST:r==="?"?t.state=o.PROC_INST_ENDING:w(r)?t.state=o.PROC_INST_BODY:t.procInstName+=r;continue;case o.PROC_INST_BODY:if(!t.procInstBody&&w(r))continue;r==="?"?t.state=o.PROC_INST_ENDING:t.procInstBody+=r;continue;case o.PROC_INST_ENDING:r===">"?(C(t,"onprocessinginstruction",{name:t.procInstName,body:t.procInstBody}),t.procInstName=t.procInstBody="",t.state=o.TEXT):(t.procInstBody+="?"+r,t.state=o.PROC_INST_BODY);continue;case o.OPEN_TAG:k(N,r)?t.tagName+=r:(Kt(t),r===">"?F(t):r==="/"?t.state=o.OPEN_TAG_SLASH:(w(r)||v(t,"Invalid character in tag name"),t.state=o.ATTRIB));continue;case o.OPEN_TAG_SLASH:r===">"?(F(t,!0),ot(t)):(v(t,"Forward-slash in opening tag not followed by >"),t.state=o.ATTRIB);continue;case o.ATTRIB:if(w(r))continue;r===">"?F(t):r==="/"?t.state=o.OPEN_TAG_SLASH:k(f,r)?(t.attribName=r,t.attribValue="",t.state=o.ATTRIB_NAME):v(t,"Invalid attribute name");continue;case o.ATTRIB_NAME:r==="="?t.state=o.ATTRIB_VALUE:r===">"?(v(t,"Attribute without value"),t.attribValue=t.attribName,rt(t),F(t)):w(r)?t.state=o.ATTRIB_NAME_SAW_WHITE:k(N,r)?t.attribName+=r:v(t,"Invalid attribute name");continue;case o.ATTRIB_NAME_SAW_WHITE:if(r==="=")t.state=o.ATTRIB_VALUE;else{if(w(r))continue;v(t,"Attribute without value"),t.tag.attributes[t.attribName]="",t.attribValue="",C(t,"onattribute",{name:t.attribName,value:""}),t.attribName="",r===">"?F(t):k(f,r)?(t.attribName=r,t.state=o.ATTRIB_NAME):(v(t,"Invalid attribute name"),t.state=o.ATTRIB)}continue;case o.ATTRIB_VALUE:if(w(r))continue;M(r)?(t.q=r,t.state=o.ATTRIB_VALUE_QUOTED):(v(t,"Unquoted attribute value"),t.state=o.ATTRIB_VALUE_UNQUOTED,t.attribValue=r);continue;case o.ATTRIB_VALUE_QUOTED:if(r!==t.q){r==="&"?t.state=o.ATTRIB_VALUE_ENTITY_Q:t.attribValue+=r;continue}rt(t),t.q="",t.state=o.ATTRIB_VALUE_CLOSED;continue;case o.ATTRIB_VALUE_CLOSED:w(r)?t.state=o.ATTRIB:r===">"?F(t):r==="/"?t.state=o.OPEN_TAG_SLASH:k(f,r)?(v(t,"No whitespace between attributes"),t.attribName=r,t.attribValue="",t.state=o.ATTRIB_NAME):v(t,"Invalid attribute name");continue;case o.ATTRIB_VALUE_UNQUOTED:if(!D(r)){r==="&"?t.state=o.ATTRIB_VALUE_ENTITY_U:t.attribValue+=r;continue}rt(t),r===">"?F(t):t.state=o.ATTRIB;continue;case o.CLOSE_TAG:if(t.tagName)r===">"?ot(t):k(N,r)?t.tagName+=r:t.script?(t.script+="</"+t.tagName,t.tagName="",t.state=o.SCRIPT):(w(r)||v(t,"Invalid tagname in closing tag"),t.state=o.CLOSE_TAG_SAW_WHITE);else{if(w(r))continue;zt(f,r)?t.script?(t.script+="</"+r,t.state=o.SCRIPT):v(t,"Invalid tagname in closing tag."):t.tagName=r}continue;case o.CLOSE_TAG_SAW_WHITE:if(w(r))continue;r===">"?ot(t):v(t,"Invalid characters in closing tag");continue;case o.TEXT_ENTITY:case o.ATTRIB_VALUE_ENTITY_Q:case o.ATTRIB_VALUE_ENTITY_U:var S,P;switch(t.state){case o.TEXT_ENTITY:S=o.TEXT,P="textNode";break;case o.ATTRIB_VALUE_ENTITY_Q:S=o.ATTRIB_VALUE_QUOTED,P="attribValue";break;case o.ATTRIB_VALUE_ENTITY_U:S=o.ATTRIB_VALUE_UNQUOTED,P="attribValue";break}if(r===";")if(t.opt.unparsedEntities){var R=Et(t);t.entity="",t.state=S,t.write(R)}else t[P]+=Et(t),t.entity="",t.state=S;else k(t.entity.length?L:I,r)?t.entity+=r:(v(t,"Invalid character in entity name"),t[P]+="&"+t.entity+r,t.entity="",t.state=S);continue;default:throw new Error(t,"Unknown state: "+t.state)}return t.position>=t.bufferCheckPosition&&i(t),t}return String.fromCodePoint||(function(){var e=String.fromCharCode,t=Math.floor,u=function(){var r=16384,E=[],O,S,P=-1,R=arguments.length;if(!R)return"";for(var V="";++P<R;){var A=Number(arguments[P]);if(!isFinite(A)||A<0||A>1114111||t(A)!==A)throw RangeError("Invalid code point: "+A);A<=65535?E.push(A):(A-=65536,O=(A>>10)+55296,S=A%1024+56320,E.push(O,S)),(P+1===R||E.length>r)&&(V+=e.apply(null,E),E.length=0)}return V};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:u,configurable:!0,writable:!0}):String.fromCodePoint=u})(),a},Ea=ya(),ft=`The output should be formatted as a XML file.
47
+ 1. Output should conform to the tags below.
48
+ 2. If tags are not given, make them on your own.
49
+ 3. Remember to always open and close all the tags.
50
+
51
+ As an example, for the tags ["foo", "bar", "baz"]:
52
+ 1. String "<foo>
53
+ <bar>
54
+ <baz></baz>
55
+ </bar>
56
+ </foo>" is a well-formatted instance of the schema.
57
+ 2. String "<foo>
58
+ <bar>
59
+ </foo>" is a badly-formatted instance.
60
+ 3. String "<foo>
61
+ <tag>
62
+ </tag>
63
+ </foo>" is a badly-formatted instance.
64
+
65
+ Here are the output tags:
66
+ \`\`\`
67
+ {tags}
68
+ \`\`\``;var va=class extends bt{tags;constructor(a){super(a),this.tags=a?.tags}static lc_name(){return"XMLOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_diff(a,s){if(s)return a?dt(a,s):[{op:"replace",path:"",value:s}]}async parsePartialResult(a){return pt(a[0].text)}async parse(a){return pt(a)}getFormatInstructions(){return!!(this.tags&&this.tags.length>0)?ft.replace("{tags}",this.tags?.join(", ")??""):ft}};const Ia=a=>a.split(`
69
+ `).map(s=>s.replace(/^\s+/,"")).join(`
70
+ `).trim(),Jt=a=>{if(Object.keys(a).length===0)return{};const s={};return a.children.length>0?(s[a.name]=a.children.map(Jt),s):(s[a.name]=a.text??void 0,s)};function pt(a){const s=Ia(a),n=Ea.parser(!0);let i={};const c=[];n.onopentag=h=>{const b={name:h.name,attributes:h.attributes,children:[],text:"",isSelfClosing:h.isSelfClosing};c.length>0?c[c.length-1].children.push(b):i=b,h.isSelfClosing||c.push(b)},n.onclosetag=()=>{if(c.length>0){const h=c.pop();c.length===0&&h&&(i=h)}},n.ontext=h=>{if(c.length>0){const b=c[c.length-1];b.text+=h}},n.onattribute=h=>{if(c.length>0){const b=c[c.length-1];b.attributes[h.name]=h.value}};const l=/```(xml)?(.*)```/s.exec(s),m=l?l[2]:s;return n.write(m).close(),i&&i.name==="?xml"&&(i=i.children[0]),Jt(i)}var Na={};$(Na,{AsymmetricStructuredOutputParser:()=>Ta,BaseCumulativeTransformOutputParser:()=>bt,BaseLLMOutputParser:()=>Xt,BaseOutputParser:()=>st,BaseTransformOutputParser:()=>W,BytesOutputParser:()=>fa,CommaSeparatedListOutputParser:()=>pa,CustomListOutputParser:()=>ga,JsonMarkdownStructuredOutputParser:()=>Wt,JsonOutputParser:()=>ha,ListOutputParser:()=>J,MarkdownListOutputParser:()=>ba,NumberedListOutputParser:()=>da,OutputParserException:()=>j,StringOutputParser:()=>_a,StructuredOutputParser:()=>Yt,XMLOutputParser:()=>va,XML_FORMAT_INSTRUCTIONS:()=>ft,parseJsonMarkdown:()=>ht,parsePartialJson:()=>ze,parseXMLMarkdown:()=>pt});export{Xt as B,ha as J,j as O,et as R,Yt as S,Ht as a,bt as b,aa as c};
@@ -27,9 +27,9 @@
27
27
  rel="stylesheet"
28
28
  />
29
29
  <title>Inspector | mcp-use</title>
30
- <script type="module" crossorigin src="/inspector/assets/index-BFXh5irY.js"></script>
30
+ <script type="module" crossorigin src="/inspector/assets/index-CNfmoBX-.js"></script>
31
31
  <link rel="stylesheet" crossorigin href="/inspector/assets/index-cMXsdFDY.css">
32
- <script>window.__INSPECTOR_VERSION__ = "0.14.0-canary.0";</script>
32
+ <script>window.__INSPECTOR_VERSION__ = "0.14.0-canary.1";</script>
33
33
  </head>
34
34
  <body>
35
35
  <script>
@@ -12,60 +12,16 @@ import {
12
12
  handleChatRequest,
13
13
  handleChatRequestStream,
14
14
  storeWidgetData
15
- } from "./chunk-MCMZDGO6.js";
15
+ } from "./chunk-Z5QIR3IS.js";
16
16
 
17
17
  // src/server/shared-routes.ts
18
- import { logger } from "hono/logger";
18
+ import { mountMcpProxy } from "mcp-use/server";
19
19
  function registerInspectorRoutes(app, config) {
20
20
  app.get("/inspector/health", (c) => {
21
21
  return c.json({ status: "ok", timestamp: (/* @__PURE__ */ new Date()).toISOString() });
22
22
  });
23
- app.use("/inspector/api/proxy/*", logger());
24
- app.all("/inspector/api/proxy/*", async (c) => {
25
- try {
26
- const targetUrl = c.req.header("X-Target-URL");
27
- if (!targetUrl) {
28
- return c.json({ error: "X-Target-URL header is required" }, 400);
29
- }
30
- const method = c.req.method;
31
- const headers = {};
32
- const requestHeaders = c.req.header();
33
- for (const [key, value] of Object.entries(requestHeaders)) {
34
- const lowerKey = key.toLowerCase();
35
- if (!lowerKey.startsWith("x-proxy-") && !lowerKey.startsWith("x-target-") && lowerKey !== "host" && lowerKey !== "accept-encoding") {
36
- headers[key] = value;
37
- }
38
- }
39
- headers["Accept-Encoding"] = "identity";
40
- try {
41
- const targetUrlObj = new URL(targetUrl);
42
- headers.Host = targetUrlObj.host;
43
- } catch {
44
- return c.json({ error: "Invalid target URL" }, 400);
45
- }
46
- const body = method !== "GET" && method !== "HEAD" ? await c.req.arrayBuffer() : void 0;
47
- const response = await fetch(targetUrl, {
48
- method,
49
- headers,
50
- body: body ? new Uint8Array(body) : void 0
51
- });
52
- const responseHeaders = {};
53
- response.headers.forEach((value, key) => {
54
- const lowerKey = key.toLowerCase();
55
- if (lowerKey !== "content-encoding" && lowerKey !== "transfer-encoding" && lowerKey !== "content-length") {
56
- responseHeaders[key] = value;
57
- }
58
- });
59
- return new Response(response.body, {
60
- status: response.status,
61
- statusText: response.statusText,
62
- headers: responseHeaders
63
- });
64
- } catch (error) {
65
- const message = error instanceof Error ? error.message : "Unknown error";
66
- console.error("Proxy request failed:", message, error);
67
- return c.json({ error: "Proxy request failed", details: message }, 500);
68
- }
23
+ mountMcpProxy(app, {
24
+ path: "/inspector/api/proxy"
69
25
  });
70
26
  app.post("/inspector/api/chat/stream", async (c) => {
71
27
  try {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerInspectorRoutes
3
- } from "./chunk-XGILHZOF.js";
3
+ } from "./chunk-F7YWZTWJ.js";
4
4
  import {
5
5
  registerStaticRoutes
6
6
  } from "./chunk-YLX7JQDX.js";
@@ -15,7 +15,7 @@ async function* handleChatRequestStream(requestBody) {
15
15
  "Missing required fields: mcpServerUrl, llmConfig, messages"
16
16
  );
17
17
  }
18
- const { MCPAgent, MCPClient } = await import("mcp-use/browser");
18
+ const { MCPAgent, MCPClient } = await import("mcp-use");
19
19
  let llm;
20
20
  if (llmConfig.provider === "openai") {
21
21
  const { ChatOpenAI } = await import("@langchain/openai");
@@ -129,7 +129,7 @@ async function handleChatRequest(requestBody) {
129
129
  "Missing required fields: mcpServerUrl, llmConfig, messages"
130
130
  );
131
131
  }
132
- const { MCPAgent, MCPClient } = await import("mcp-use/browser");
132
+ const { MCPAgent, MCPClient } = await import("mcp-use");
133
133
  let llm;
134
134
  if (llmConfig.provider === "openai") {
135
135
  const { ChatOpenAI } = await import("@langchain/openai");
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  registerInspectorRoutes
4
- } from "./chunk-XGILHZOF.js";
4
+ } from "./chunk-F7YWZTWJ.js";
5
5
  import {
6
6
  findAvailablePort,
7
7
  isValidUrl
@@ -11,7 +11,7 @@ import {
11
11
  registerStaticRoutes
12
12
  } from "./chunk-YLX7JQDX.js";
13
13
  import "./chunk-67ROKQZG.js";
14
- import "./chunk-MCMZDGO6.js";
14
+ import "./chunk-Z5QIR3IS.js";
15
15
  import "./chunk-PKBMQBKP.js";
16
16
 
17
17
  // src/server/cli.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  mountInspector
3
- } from "./chunk-JEKCWLHD.js";
4
- import "./chunk-XGILHZOF.js";
3
+ } from "./chunk-Y4GX3FDV.js";
4
+ import "./chunk-F7YWZTWJ.js";
5
5
  import "./chunk-JCLAFMDT.js";
6
6
  import "./chunk-CVECQ7BJ.js";
7
7
  import "./chunk-YLX7JQDX.js";
@@ -9,7 +9,7 @@ import "./chunk-67ROKQZG.js";
9
9
  import {
10
10
  handleChatRequest,
11
11
  handleChatRequestStream
12
- } from "./chunk-MCMZDGO6.js";
12
+ } from "./chunk-Z5QIR3IS.js";
13
13
  import "./chunk-PKBMQBKP.js";
14
14
  export {
15
15
  handleChatRequest,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  mountInspector
3
- } from "./chunk-JEKCWLHD.js";
4
- import "./chunk-XGILHZOF.js";
3
+ } from "./chunk-Y4GX3FDV.js";
4
+ import "./chunk-F7YWZTWJ.js";
5
5
  import "./chunk-JCLAFMDT.js";
6
6
  import "./chunk-CVECQ7BJ.js";
7
7
  import "./chunk-YLX7JQDX.js";
8
8
  import "./chunk-67ROKQZG.js";
9
- import "./chunk-MCMZDGO6.js";
9
+ import "./chunk-Z5QIR3IS.js";
10
10
  import "./chunk-PKBMQBKP.js";
11
11
  export {
12
12
  mountInspector
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAuBA,iBAAe,WAAW;;;GA8EzB;;;;AAOD,wBAA+B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAyCA,iBAAe,WAAW;;;GAwFzB;;;;AAOD,wBAA+B"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerInspectorRoutes
3
- } from "./chunk-XGILHZOF.js";
3
+ } from "./chunk-F7YWZTWJ.js";
4
4
  import {
5
5
  isPortAvailable
6
6
  } from "./chunk-JCLAFMDT.js";
@@ -9,16 +9,32 @@ import {
9
9
  registerStaticRoutesWithDevProxy
10
10
  } from "./chunk-YLX7JQDX.js";
11
11
  import "./chunk-67ROKQZG.js";
12
- import "./chunk-MCMZDGO6.js";
12
+ import "./chunk-Z5QIR3IS.js";
13
13
  import "./chunk-PKBMQBKP.js";
14
14
 
15
15
  // src/server/server.ts
16
- import { exec } from "child_process";
17
- import { promisify } from "util";
18
16
  import { serve } from "@hono/node-server";
19
17
  import { Hono } from "hono";
20
18
  import { cors } from "hono/cors";
19
+ import { exec } from "child_process";
20
+ import { promisify } from "util";
21
21
  var execAsync = promisify(exec);
22
+ function parsePortFromArgs() {
23
+ const args = process.argv.slice(2);
24
+ for (let i = 0; i < args.length; i++) {
25
+ if (args[i] === "--port" && i + 1 < args.length) {
26
+ const parsedPort = Number.parseInt(args[i + 1], 10);
27
+ if (Number.isNaN(parsedPort) || parsedPort < 1 || parsedPort > 65535) {
28
+ console.error(
29
+ `Error: Port must be a number between 1 and 65535, got: ${args[i + 1]}`
30
+ );
31
+ process.exit(1);
32
+ }
33
+ return parsedPort;
34
+ }
35
+ }
36
+ return null;
37
+ }
22
38
  var app = new Hono();
23
39
  app.use("*", cors());
24
40
  registerInspectorRoutes(app);
@@ -26,9 +42,16 @@ registerStaticRoutesWithDevProxy(app);
26
42
  async function startServer() {
27
43
  try {
28
44
  const isDev = process.env.NODE_ENV === "development" || process.env.VITE_DEV === "true";
29
- let port = 3001;
45
+ const cliPort = parsePortFromArgs();
46
+ let port = cliPort ?? 3001;
30
47
  const available = await isPortAvailable(port);
31
48
  if (!available) {
49
+ if (cliPort !== null) {
50
+ console.error(
51
+ `\u274C Port ${port} is not available. Please stop the process using this port and try again.`
52
+ );
53
+ process.exit(1);
54
+ }
32
55
  if (isDev) {
33
56
  console.error(
34
57
  `\u274C\u274C\u274C Port ${port} is not available (probably used by Vite dev server as fallback so you should stop port 3000). Please stop the process using this port and try again.`
@@ -1 +1 @@
1
- {"version":3,"file":"shared-routes.d.ts","sourceRoot":"","sources":["../../src/server/shared-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiBjC;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,QA8mB5C"}
1
+ {"version":3,"file":"shared-routes.d.ts","sourceRoot":"","sources":["../../src/server/shared-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiBjC;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,QAgiB5C"}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerInspectorRoutes
3
- } from "./chunk-XGILHZOF.js";
3
+ } from "./chunk-F7YWZTWJ.js";
4
4
  import "./chunk-JCLAFMDT.js";
5
5
  import "./chunk-CVECQ7BJ.js";
6
- import "./chunk-MCMZDGO6.js";
6
+ import "./chunk-Z5QIR3IS.js";
7
7
  import "./chunk-PKBMQBKP.js";
8
8
  export {
9
9
  registerInspectorRoutes
@@ -1 +1 @@
1
- {"version":3,"file":"shared-utils-browser.d.ts","sourceRoot":"","sources":["../../src/server/shared-utils-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-utils-browser.d.ts","sourceRoot":"","sources":["../../src/server/shared-utils-browser.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import {
6
6
  handleChatRequest,
7
7
  handleChatRequestStream,
8
8
  storeWidgetData
9
- } from "./chunk-MCMZDGO6.js";
9
+ } from "./chunk-Z5QIR3IS.js";
10
10
  import "./chunk-PKBMQBKP.js";
11
11
  export {
12
12
  generateWidgetContainerHtml,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mcp-use/inspector",
3
3
  "type": "module",
4
- "version": "0.14.0-canary.0",
4
+ "version": "0.14.0-canary.1",
5
5
  "description": "MCP Inspector - A tool for inspecting and debugging MCP servers",
6
6
  "author": "",
7
7
  "license": "MIT",
@@ -86,7 +86,7 @@
86
86
  "sonner": "^2.0.7",
87
87
  "tailwind-merge": "^3.4.0",
88
88
  "vite-express": "^0.21.1",
89
- "mcp-use": "1.11.3-canary.0"
89
+ "mcp-use": "1.12.0-canary.1"
90
90
  },
91
91
  "publishConfig": {
92
92
  "access": "public"