@onyxsecurity/mcp-gateway 2.1.40 → 2.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/mcp-gateway.js +2 -2
- package/dist/{cli-CAJkf_BE.js → cli-DTkYkHaa.js} +2 -2
- package/dist/{cli-CAJkf_BE.js.map → cli-DTkYkHaa.js.map} +1 -1
- package/dist/{env-DW7bNp9e.js → env-BXOysH5D.js} +2 -2
- package/dist/{env-DW7bNp9e.js.map → env-BXOysH5D.js.map} +1 -1
- package/dist/{env-HJmBKke9.js → env-BsWYwatz.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{logger-AanoN79Y.js → logger-VdxpdGse.js} +2 -2
- package/dist/{logger-AanoN79Y.js.map → logger-VdxpdGse.js.map} +1 -1
- package/dist/{main-C1Tyuk4v.js → main-7pgTjUUY.js} +2 -2
- package/dist/{main-C1Tyuk4v.js.map → main-7pgTjUUY.js.map} +1 -1
- package/dist/{oauthProvidersClient-DHglUqos.js → oauthProvidersClient-DBgwx2Yu.js} +2 -2
- package/dist/{oauthProvidersClient-DHglUqos.js.map → oauthProvidersClient-DBgwx2Yu.js.map} +1 -1
- package/dist/oauthProvidersClient-zRPsOWjs.js +1 -0
- package/dist/{providers-DqYBslU6.js → providers-Dw-nuigJ.js} +2 -2
- package/dist/{providers-DqYBslU6.js.map → providers-Dw-nuigJ.js.map} +1 -1
- package/dist/{transportDetection-UvCkhuUq.js → transportDetection-C0T6rQqt.js} +2 -2
- package/dist/{transportDetection-UvCkhuUq.js.map → transportDetection-C0T6rQqt.js.map} +1 -1
- package/dist/{upstreamNegotiation-CKlqaA_j.js → upstreamNegotiation-bWTIQmfK.js} +2 -2
- package/dist/{upstreamNegotiation-CKlqaA_j.js.map → upstreamNegotiation-bWTIQmfK.js.map} +1 -1
- package/package.json +1 -1
- package/dist/oauthProvidersClient-BSKOBEK-.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{SESSION_ID as e,config as t}from"./env-
|
|
1
|
+
import{SESSION_ID as e,config as t}from"./env-BXOysH5D.js";import{extractTraceIdFromHeaders as n,gatewayCorrelationId as r,logger as i,runWithTraceContextAsync as a}from"./logger-VdxpdGse.js";import{AnnotationsSchema as o,AudioContentSchema as s,BaseMetadataSchema as c,BaseRequestParamsSchema as l,BlobResourceContentsSchema as u,BooleanSchemaSchema as d,CLIENT_CAPABILITIES_META_KEY as f,CLIENT_INFO_META_KEY as p,CallToolRequestParamsSchema as m,CallToolRequestSchema as h,CallToolResultSchema as g,CancelTaskRequestSchema as _,CancelTaskResultSchema as v,CancelledNotificationParamsSchema as y,CancelledNotificationSchema as b,ClientCapabilitiesSchema as x,ClientNotificationSchema as S,ClientRequestSchema as C,ClientResultSchema as ee,ClientTasksCapabilitySchema as te,CompatibilityCallToolResultSchema as ne,CompleteRequestParamsSchema as w,CompleteRequestSchema as re,CompleteResultSchema as T,ContentBlockSchema as ie,CreateMessageRequestParamsSchema as ae,CreateMessageRequestSchema as oe,CreateMessageResultSchema as se,CreateMessageResultWithToolsSchema as E,CreateTaskResultSchema as ce,CursorSchema as D,DEFAULT_NEGOTIATED_PROTOCOL_VERSION as O,DiscoverRequestSchema as le,DiscoverResultSchema as ue,ElicitRequestFormParamsSchema as de,ElicitRequestParamsSchema as fe,ElicitRequestSchema as k,ElicitRequestURLParamsSchema as pe,ElicitResultSchema as me,ElicitationCompleteNotificationParamsSchema as he,ElicitationCompleteNotificationSchema as ge,EmbeddedResourceSchema as _e,EmptyResultSchema as ve,EnumSchemaSchema as ye,GetPromptRequestParamsSchema as be,GetPromptRequestSchema as xe,GetPromptResultSchema as Se,GetTaskPayloadRequestSchema as Ce,GetTaskPayloadResultSchema as we,GetTaskRequestSchema as Te,GetTaskResultSchema as Ee,IconSchema as De,IconsSchema as Oe,IdJagTokenExchangeResponseSchema as ke,ImageContentSchema as Ae,ImplementationSchema as je,InitializeRequestParamsSchema as Me,InitializeRequestSchema as Ne,InitializeResultSchema as Pe,InitializedNotificationSchema as Fe,JSONArraySchema as Ie,JSONObjectSchema as Le,JSONRPCErrorResponseSchema as Re,JSONRPCMessageSchema as ze,JSONRPCNotificationSchema as Be,JSONRPCRequestSchema as Ve,JSONRPCResponseSchema as He,JSONRPCResultResponseSchema as Ue,JSONValueSchema as We,LATEST_PROTOCOL_VERSION as Ge,LOG_LEVEL_META_KEY as Ke,LegacyTitledEnumSchemaSchema as qe,ListChangedOptionsBaseSchema as Je,ListPromptsRequestSchema as Ye,ListPromptsResultSchema as Xe,ListResourceTemplatesRequestSchema as Ze,ListResourceTemplatesResultSchema as Qe,ListResourcesRequestSchema as $e,ListResourcesResultSchema as et,ListRootsRequestSchema as tt,ListRootsResultSchema as A,ListTasksRequestSchema as nt,ListTasksResultSchema as rt,ListToolsRequestSchema as it,ListToolsResultSchema as at,LoggingLevelSchema as ot,LoggingMessageNotificationParamsSchema as st,LoggingMessageNotificationSchema as ct,ModelHintSchema as lt,ModelPreferencesSchema as ut,MultiSelectEnumSchemaSchema as dt,NotificationSchema as ft,NotificationsParamsSchema as pt,NumberSchemaSchema as mt,OAuthClientInformationFullSchema as ht,OAuthClientInformationSchema as gt,OAuthClientMetadataSchema as _t,OAuthClientRegistrationErrorSchema as vt,OAuthErrorResponseSchema as yt,OAuthMetadataSchema as bt,OAuthProtectedResourceMetadataSchema as xt,OAuthTokenRevocationRequestSchema as St,OAuthTokensSchema as Ct,OpenIdProviderDiscoveryMetadataSchema as wt,OpenIdProviderMetadataSchema as Tt,PROTOCOL_VERSION_META_KEY as Et,PaginatedRequestParamsSchema as Dt,PaginatedRequestSchema as Ot,PaginatedResultSchema as kt,PingRequestSchema as At,PrimitiveSchemaDefinitionSchema as jt,ProgressNotificationParamsSchema as j,ProgressNotificationSchema as Mt,ProgressSchema as Nt,ProgressTokenSchema as Pt,PromptArgumentSchema as Ft,PromptListChangedNotificationSchema as It,PromptMessageSchema as Lt,PromptReferenceSchema as Rt,PromptSchema as zt,ReadResourceRequestParamsSchema as Bt,ReadResourceRequestSchema as Vt,ReadResourceResultSchema as Ht,RelatedTaskMetadataSchema as Ut,RequestIdSchema as Wt,RequestMetaSchema as Gt,RequestSchema as Kt,ResourceContentsSchema as qt,ResourceLinkSchema as Jt,ResourceListChangedNotificationSchema as Yt,ResourceRequestParamsSchema as Xt,ResourceSchema as M,ResourceTemplateReferenceSchema as Zt,ResourceTemplateSchema as Qt,ResourceUpdatedNotificationParamsSchema as $t,ResourceUpdatedNotificationSchema as en,ResultMetaObjectSchema as tn,ResultSchema as nn,RoleSchema as rn,RootSchema as an,RootsListChangedNotificationSchema as on,SERVER_INFO_META_KEY as sn,SUBSCRIPTION_ID_META_KEY as cn,SUPPORTED_PROTOCOL_VERSIONS as ln,SamplingContentSchema as un,SamplingMessageContentBlockSchema as dn,SamplingMessageSchema as fn,ServerCapabilitiesSchema as pn,ServerNotificationSchema as mn,ServerRequestSchema as hn,ServerResultSchema as gn,ServerTasksCapabilitySchema as _n,SetLevelRequestParamsSchema as vn,SetLevelRequestSchema as yn,SingleSelectEnumSchemaSchema as bn,StringSchemaSchema as xn,SubscribeRequestParamsSchema as Sn,SubscribeRequestSchema as Cn,SubscriptionFilterSchema as wn,SubscriptionsAcknowledgedNotificationParamsSchema as Tn,SubscriptionsAcknowledgedNotificationSchema as En,SubscriptionsListenRequestParamsSchema as Dn,SubscriptionsListenRequestSchema as On,SubscriptionsListenResultMetaSchema as kn,SubscriptionsListenResultSchema as An,TaskAugmentedRequestParamsSchema as jn,TaskCreationParamsSchema as Mn,TaskMetadataSchema as Nn,TaskSchema as Pn,TaskStatusNotificationParamsSchema as Fn,TaskStatusNotificationSchema as In,TaskStatusSchema as Ln,TextContentSchema as Rn,TextResourceContentsSchema as zn,TitledMultiSelectEnumSchemaSchema as Bn,TitledSingleSelectEnumSchemaSchema as Vn,ToolAnnotationsSchema as Hn,ToolChoiceSchema as Un,ToolExecutionSchema as Wn,ToolListChangedNotificationSchema as Gn,ToolResultContentSchema as Kn,ToolSchema as qn,ToolUseContentSchema as Jn,UnsubscribeRequestParamsSchema as Yn,UnsubscribeRequestSchema as Xn,UntitledMultiSelectEnumSchemaSchema as Zn,UntitledSingleSelectEnumSchemaSchema as Qn,_enum as N,_null as $n,array as P,boolean as F,date as er,datetime as tr,discriminatedUnion as nr,email as rr,intersection as ir,lazy as ar,literal as I,looseObject as L,number as R,object as z,optional as B,preprocess as or,record as V,safeParse as sr,string as H,toJSONSchema as cr,union as U,unknown as W,url as lr}from"./normalizeUrl-DoppHGlo.js";import ur,{randomUUID as dr}from"crypto";import{homedir as fr,hostname as pr,userInfo as mr}from"node:os";import{join as hr}from"node:path";import{randomUUID as gr}from"node:crypto";import{existsSync as _r,readFileSync as vr}from"node:fs";import{Readable as yr}from"stream";import br from"ps-list";import{deflateSync as xr}from"node:zlib";import Sr from"node:process";import{Http2ServerRequest as Cr,constants as wr}from"http2";import{URL as Tr}from"node:url";import Er from"node:http";var Dr=class{counter=0;events=new Map;async replayEventsAfter(e,{send:t}){if(!e||!this.events.has(e))return``;let n=this.getStreamIdFromEventId(e);if(!n)return``;let r=!1,i=[...this.events.entries()].sort((e,t)=>e[0].localeCompare(t[0]));for(let[a,{message:o,streamId:s}]of i){if(s!==n)continue;if(a===e){r=!0;continue}r&&await t(a,o)}return n}async storeEvent(e,t){let n=this.generateEventId(e);return this.events.set(n,{message:t,streamId:e}),n}generateEventId(e){let t=(++this.counter).toString().padStart(12,`0`);return`${e}_${Date.now()}_${t}_${Math.random().toString(36).substring(2,10)}`}getStreamIdFromEventId(e){let t=e.split(`_`);return t.length<4?``:t.slice(0,-3).join(`_`)}},Or=class extends Error{extra;tags;constructor(e,t,n={},r={}){super(t),this.name=e,this.tags=n,this.extra=r}},kr=class extends Or{constructor(e,t=`access_denied`,n={}){super(`AccessControlBlockError`,e,{feature:`access_control`,module:`security`,operation:`block`},{reason:t,...n}),this.reason=t}},Ar=class extends Or{constructor(e,t,n={}){super(`ConfigurationError`,e,{feature:`configuration`,module:`cli`,operation:`validate`},{configKey:t,...n})}},jr=class extends Or{constructor(e,t,n={}){super(`ProtocolEraMismatchError`,e,{feature:`protocol_era`,module:`proxy`,operation:`negotiate`},{url:t?(()=>{try{return new URL(t).origin}catch{return t}})():void 0,...n})}},Mr=class extends Or{constructor(e,t,n,r={},i){super(`ProxyConnectionError`,e,{feature:`connection`,module:`proxy`,operation:`connect`,transport:n||`unknown`},{url:t?(()=>{try{return new URL(t).origin}catch{return t}})():void 0,...r}),i!==void 0&&(this.cause=i)}};const Nr=t.clientAppName;let Pr=null;const Fr=async()=>(Pr||=await import(`systeminformation`),Pr);function Ir(e){return typeof e==`string`&&e!==``&&e.includes(`@`)}function Lr(){try{let e=Vr();if(!_r(e))return null;let t=vr(e,`utf-8`),n=!1;for(let e of t.split(`
|
|
2
2
|
`)){let t=e.trim();if(t.startsWith(`#`)||t.startsWith(`;`))continue;if(t.startsWith(`[`)){n=t.toLowerCase()===`[user]`;continue}if(n){let e=t.match(/^email\s*=\s*(.+)/i);if(e)return e[1].replace(/\s+[#;].*$/,``).trim()||null}}return null}catch{return null}}function Rr(){return hr(fr(),`.claude.json`)}function zr(){return hr(fr(),`.codex`,`auth.json`)}function Br(){try{return pr()}catch{return`unknown-device`}}function Vr(){return hr(fr(),`.gitconfig`)}async function Hr(e){try{return(await br()).find(t=>t.pid===e)?.name||`unknown`}catch{return`unknown`}}const Ur=new Map;async function Wr(e){let t=Ur.get(e);if(t)return t;let n=(async()=>{try{let{list:t}=await(await Fr()).processes(),n=t.find(t=>t.pid===e)?.started;if(n){let e=new Date(n);if(!Number.isNaN(e.getTime()))return e.toISOString()}return}catch{return}})();return Ur.set(e,n),n}function Gr(){return new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()}async function Kr(){try{let e=(await(await Fr()).system()).serial;return e&&e!==``&&e!==`0`&&!e.toLowerCase().includes(`to be filled`)?e:void 0}catch{return}}function qr(){try{let e=Yr()?.oauthAccount?.emailAddress;if(Ir(e))return e;let t=Xr();if(Ir(t))return t;let n=Lr();return Ir(n)?n:void 0}catch{return}}function Jr(){try{let e=mr();if(e.username)return e.username;throw Error(`userInfo() returned empty username`)}catch{return process.env.USER||process.env.USERNAME||process.env.LOGNAME}}function Yr(){try{let e=Rr();if(!_r(e))return null;let t=vr(e,`utf-8`);return JSON.parse(t)}catch{return null}}function Xr(){try{let e=zr();if(!_r(e))return null;let t=vr(e,`utf-8`),n=JSON.parse(t)?.tokens?.id_token;if(!n)return null;let r=n.split(`.`);if(r.length!==3)return null;let i=Buffer.from(r[1],`base64url`).toString(`utf-8`);return JSON.parse(i).email||null}catch{return null}}const Zr=()=>{if(!_r(`/.dockerenv`))return null;try{let e=vr(hr(fr(),`.onyx`,`container-context.json`),`utf8`),t=JSON.parse(e);return t.container_id?t:null}catch{return null}},Qr=e=>{let t=process.env.ONYX_DOCKER_CONTAINER_ID,n=t?null:Zr(),r=t||n?.container_id;return r?{...e,containerRuntime:process.env.ONYX_CONTAINER_RUNTIME||void 0,deviceName:process.env.ONYX_HOST_DEVICE_NAME||n?.host_device_name||e.deviceName,dockerContainerId:r,dockerContainerName:process.env.ONYX_DOCKER_CONTAINER_NAME||n?.container_name||void 0,dockerImage:process.env.ONYX_DOCKER_IMAGE||n?.image||void 0,dockerImageId:process.env.ONYX_DOCKER_IMAGE_ID||n?.image_id||void 0,inDockerContainer:!0,systemSerialNumber:process.env.ONYX_HOST_SERIAL_NUMBER||n?.host_serial_number||e.systemSerialNumber}:e},$r=async()=>{let e=process.pid,n=process.ppid,r=Gr();try{let i=Br(),[a,o,s]=await Promise.all([Kr(),Hr(n),Wr(n)]),c=qr(),l=Jr();return Qr({clientAppName:Nr||`unknown`,deviceName:i,email:c,gatewayVersion:t.appVersion,parentProcessId:n,parentProcessName:o,parentProcessStartTime:s,processId:e,processStartTime:r,systemSerialNumber:a,username:l})}catch{return Qr({clientAppName:Nr||`unknown`,deviceName:`unknown-device`,email:void 0,gatewayVersion:t.appVersion,parentProcessId:n,parentProcessName:`unknown`,processId:e,processStartTime:r,systemSerialNumber:void 0,username:void 0})}},ei=`[REDACTED]`,ti=new Set([`api_key`,`api-key`,`apikey`,`authorization`,`bearer`,`credential`,`credentials`,`header`,`headers`,`key`,`pass`,`passwd`,`password`,`pwd`,`secret`,`token`]);function ni(e){let t=[],n=!1;for(let r of e){if(n){t.push(ei),n=!1;continue}if(r.startsWith(`-H`)&&r.length>2&&!r.startsWith(`--`)&&r[2]!==`=`){t.push(`-H`+ei);continue}let e=ri(r);if(e!==null&&ii(e))if(r.includes(`=`)){let e=r.indexOf(`=`);t.push(r.slice(0,e+1)+ei)}else t.push(r),n=!0;else t.push(r)}return t}function ri(e){if(!e.startsWith(`-`))return null;let t=e.replace(/^-{1,2}/,``),n=t.indexOf(`=`);return n>=0?t.slice(0,n):t}function ii(e){return e===`H`?!0:ti.has(e.toLowerCase())}const ai=`onyx.security`;function oi(e){if(!e)return e;let t;try{t=new URL(e)}catch{return e}if(!t.host||t.pathname===``||t.pathname===`/`)return e;let n=t.hostname.toLowerCase().replace(/\.$/,``);if(n!==ai&&!n.endsWith(`.${ai}`))return e;let r=t.pathname.split(`/`),i=r.findIndex(e=>e.length>0);if(i===-1)return e;r[i]=`[REDACTED]`;let a=r.join(`/`);return`${t.protocol}//${t.host}${a}${t.search}${t.hash}`}function si(e){let t=xr(JSON.stringify(e));return Buffer.from(t).toString(`base64url`)}var ci=class{clientAppName;clientInfoBase64;sessionData;get scannerConfig(){return{apiKey:this.config.scanApiKey,enabled:this.config.scanEnabled,failOpen:this.config.scanFailOpen,headers:this.config.scanHeaders,timeoutMs:this.config.scanTimeoutMs,url:this.config.scanUrl}}config;constructor(e,t){this.config=e,this.sessionData=t,this.clientAppName=t.clientAppName||``,this.clientInfoBase64=this.getClientInfoBase64()}async evaluate(e){let t={action:`allow`};if(this.isScanEnabled())try{if(t=await this.scan({data:e.data,id:e.id,method:e.method,originalRequestId:e.originalRequestId,timestamp:e.timestamp,type:e.type}),i.info(`Scan result`,{action:t.action,id:e.id,method:e.method,originalRequestId:e.originalRequestId}),t.action===`block`)return i.warn(`Request blocked by security policy`),t}catch(t){if(i.error(`Scanning failed`,{error:t,method:e.method,requestType:e.type,scannerUrl:this.config.scanUrl}),!this.config.scanFailOpen)return i.warn(`Scanning service unavailable, blocking traffic (fail-closed)`),{action:`block`};i.warn(`Scanning service unavailable, allowing traffic (fail-open)`)}return t}isEnabled(){return this.isScanEnabled()}isScanEnabled(){return this.config.scanEnabled&&!!this.config.scanUrl}async scan(e){if(!this.isScanEnabled())return{action:`allow`};let t={data:e.data,id:e.id,metadata:this.buildEventMetadata(),method:e.method,originalRequestId:e.originalRequestId,type:e.type};i.info(`Scanning traffic`,{id:e.id,method:e.method,originalRequestId:e.originalRequestId,type:e.type});let n=await this.sendScanRequest(t);return i.info(`Scan result`,{action:n.action,blockReason:n.block_reason,hasModifiedData:!!n.modified_data,id:e.id,originalRequestId:e.originalRequestId}),n}updateConfig(e){this.config={...this.config,...e}}buildEventMetadata(){let e=this.config.spawnedServerInfoProvider?.();return{...this.sessionData,eventEndTime:new Date().toISOString(),...e?.pid===void 0?{}:{spawnedServerProcessId:e.pid},...e?.startedAtMs===void 0?{}:{spawnedServerProcessStartTime:new Date(e.startedAtMs).toISOString()}}}getClientInfoBase64(){return si(this.sessionData)}async sendScanRequest(t){let n=new AbortController,r=setTimeout(()=>n.abort(),this.config.scanTimeoutMs);try{let r=`${this.config.scanUrl}/${this.config.scanApiKey}/mcp/${this.clientInfoBase64}`,i={data:t.data,id:t.id,metadata:t.metadata,method:t.method,sessionId:e,...t.originalRequestId&&{original_request_id:String(t.originalRequestId)},type:t.type},a=await fetch(r,{body:JSON.stringify(i),headers:{"Content-Type":`application/json`,...this.config.scanHeaders},method:`POST`,signal:n.signal});if(!a.ok)throw Error(`Sanitization service returned ${a.status}: ${a.statusText}`);let o=await a.json();if(!o.action||![`allow`,`block`,`modify`].includes(o.action))throw Error(`Invalid scan response format: action="${o.action}"`);return o}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`Scan request timed out after ${this.config.scanTimeoutMs}ms`):e}finally{clearTimeout(r)}}};let li=null;const ui=async e=>{let t=await $r(),n=e.cliArgs.proxyType,r=n===`stdio`?{...e.cliArgs,args:ni(e.cliArgs.args)}:e.cliArgs,a={...t,proxyType:n,remoteCliArgs:n===`remote`?r:void 0,stdioCliArgs:n===`stdio`?r:void 0},o=n===`remote`?{...a,remoteCliArgs:{...r,url:oi(r.url)}}:a;return i.setSessionData(o),li=new ci(e,a),li},di=()=>li,fi=e=>{if(e.maxTotalTimeoutMs<0)throw Error(`maxTotalTimeoutMs must be >= 0 (0 disables the cap), got ${e.maxTotalTimeoutMs}`);let t={resetTimeoutOnProgress:e.resetTimeoutOnProgress,timeout:e.timeoutMs};return e.maxTotalTimeoutMs>0&&(t.maxTotalTimeout=e.maxTotalTimeoutMs),t},pi=new class{counts=new Map;lastLogTime=Date.now();logIntervalMs=6e4;increment(e){this.counts.set(e,(this.counts.get(e)||0)+1),this.maybeLog()}logAndReset(){if(this.counts.size===0)return;let e=(Array.from(this.counts.values()).reduce((e,t)=>e+t,0));i.info(`Requests intercepted`,{byMethod:Object.fromEntries(this.counts),eventType:`mcp_requests_intercepted`,totalCount:e}),this.counts.clear(),this.lastLogTime=Date.now()}maybeLog(){Date.now()-this.lastLogTime>=this.logIntervalMs&&this.logAndReset()}},mi=()=>{pi.logAndReset()},hi=e=>{if(e.length>1&&e[1]&&typeof e[1]==`object`&&`mcpReq`in e[1])return e[1].mcpReq?.id?.toString()},G=(e,t,n,r)=>async(...a)=>{pi.increment(e);let o=di(),s=e,c=a[0],l=dr(),u=hi(a)?.toString();c&&typeof c==`object`&&`method`in c&&typeof c.method==`string`&&(s=c.method);let d=async(e,t,n)=>{try{if(!o?.isEnabled()&&!o?.isScanEnabled())return;let r;try{r=await o.evaluate({data:t,id:l,method:s,originalRequestId:u,timestamp:new Date().toISOString(),type:e})}catch(t){if(i.error(`${e} evaluation failed, applying fail-safe`,{error:t}),o?.isScanEnabled()&&!o.scannerConfig?.failOpen)throw Error(`Security scanning service unavailable`);return}if(i.info(`${e} scan result`,{action:r.action,id:l,method:s,...e===`request`&&{originalRequestId:u}}),r.action===`block`||r.action===`modify`){let t=r.action===`block`?`blocked`:`modified`,a=r.action===`block`&&e===`request`?`warn`:`log`;if(r.modified_data){if(r.action===`block`){let n=`${e} ${t} by security policy${e===`request`?`, returning error response`:``}`;return a===`warn`?i.warn(n):i.info(n),r.modified_data}if(n){let o=`${e} ${t} by security policy`;a===`warn`?i.warn(o):i.info(o),n(r.modified_data);return}return r.modified_data}i.warn(`${r.action} action without modified_data, allowing original ${e}`)}return}catch(t){if(i.error(`Unexpected error during ${e} processing`,{error:t}),e===`request`&&t instanceof Error&&t.message===`Security scanning service unavailable`)throw t;return}},f;try{f=await d(`request`,c,e=>{a[0]=e})}catch(n){if(n instanceof Error&&n.message===`Security scanning service unavailable`)throw i.error(`Security scanning unavailable (fail-closed)`,{error:n.message,handlerName:e,operation:t}),n;i.error(`Unexpected error during request processing, continuing`,{error:n,handlerName:e,operation:t})}if(f!==void 0)return f;if(r&&!await r.isAllowed()){let n=r.getBlockReason();throw i.warn(`MCP server blocked by access control`,{handlerName:e,operation:t,reason:n}),new kr(n,`policy_block`)}try{let e=await n(...a);try{if(e){let t=await d(`response`,e);if(t!==void 0)return t}}catch(e){i.error(`Error during response processing, returning original result`,{error:e})}return e}catch(n){if(n instanceof kr)throw i.info(`Request blocked by access control`,{error:n.message,handlerName:e,operation:t,reason:n.reason}),n;try{await d(`error`,{error:n instanceof Error?n.message:String(n),stack:n instanceof Error?n.stack:void 0})}catch(e){i.warn(`Failed to evaluate error`,{evalError:e})}throw i.error(`Handler error in ${e}`,{argsCount:a.length,errorMessage:n instanceof Error?n.message:String(n),operation:t}),n}},gi=async({authorizer:e,client:n,forwarding:r=t.toolCall,server:a,serverCapabilities:o})=>{let s=fi(r);o?.logging&&(a.setNotificationHandler(`notifications/message`,G(`notifications/message`,`server-to-client`,async e=>n.notification(e),e)),n.setNotificationHandler(`notifications/message`,G(`notifications/message`,`client-to-server`,async e=>a.notification(e),e))),o?.prompts&&(a.setRequestHandler(`prompts/get`,G(`prompts/get`,`get`,async e=>n.getPrompt(e.params,s),e)),a.setRequestHandler(`prompts/list`,G(`prompts/list`,`list`,async e=>n.listPrompts(e.params,s),e))),o?.resources&&(a.setRequestHandler(`resources/list`,G(`resources/list`,`list`,async e=>n.listResources(e.params,s),e)),a.setRequestHandler(`resources/templates/list`,G(`resources/templates/list`,`list`,async e=>n.listResourceTemplates(e.params,s),e)),a.setRequestHandler(`resources/read`,G(`resources/read`,`read`,async e=>n.readResource(e.params,s),e)),o?.resources.subscribe&&(a.setNotificationHandler(`notifications/resources/updated`,G(`notifications/resources/updated`,`notify`,async e=>n.notification(e),e)),a.setRequestHandler(`resources/subscribe`,G(`resources/subscribe`,`subscribe`,async e=>n.subscribeResource(e.params,s),e)),a.setRequestHandler(`resources/unsubscribe`,G(`resources/unsubscribe`,`unsubscribe`,async e=>n.unsubscribeResource(e.params,s),e)))),o?.tools&&(a.setRequestHandler(`tools/call`,G(`tools/call`,`call`,async(e,t)=>{let r=t.mcpReq._meta?.progressToken,a=r===void 0?void 0:e=>{t.mcpReq.notify({method:`notifications/progress`,params:{...e,progressToken:r}}).catch(e=>{i.warn(`Failed to forward progress notification to client`,{error:e})})};return n.callTool(e.params,{...s,onprogress:a})},e)),a.setRequestHandler(`tools/list`,G(`tools/list`,`list`,async e=>n.listTools(e.params,s),e))),o?.completions&&a.setRequestHandler(`completion/complete`,G(`completion/complete`,`complete`,async e=>n.complete(e.params,s),e))};var _i=Object.create,vi=Object.defineProperty,yi=Object.getOwnPropertyDescriptor,bi=Object.getOwnPropertyNames,xi=Object.getPrototypeOf,Si=Object.prototype.hasOwnProperty,K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ci=(e,t)=>{let n={};for(var r in e)vi(n,r,{get:e[r],enumerable:!0});return t&&vi(n,Symbol.toStringTag,{value:`Module`}),n},wi=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=bi(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Si.call(e,s)&&s!==n&&vi(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=yi(t,s))||r.enumerable});return e},Ti=(e,t,n)=>(n=e==null?{}:_i(xi(e)),wi(t||!e||!e.__esModule?vi(n,`default`,{value:e,enumerable:!0}):n,e));const Ei=new Set([`https://json-schema.org/draft/2020-12/schema`,`http://json-schema.org/draft/2020-12/schema`]),Di=new Set([`https://json-schema.org/draft/2019-09/schema`,`http://json-schema.org/draft/2019-09/schema`]),Oi=new Set([`https://json-schema.org/draft-07/schema`,`http://json-schema.org/draft-07/schema`]),ki=new Set([`https://json-schema.org/draft-06/schema`,`http://json-schema.org/draft-06/schema`]);function Ai(e){return typeof e==`string`&&Di.has(e.replace(/#$/,``))}function ji(e,t){if(!(`$schema`in e)||typeof e.$schema!=`string`)return`2020-12`;let n=e.$schema.replace(/#$/,``);if(Ei.has(n))return`2020-12`;if(Di.has(n))return`2019-09`;if(Oi.has(n)||ki.has(n))return`draft-7`;throw Error(`JSON Schema declares an unsupported dialect ("$schema": "${e.$schema.slice(0,200)}"). The default validator supports JSON Schema 2020-12, 2019-09, draft-07, and draft-06; ${t}`)}const Mi=Symbol.for(`mcp.sdk.errorBrands`);function Ni(e,t){let n=new Set,r=t;for(;typeof r==`function`;){let e=r.mcpBrand;Object.prototype.hasOwnProperty.call(r,`mcpBrand`)&&typeof e==`string`&&n.add(e),r=Object.getPrototypeOf(r)}n.size!==0&&Object.defineProperty(e,Mi,{value:n,enumerable:!1,configurable:!0})}function Pi(e,t){try{if(typeof t==`object`&&t&&Object.prototype.hasOwnProperty.call(e,`mcpBrand`)&&typeof e.mcpBrand==`string`&&Object.prototype.hasOwnProperty.call(t,Mi)){let n=t[Mi];if(n&&typeof n.has==`function`&&n.has(e.mcpBrand))return!0}}catch{}return Function.prototype[Symbol.hasInstance].call(e,t)}(class e extends Error{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.OAuthError`})}static[Symbol.hasInstance](e){return Pi(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return Pi(this,e)}constructor(e,t,n){super(t),this.code=e,this.errorUri=n,this.name=`OAuthError`,Ni(this,new.target)}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}});let q=function(e){return e.NotConnected=`NOT_CONNECTED`,e.AlreadyConnected=`ALREADY_CONNECTED`,e.NotInitialized=`NOT_INITIALIZED`,e.CapabilityNotSupported=`CAPABILITY_NOT_SUPPORTED`,e.RequestTimeout=`REQUEST_TIMEOUT`,e.ConnectionClosed=`CONNECTION_CLOSED`,e.SendFailed=`SEND_FAILED`,e.InvalidResult=`INVALID_RESULT`,e.UnsupportedResultType=`UNSUPPORTED_RESULT_TYPE`,e.InputRequiredRoundsExceeded=`INPUT_REQUIRED_ROUNDS_EXCEEDED`,e.ListPaginationExceeded=`LIST_PAGINATION_EXCEEDED`,e.MethodNotSupportedByProtocolVersion=`METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION`,e.EraNegotiationFailed=`ERA_NEGOTIATION_FAILED`,e.ClientHttpNotImplemented=`CLIENT_HTTP_NOT_IMPLEMENTED`,e.ClientHttpAuthentication=`CLIENT_HTTP_AUTHENTICATION`,e.ClientHttpForbidden=`CLIENT_HTTP_FORBIDDEN`,e.ClientHttpUnexpectedContent=`CLIENT_HTTP_UNEXPECTED_CONTENT`,e.ClientHttpFailedToOpenStream=`CLIENT_HTTP_FAILED_TO_OPEN_STREAM`,e.ClientHttpFailedToTerminateSession=`CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION`,e}({});var J=class extends Error{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.SdkError`})}static[Symbol.hasInstance](e){return Pi(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return Pi(this,e)}constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`SdkError`,Ni(this,new.target)}};(class extends J{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.SdkHttpError`})}constructor(e,t,n){super(e,t,n),this.name=`SdkHttpError`}get status(){return this.data.status}get statusText(){return this.data.statusText}});function Fi(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ii(e,t,n){return e===`elicitation`&&t===`form`&&n.form===void 0&&n.url===void 0}function Li(e){switch(e.method){case`elicitation/create`:return e.params?.mode===`url`?{elicitation:{url:{}}}:{elicitation:{form:{}}};case`sampling/createMessage`:{let t=e.params;return t!==void 0&&(t.tools!==void 0||t.toolChoice!==void 0)?{sampling:{tools:{}}}:{sampling:{}}}case`roots/list`:return{roots:{}};default:return}}function Ri(e,t){let n={};for(let[r,i]of Object.entries(e)){if(i===void 0)continue;let e=t===void 0?void 0:t[r];if(e===void 0){n[r]=i;continue}if(Fi(i)&&Fi(e)){let t={};for(let[n,a]of Object.entries(i))a!==void 0&&e[n]===void 0&&!Ii(r,n,e)&&(t[n]=a);Object.keys(t).length>0&&(n[r]=t)}}return Object.keys(n).length>0?n:void 0}const zi=`2026-07-28`,Bi=[zi];function Vi(e){return e>=zi}function Hi(e){return e.filter(e=>!Vi(e))}function Ui(e){return e.filter(e=>Vi(e))}function Wi(e){let t=e.structuredContent;return t===void 0||!(typeof t!=`object`||!t||Array.isArray(t))||(e.content?.some(e=>e.type===`text`)??!1)?e:{...e,content:[...e.content??[],{type:`text`,text:JSON.stringify(t)}]}}const Gi=[`task`,`inputRequests`,`requestState`];function Ki(e){return typeof e!=`object`||!e||Array.isArray(e)||e.content!==void 0||Gi.some(t=>t in e)?e:{...e,content:[]}}function qi(){let e=ar(()=>U([H(),R(),F(),$n(),V(H(),e),P(e)])),t=V(H(),e),n=U([H(),R().int()]),r=H(),i=z({ttl:R().optional()}),a=z({taskId:H()}),o=L({progressToken:n.optional(),"io.modelcontextprotocol/related-task":a.optional()}),s=z({_meta:o.optional()}),c=s.extend({task:i.optional()}),l=z({method:H(),params:s.loose().optional()}),u=z({_meta:o.optional()}),d=z({method:H(),params:u.loose().optional()}),f=L({_meta:o.optional()}),p=U([H(),R().int()]),m=f.strict(),h=u.extend({requestId:p.optional(),reason:H().optional()}),g=d.extend({method:I(`notifications/cancelled`),params:h}),_=z({src:H(),mimeType:H().optional(),sizes:P(H()).optional(),theme:N([`light`,`dark`]).optional()}),v=z({icons:P(_).optional()}),y=z({name:H(),title:H().optional()}),b=y.extend({...y.shape,...v.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),x=ir(z({applyDefaults:F().optional()}),t),S=or(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,ir(z({form:x.optional(),url:t.optional()}),t.optional())),C=L({list:t.optional(),cancel:t.optional(),requests:L({sampling:L({createMessage:t.optional()}).optional(),elicitation:L({create:t.optional()}).optional()}).optional()}),ee=L({list:t.optional(),cancel:t.optional(),requests:L({tools:L({call:t.optional()}).optional()}).optional()}),te=z({experimental:V(H(),t).optional(),sampling:z({context:t.optional(),tools:t.optional()}).optional(),elicitation:S.optional(),roots:z({listChanged:F().optional()}).optional(),tasks:C.optional(),extensions:V(H(),t).optional()}),ne=s.extend({protocolVersion:H(),capabilities:te,clientInfo:b}),w=l.extend({method:I(`initialize`),params:ne}),re=z({experimental:V(H(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:z({listChanged:F().optional()}).optional(),resources:z({subscribe:F().optional(),listChanged:F().optional()}).optional(),tools:z({listChanged:F().optional()}).optional(),tasks:ee.optional(),extensions:V(H(),t).optional()}),T=f.extend({protocolVersion:H(),capabilities:re,serverInfo:b,instructions:H().optional()}),ie=d.extend({method:I(`notifications/initialized`),params:u.optional()}),ae=l.extend({method:I(`ping`),params:s.optional()}),oe=z({progress:R(),total:B(R()),message:B(H())}),se=z({...u.shape,...oe.shape,progressToken:n}),E=d.extend({method:I(`notifications/progress`),params:se}),ce=s.extend({cursor:r.optional()}),D=l.extend({params:ce.optional()}),O=f.extend({nextCursor:r.optional()}),le=z({uri:H(),mimeType:B(H()),_meta:V(H(),W()).optional()}),ue=le.extend({text:H()}),de=H().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),fe=le.extend({blob:de}),k=N([`user`,`assistant`]),pe=z({audience:P(k).optional(),priority:R().min(0).max(1).optional(),lastModified:tr({offset:!0}).optional()}),me=z({...y.shape,...v.shape,uri:H(),description:B(H()),mimeType:B(H()),size:B(R()),annotations:pe.optional(),_meta:B(L({}))}),he=z({...y.shape,...v.shape,uriTemplate:H(),description:B(H()),mimeType:B(H()),annotations:pe.optional(),_meta:B(L({}))}),ge=D.extend({method:I(`resources/list`)}),_e=O.extend({resources:P(me)}),ve=D.extend({method:I(`resources/templates/list`)}),ye=O.extend({resourceTemplates:P(he)}),be=s.extend({uri:H()}),xe=be,Se=l.extend({method:I(`resources/read`),params:xe}),Ce=f.extend({contents:P(U([ue,fe]))}),we=d.extend({method:I(`notifications/resources/list_changed`),params:u.optional()}),Te=be,Ee=l.extend({method:I(`resources/subscribe`),params:Te}),De=be,Oe=l.extend({method:I(`resources/unsubscribe`),params:De}),ke=u.extend({uri:H()}),Ae=d.extend({method:I(`notifications/resources/updated`),params:ke}),je=z({name:H(),description:B(H()),required:B(F())}),Me=z({...y.shape,...v.shape,description:B(H()),arguments:B(P(je)),_meta:B(L({}))}),Ne=D.extend({method:I(`prompts/list`)}),Pe=O.extend({prompts:P(Me)}),Fe=s.extend({name:H(),arguments:V(H(),H()).optional()}),Ie=l.extend({method:I(`prompts/get`),params:Fe}),Le=z({type:I(`text`),text:H(),annotations:pe.optional(),_meta:V(H(),W()).optional()}),Re=z({type:I(`image`),data:de,mimeType:H(),annotations:pe.optional(),_meta:V(H(),W()).optional()}),ze=z({type:I(`audio`),data:de,mimeType:H(),annotations:pe.optional(),_meta:V(H(),W()).optional()}),Be=z({type:I(`tool_use`),name:H(),id:H(),input:V(H(),W()),_meta:V(H(),W()).optional()}),Ve=z({type:I(`resource`),resource:U([ue,fe]),annotations:pe.optional(),_meta:V(H(),W()).optional()}),He=me.extend({type:I(`resource_link`)}),Ue=U([Le,Re,ze,He,Ve]),We=z({role:k,content:Ue}),Ge=f.extend({description:H().optional(),messages:P(We)}),Ke=d.extend({method:I(`notifications/prompts/list_changed`),params:u.optional()}),qe=z({title:H().optional(),readOnlyHint:F().optional(),destructiveHint:F().optional(),idempotentHint:F().optional(),openWorldHint:F().optional()}),Je=z({taskSupport:N([`required`,`optional`,`forbidden`]).optional()}),Ye=z({...y.shape,...v.shape,description:H().optional(),inputSchema:z({type:I(`object`),properties:V(H(),e).optional(),required:P(H()).optional()}).catchall(W()),outputSchema:z({type:I(`object`),properties:V(H(),e).optional(),required:P(H()).optional()}).catchall(W()).optional(),annotations:qe.optional(),execution:Je.optional(),_meta:V(H(),W()).optional()}),Xe=D.extend({method:I(`tools/list`)}),Ze=O.extend({tools:P(Ye)}),Qe=f.extend({content:P(Ue),structuredContent:V(H(),W()).optional(),isError:F().optional()}),$e=c.extend({name:H(),arguments:V(H(),W()).optional()}),et=l.extend({method:I(`tools/call`),params:$e}),tt=d.extend({method:I(`notifications/tools/list_changed`),params:u.optional()}),A=N([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),nt=s.extend({level:A}),rt=l.extend({method:I(`logging/setLevel`),params:nt}),it=u.extend({level:A,logger:H().optional(),data:W()}),at=d.extend({method:I(`notifications/message`),params:it}),ot=z({name:H().optional()}),st=z({hints:P(ot).optional(),costPriority:R().min(0).max(1).optional(),speedPriority:R().min(0).max(1).optional(),intelligencePriority:R().min(0).max(1).optional()}),ct=z({mode:N([`auto`,`required`,`none`]).optional()}),lt=z({type:I(`tool_result`),toolUseId:H().describe(`The unique identifier for the corresponding tool call.`),content:P(Ue),structuredContent:z({}).loose().optional(),isError:F().optional(),_meta:V(H(),W()).optional()}),ut=nr(`type`,[Le,Re,ze]),dt=nr(`type`,[Le,Re,ze,Be,lt]),ft=z({role:k,content:U([dt,P(dt)]),_meta:V(H(),W()).optional()}),pt=c.extend({messages:P(ft),modelPreferences:st.optional(),systemPrompt:H().optional(),includeContext:N([`none`,`thisServer`,`allServers`]).optional(),temperature:R().optional(),maxTokens:R().int(),stopSequences:P(H()).optional(),metadata:t.optional(),tools:P(Ye).optional(),toolChoice:ct.optional()}),mt=l.extend({method:I(`sampling/createMessage`),params:pt}),ht=f.extend({model:H(),stopReason:B(N([`endTurn`,`stopSequence`,`maxTokens`]).or(H())),role:k,content:ut}),gt=f.extend({model:H(),stopReason:B(N([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(H())),role:k,content:U([dt,P(dt)])}),_t=z({type:I(`boolean`),title:H().optional(),description:H().optional(),default:F().optional()}),vt=z({type:I(`string`),title:H().optional(),description:H().optional(),minLength:R().optional(),maxLength:R().optional(),format:N([`email`,`uri`,`date`,`date-time`]).optional(),default:H().optional()}),yt=z({type:N([`number`,`integer`]),title:H().optional(),description:H().optional(),minimum:R().optional(),maximum:R().optional(),default:R().optional()}),bt=z({type:I(`string`),title:H().optional(),description:H().optional(),enum:P(H()),default:H().optional()}),xt=z({type:I(`string`),title:H().optional(),description:H().optional(),oneOf:P(z({const:H(),title:H()})),default:H().optional()}),St=z({type:I(`string`),title:H().optional(),description:H().optional(),enum:P(H()),enumNames:P(H()).optional(),default:H().optional()}),Ct=U([bt,xt]),wt=z({type:I(`array`),title:H().optional(),description:H().optional(),minItems:R().optional(),maxItems:R().optional(),items:z({type:I(`string`),enum:P(H())}),default:P(H()).optional()}),Tt=z({type:I(`array`),title:H().optional(),description:H().optional(),minItems:R().optional(),maxItems:R().optional(),items:z({anyOf:P(z({const:H(),title:H()}))}),default:P(H()).optional()}),Et=U([wt,Tt]),Dt=U([St,Ct,Et]),Ot=U([Dt,_t,vt,yt]),kt=c.extend({mode:I(`form`).optional(),message:H(),requestedSchema:z({type:I(`object`),properties:V(H(),Ot),required:P(H()).optional()}).catchall(W())}),At=c.extend({mode:I(`url`),message:H(),elicitationId:H(),url:H().url()}),jt=U([kt,At]),j=l.extend({method:I(`elicitation/create`),params:jt}),Mt=u.extend({elicitationId:H()}),Nt=d.extend({method:I(`notifications/elicitation/complete`),params:Mt}),Pt=f.extend({action:N([`accept`,`decline`,`cancel`]),content:or(e=>e===null?void 0:e,V(H(),U([H(),R(),F(),P(H())])).optional())}),Ft=z({type:I(`ref/resource`),uri:H()}),It=z({type:I(`ref/prompt`),name:H()}),Lt=s.extend({ref:U([It,Ft]),argument:z({name:H(),value:H()}),context:z({arguments:V(H(),H()).optional()}).optional()}),Rt=l.extend({method:I(`completion/complete`),params:Lt}),zt=f.extend({completion:L({values:P(H()).max(100),total:B(R().int()),hasMore:B(F())})}),Bt=z({uri:H().startsWith(`file://`),name:H().optional(),_meta:V(H(),W()).optional()}),Vt=l.extend({method:I(`roots/list`),params:s.optional()}),Ht=f.extend({roots:P(Bt)}),Ut=d.extend({method:I(`notifications/roots/list_changed`),params:u.optional()}),Wt=L({ttl:R().optional(),pollInterval:R().optional()}),Gt=N([`working`,`input_required`,`completed`,`failed`,`cancelled`]),Kt=z({taskId:H(),status:Gt,ttl:U([R(),$n()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:B(R()),statusMessage:B(H())}),qt=f.extend({task:Kt}),Jt=u.merge(Kt),Yt=d.extend({method:I(`notifications/tasks/status`),params:Jt}),Xt=l.extend({method:I(`tasks/get`),params:s.extend({taskId:H()})}),M=f.merge(Kt),Zt=l.extend({method:I(`tasks/result`),params:s.extend({taskId:H()})}),Qt=f.loose(),$t=D.extend({method:I(`tasks/list`)}),en=O.extend({tasks:P(Kt)}),tn=l.extend({method:I(`tasks/cancel`),params:s.extend({taskId:H()})});return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,TaskMetadataSchema:i,RelatedTaskMetadataSchema:a,RequestMetaSchema:o,BaseRequestParamsSchema:s,TaskAugmentedRequestParamsSchema:c,RequestSchema:l,NotificationsParamsSchema:u,NotificationSchema:d,ResultSchema:f,RequestIdSchema:p,EmptyResultSchema:m,CancelledNotificationParamsSchema:h,CancelledNotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:y,ImplementationSchema:b,ClientTasksCapabilitySchema:C,ServerTasksCapabilitySchema:ee,ClientCapabilitiesSchema:te,InitializeRequestParamsSchema:ne,InitializeRequestSchema:w,ServerCapabilitiesSchema:re,InitializeResultSchema:T,InitializedNotificationSchema:ie,PingRequestSchema:ae,ProgressSchema:oe,ProgressNotificationParamsSchema:se,ProgressNotificationSchema:E,PaginatedRequestParamsSchema:ce,PaginatedRequestSchema:D,PaginatedResultSchema:O,ResourceContentsSchema:le,TextResourceContentsSchema:ue,BlobResourceContentsSchema:fe,RoleSchema:k,AnnotationsSchema:pe,ResourceSchema:me,ResourceTemplateSchema:he,ListResourcesRequestSchema:ge,ListResourcesResultSchema:_e,ListResourceTemplatesRequestSchema:ve,ListResourceTemplatesResultSchema:ye,ResourceRequestParamsSchema:be,ReadResourceRequestParamsSchema:xe,ReadResourceRequestSchema:Se,ReadResourceResultSchema:Ce,ResourceListChangedNotificationSchema:we,SubscribeRequestParamsSchema:Te,SubscribeRequestSchema:Ee,UnsubscribeRequestParamsSchema:De,UnsubscribeRequestSchema:Oe,ResourceUpdatedNotificationParamsSchema:ke,ResourceUpdatedNotificationSchema:Ae,PromptArgumentSchema:je,PromptSchema:Me,ListPromptsRequestSchema:Ne,ListPromptsResultSchema:Pe,GetPromptRequestParamsSchema:Fe,GetPromptRequestSchema:Ie,TextContentSchema:Le,ImageContentSchema:Re,AudioContentSchema:ze,ToolUseContentSchema:Be,EmbeddedResourceSchema:Ve,ResourceLinkSchema:He,ContentBlockSchema:Ue,PromptMessageSchema:We,GetPromptResultSchema:Ge,PromptListChangedNotificationSchema:Ke,ToolAnnotationsSchema:qe,ToolExecutionSchema:Je,ToolSchema:Ye,ListToolsRequestSchema:Xe,ListToolsResultSchema:Ze,CallToolResultSchema:Qe,CallToolRequestParamsSchema:$e,CallToolRequestSchema:et,ToolListChangedNotificationSchema:tt,LoggingLevelSchema:A,SetLevelRequestParamsSchema:nt,SetLevelRequestSchema:rt,LoggingMessageNotificationParamsSchema:it,LoggingMessageNotificationSchema:at,ModelHintSchema:ot,ModelPreferencesSchema:st,ToolChoiceSchema:ct,ToolResultContentSchema:lt,SamplingContentSchema:ut,SamplingMessageContentBlockSchema:dt,SamplingMessageSchema:ft,CreateMessageRequestParamsSchema:pt,CreateMessageRequestSchema:mt,CreateMessageResultSchema:ht,CreateMessageResultWithToolsSchema:gt,BooleanSchemaSchema:_t,StringSchemaSchema:vt,NumberSchemaSchema:yt,UntitledSingleSelectEnumSchemaSchema:bt,TitledSingleSelectEnumSchemaSchema:xt,LegacyTitledEnumSchemaSchema:St,SingleSelectEnumSchemaSchema:Ct,UntitledMultiSelectEnumSchemaSchema:wt,TitledMultiSelectEnumSchemaSchema:Tt,MultiSelectEnumSchemaSchema:Et,EnumSchemaSchema:Dt,PrimitiveSchemaDefinitionSchema:Ot,ElicitRequestFormParamsSchema:kt,ElicitRequestURLParamsSchema:At,ElicitRequestParamsSchema:jt,ElicitRequestSchema:j,ElicitationCompleteNotificationParamsSchema:Mt,ElicitationCompleteNotificationSchema:Nt,ElicitResultSchema:Pt,ResourceTemplateReferenceSchema:Ft,PromptReferenceSchema:It,CompleteRequestParamsSchema:Lt,CompleteRequestSchema:Rt,CompleteResultSchema:zt,RootSchema:Bt,ListRootsRequestSchema:Vt,ListRootsResultSchema:Ht,RootsListChangedNotificationSchema:Ut,TaskCreationParamsSchema:Wt,TaskStatusSchema:Gt,TaskSchema:Kt,CreateTaskResultSchema:qt,TaskStatusNotificationParamsSchema:Jt,TaskStatusNotificationSchema:Yt,GetTaskRequestSchema:Xt,GetTaskResultSchema:M,GetTaskPayloadRequestSchema:Zt,GetTaskPayloadResultSchema:Qt,ListTasksRequestSchema:$t,ListTasksResultSchema:en,CancelTaskRequestSchema:tn,CancelTaskResultSchema:f.merge(Kt),ClientRequestSchema:U([ae,w,Rt,rt,Ie,Ne,ge,ve,Se,Ee,Oe,et,Xe,Xt,Zt,$t,tn]),ClientNotificationSchema:U([g,E,ie,Ut,Yt]),ClientResultSchema:U([m,ht,gt,Pt,Ht,M,en,qt]),ServerRequestSchema:U([ae,mt,j,Vt,Xt,Zt,$t,tn]),ServerNotificationSchema:U([g,E,at,Ae,we,tt,Ke,Yt,Nt]),ServerResultSchema:U([m,T,zt,Ge,Pe,_e,ye,Ce,Qe,Ze,M,en,qt]),CallToolResultWireSchema:W().superRefine((e,t)=>{if(!(typeof e!=`object`||!e||Array.isArray(e)||e.content!==void 0)){for(let n of Gi)if(n in e){t.addIssue({code:`custom`,message:`content is required when the body carries '${n}' — another result family cannot default into an empty tools/call success`});return}}}).transform(Ki).pipe(Qe)}}let Ji;function Yi(){return Ji??=qi()}function Xi(e){return e.type!==`object`}const Zi=new Set([`const`,`enum`,`default`,`examples`]),Qi=new Set([`properties`,`patternProperties`,`$defs`,`definitions`,`dependentSchemas`,`dependencies`]);function $i(e){return e!==void 0&&!(typeof e==`string`&&e.startsWith(`#`))}function ea(e){let t=typeof e.$schema==`string`?e.$schema:void 0;if($i(e.$id))return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:e},required:[`result`]};let n=Ai(e.$schema)&&e.$recursiveAnchor!==!0,r=(e,t)=>{if(Array.isArray(e))return e.map(e=>r(e,!1));if(typeof e!=`object`||!e||!t&&$i(e.$id))return e;let i={},a=!1;for(let[o,s]of Object.entries(e))t?i[o]=r(s,!1):(o===`$ref`||o===`$dynamicRef`)&&typeof s==`string`?i[o]=s===`#`?`#/properties/result`:s.startsWith(`#/`)?`#/properties/result${s.slice(1)}`:s:o===`$recursiveRef`&&s===`#`&&n?a=!0:Zi.has(o)?i[o]=s:Qi.has(o)?i[o]=r(s,!0):i[o]=r(s,!1);return a&&(`$ref`in i?i.allOf=[...Array.isArray(i.allOf)?i.allOf:[],{$ref:`#/properties/result`}]:i.$ref=`#/properties/result`),i};return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:r(e,!1)},required:[`result`]}}const ta={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"tasks/get":null,"tasks/result":null,"tasks/list":null,"tasks/cancel":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},na={"notifications/cancelled":null,"notifications/progress":null,"notifications/initialized":null,"notifications/roots/list_changed":null,"notifications/tasks/status":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/elicitation/complete":null},ra={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null};let ia;function aa(){if(ia)return ia;let e=Yi();return ia={requestSchemas:{ping:e.PingRequestSchema,initialize:e.InitializeRequestSchema,"completion/complete":e.CompleteRequestSchema,"logging/setLevel":e.SetLevelRequestSchema,"prompts/get":e.GetPromptRequestSchema,"prompts/list":e.ListPromptsRequestSchema,"resources/list":e.ListResourcesRequestSchema,"resources/templates/list":e.ListResourceTemplatesRequestSchema,"resources/read":e.ReadResourceRequestSchema,"resources/subscribe":e.SubscribeRequestSchema,"resources/unsubscribe":e.UnsubscribeRequestSchema,"tools/call":e.CallToolRequestSchema,"tools/list":e.ListToolsRequestSchema,"tasks/get":e.GetTaskRequestSchema,"tasks/result":e.GetTaskPayloadRequestSchema,"tasks/list":e.ListTasksRequestSchema,"tasks/cancel":e.CancelTaskRequestSchema,"sampling/createMessage":e.CreateMessageRequestSchema,"elicitation/create":e.ElicitRequestSchema,"roots/list":e.ListRootsRequestSchema},notificationSchemas:{"notifications/cancelled":e.CancelledNotificationSchema,"notifications/progress":e.ProgressNotificationSchema,"notifications/initialized":e.InitializedNotificationSchema,"notifications/roots/list_changed":e.RootsListChangedNotificationSchema,"notifications/tasks/status":e.TaskStatusNotificationSchema,"notifications/message":e.LoggingMessageNotificationSchema,"notifications/resources/updated":e.ResourceUpdatedNotificationSchema,"notifications/resources/list_changed":e.ResourceListChangedNotificationSchema,"notifications/tools/list_changed":e.ToolListChangedNotificationSchema,"notifications/prompts/list_changed":e.PromptListChangedNotificationSchema,"notifications/elicitation/complete":e.ElicitationCompleteNotificationSchema},resultSchemas:{ping:e.EmptyResultSchema,initialize:e.InitializeResultSchema,"completion/complete":e.CompleteResultSchema,"logging/setLevel":e.EmptyResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"resources/subscribe":e.EmptyResultSchema,"resources/unsubscribe":e.EmptyResultSchema,"tools/call":e.CallToolResultWireSchema,"tools/list":e.ListToolsResultSchema,"sampling/createMessage":e.CreateMessageResultWithToolsSchema,"elicitation/create":e.ElicitResultSchema,"roots/list":e.ListRootsResultSchema}},ia}function oa(e){return Object.prototype.hasOwnProperty.call(ta,e)}function sa(e){return Object.prototype.hasOwnProperty.call(na,e)}function ca(e){return Object.prototype.hasOwnProperty.call(ra,e)}function la(e){return ca(e)?aa().resultSchemas[e]:void 0}function ua(e){return oa(e)?aa().requestSchemas[e]:void 0}function da(e){return sa(e)?aa().notificationSchemas[e]:void 0}function fa(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function pa(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}const ma={ok:!1,reason:`not-in-era`};function ha(e){return fa(e)&&fa(e.outputSchema)&&Xi(e.outputSchema)}function ga(e){return e}const _a={era:`2025-11-25`,hasRequestMethod:oa,hasNotificationMethod:sa,validateRequest:(e,t)=>pa(ua(e),t),validateResult:(e,t)=>pa(la(e),t),validateNotification:(e,t)=>pa(da(e),t),hasInputRequestMethod:()=>!1,validateInputRequest:()=>ma,validateInputResponse:()=>ma,samplingResultVariant:((e,t)=>{let n=Yi();return pa(e?n.CreateMessageResultWithToolsSchema:n.CreateMessageResultSchema,t)}),outboundEnvelope:e=>void 0,validateEnvelopeMeta:e=>[],projectCallToolResult(e,t){let n=Wi(e),r=n.structuredContent;if(r===void 0)return n;let i=typeof r!=`object`||!r||Array.isArray(r),a=t!==void 0&&Xi(t);return!i&&!a?n:{...n,structuredContent:{result:r}}},decodeResult(e,t){if(fa(t)&&`resultType`in t){let e={...t};return delete e.resultType,{kind:`complete`,result:ga(e)}}return{kind:`complete`,result:ga(t)}},encodeResult(e,t){if(e!==`tools/list`)return t;let n=t.tools;return!Array.isArray(n)||!n.some(e=>ha(e))?t:{...t,tools:n.map(e=>ha(e)?{...e,outputSchema:ea(e.outputSchema)}:e)}},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope:e=>void 0};function va(){let e=ar(()=>U([H(),R(),F(),$n(),V(H(),e),P(e)])),t=V(H(),e),n=U([H(),R().int()]),r=H(),i=U([H(),R().int()]),a=N([`user`,`assistant`]),o=N([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),s=H().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),c=z({ttl:R().optional()}),l=z({taskId:H()}),u=L({progressToken:n.optional(),"io.modelcontextprotocol/related-task":l.optional()}),d=z({_meta:u.optional()}),m=d.extend({task:c.optional()}),h=z({_meta:u.optional()}),g=z({method:H(),params:h.loose().optional()}),_=z({src:H(),mimeType:H().optional(),sizes:P(H()).optional(),theme:N([`light`,`dark`]).optional()}),v=z({icons:P(_).optional()}),y=z({name:H(),title:H().optional()}),b=y.extend({...y.shape,...v.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),x=ir(z({applyDefaults:F().optional()}),t),S=or(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,ir(z({form:x.optional(),url:t.optional()}),t.optional())),C=L({list:t.optional(),cancel:t.optional(),requests:L({sampling:L({createMessage:t.optional()}).optional(),elicitation:L({create:t.optional()}).optional()}).optional()}),ee=L({list:t.optional(),cancel:t.optional(),requests:L({tools:L({call:t.optional()}).optional()}).optional()}),te=z({experimental:V(H(),t).optional(),sampling:z({context:t.optional(),tools:t.optional()}).optional(),elicitation:S.optional(),roots:z({listChanged:F().optional()}).optional(),tasks:C.optional(),extensions:V(H(),t).optional()}),ne=z({experimental:V(H(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:z({listChanged:F().optional()}).optional(),resources:z({subscribe:F().optional(),listChanged:F().optional()}).optional(),tools:z({listChanged:F().optional()}).optional(),tasks:ee.optional(),extensions:V(H(),t).optional()}),w=z({progress:R(),total:B(R()),message:B(H())}),re=z({...h.shape,...w.shape,progressToken:n}),T=g.extend({method:I(`notifications/progress`),params:re}),ie=h.extend({level:o,logger:H().optional(),data:W()}),ae=g.extend({method:I(`notifications/message`),params:ie}),oe=z({uri:H(),mimeType:B(H()),_meta:V(H(),W()).optional()}),se=oe.extend({text:H()}),E=oe.extend({blob:s}),ce=z({audience:P(a).optional(),priority:R().min(0).max(1).optional(),lastModified:tr({offset:!0}).optional()}),D=z({...y.shape,...v.shape,uri:H(),description:B(H()),mimeType:B(H()),size:B(R()),annotations:ce.optional(),_meta:B(L({}))}),O=z({...y.shape,...v.shape,uriTemplate:H(),description:B(H()),mimeType:B(H()),annotations:ce.optional(),_meta:B(L({}))}),le=g.extend({method:I(`notifications/resources/list_changed`),params:h.optional()}),ue=h.extend({uri:H()}),de=g.extend({method:I(`notifications/resources/updated`),params:ue}),fe=z({name:H(),description:B(H()),required:B(F())}),k=z({...y.shape,...v.shape,description:B(H()),arguments:B(P(fe)),_meta:B(L({}))}),pe=g.extend({method:I(`notifications/prompts/list_changed`),params:h.optional()}),me=z({type:I(`text`),text:H(),annotations:ce.optional(),_meta:V(H(),W()).optional()}),he=z({type:I(`image`),data:s,mimeType:H(),annotations:ce.optional(),_meta:V(H(),W()).optional()}),ge=z({type:I(`audio`),data:s,mimeType:H(),annotations:ce.optional(),_meta:V(H(),W()).optional()}),_e=z({type:I(`tool_use`),name:H(),id:H(),input:V(H(),W()),_meta:V(H(),W()).optional()}),ve=z({type:I(`resource`),resource:U([se,E]),annotations:ce.optional(),_meta:V(H(),W()).optional()}),ye=D.extend({type:I(`resource_link`)}),be=U([me,he,ge,ye,ve]),xe=z({role:a,content:be}),Se=z({title:H().optional(),readOnlyHint:F().optional(),destructiveHint:F().optional(),idempotentHint:F().optional(),openWorldHint:F().optional()}),Ce=g.extend({method:I(`notifications/tools/list_changed`),params:h.optional()}),we=z({name:H().optional()}),Te=z({hints:P(we).optional(),costPriority:R().min(0).max(1).optional(),speedPriority:R().min(0).max(1).optional(),intelligencePriority:R().min(0).max(1).optional()}),Ee=z({mode:N([`auto`,`required`,`none`]).optional()}),De=z({type:I(`boolean`),title:H().optional(),description:H().optional(),default:F().optional()}),Oe=z({type:I(`string`),title:H().optional(),description:H().optional(),minLength:R().optional(),maxLength:R().optional(),format:N([`email`,`uri`,`date`,`date-time`]).optional(),default:H().optional()}),ke=z({type:N([`number`,`integer`]),title:H().optional(),description:H().optional(),minimum:R().optional(),maximum:R().optional(),default:R().optional()}),Ae=z({type:I(`string`),title:H().optional(),description:H().optional(),enum:P(H()),default:H().optional()}),je=z({type:I(`string`),title:H().optional(),description:H().optional(),oneOf:P(z({const:H(),title:H()})),default:H().optional()}),Me=z({type:I(`string`),title:H().optional(),description:H().optional(),enum:P(H()),enumNames:P(H()).optional(),default:H().optional()}),Ne=U([Ae,je]),Pe=z({type:I(`array`),title:H().optional(),description:H().optional(),minItems:R().optional(),maxItems:R().optional(),items:z({type:I(`string`),enum:P(H())}),default:P(H()).optional()}),Fe=z({type:I(`array`),title:H().optional(),description:H().optional(),minItems:R().optional(),maxItems:R().optional(),items:z({anyOf:P(z({const:H(),title:H()}))}),default:P(H()).optional()}),Ie=U([Pe,Fe]),Le=U([Me,Ne,Ie]),Re=U([Le,De,Oe,ke]),ze=m.extend({mode:I(`form`).optional(),message:H(),requestedSchema:z({type:I(`object`),properties:V(H(),Re),required:P(H()).optional()}).catchall(W())}),Be=z({type:I(`ref/resource`),uri:H()}),Ve=z({type:I(`ref/prompt`),name:H()}),He=z({uri:H().startsWith(`file://`),name:H().optional(),_meta:V(H(),W()).optional()}),Ue=te.shape,We=z({experimental:Ue.experimental,sampling:Ue.sampling,elicitation:Ue.elicitation,roots:Ue.roots,extensions:Ue.extensions}),Ge=ne.shape,qe=z({experimental:Ge.experimental,logging:Ge.logging,completions:Ge.completions,prompts:Ge.prompts,resources:Ge.resources,tools:Ge.tools,extensions:Ge.extensions}),Je=L({progressToken:n.optional(),[Et]:H(),[p]:b.optional(),[f]:We,[Ke]:o.optional()}),Ye=z({...y.shape,...v.shape,description:H().optional(),inputSchema:L({$schema:H().optional(),type:I(`object`)}),outputSchema:L({$schema:H().optional()}).optional(),annotations:Se.optional(),_meta:V(H(),W()).optional()}),Xe=z({type:I(`tool_result`),toolUseId:H(),content:P(be),structuredContent:W().optional(),isError:F().optional(),_meta:V(H(),W()).optional()}),Ze=U([me,he,ge,_e,Xe]),Qe=z({role:a,content:U([Ze,P(Ze)]),_meta:V(H(),W()).optional()}),$e=H(),et=L({[sn]:b.optional().catch(void 0)}),tt=et.optional();function A(e){return L({_meta:tt,resultType:$e.default(`complete`),...e})}let nt=A({}),rt=A({nextCursor:r.optional()}),it=A({content:P(be),structuredContent:W().optional(),isError:F().optional()}),at=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),tools:P(Ye),nextCursor:r.optional()}),ot=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),prompts:P(k),nextCursor:r.optional()}),st=A({description:H().optional(),messages:P(xe)}),ct=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),resources:P(D),nextCursor:r.optional()}),lt=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),resourceTemplates:P(O),nextCursor:r.optional()}),ut=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),contents:P(U([se,E]))}),dt=A({completion:z({values:P(H()).max(100),total:R().int().optional(),hasMore:F().optional()}).loose()}),ft=A({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`])}),pt=A({ttlMs:R().int().min(0).catch(0),cacheScope:N([`public`,`private`]).catch(`private`),supportedVersions:P(H()),capabilities:qe,instructions:H().optional()}),mt=z({messages:P(Qe),modelPreferences:Te.optional(),systemPrompt:H().optional(),includeContext:N([`none`,`thisServer`,`allServers`]).optional(),temperature:R().optional(),maxTokens:R().int(),stopSequences:P(H()).optional(),metadata:t.optional(),tools:P(Ye).optional(),toolChoice:Ee.optional()}),ht=z({method:I(`sampling/createMessage`),params:mt}),gt=z({method:I(`roots/list`),params:z({_meta:V(H(),W()).optional()}).optional()}),_t=z({...Qe.shape,model:H(),stopReason:H().optional()}),vt=z({roots:P(He)}),yt=z({action:N([`accept`,`decline`,`cancel`]),content:V(H(),U([H(),R(),F(),P(H())])).optional()}),bt=z({mode:I(`url`),message:H(),url:H().url()}),xt=U([ze,bt]),St=z({method:I(`elicitation/create`),params:xt}),Ct=U([ht,gt,St]),wt=U([_t,vt,yt]),Tt=V(H(),Ct),Dt=V(H(),wt),Ot=A({inputRequests:Tt.optional(),requestState:H().optional()}),kt={inputResponses:Dt.optional(),requestState:H().optional()},At=z({_meta:Je,...kt}),jt=L({progressToken:n.optional()});function j(e,t){return z({method:I(e),params:z({_meta:Je,...t})})}function Mt(e,t){return z({method:I(e),params:z({_meta:jt.optional(),...t}).optional()})}let Nt={name:H(),arguments:V(H(),W()).optional(),...kt},Pt={cursor:r.optional()},Ft=j(`tools/call`,Nt),It=j(`tools/list`,Pt),Lt=j(`prompts/list`,Pt),Rt=j(`prompts/get`,{name:H(),arguments:V(H(),H()).optional(),...kt}),zt=j(`resources/list`,Pt),Bt=j(`resources/templates/list`,Pt),Vt=j(`resources/read`,{uri:H(),...kt}),Ht={ref:U([Ve,Be]),argument:z({name:H(),value:H()}),context:z({arguments:V(H(),H()).optional()}).optional()},Ut=j(`completion/complete`,Ht),Wt=j(`server/discover`,{}),Gt=z({toolsListChanged:F().optional(),promptsListChanged:F().optional(),resourcesListChanged:F().optional(),resourceSubscriptions:P(H()).optional()}),Kt={notifications:Gt},qt=j(`subscriptions/listen`,Kt),Jt=et.extend({"io.modelcontextprotocol/subscriptionId":i}),Yt=L({_meta:Jt,resultType:$e.default(`complete`)}),Xt={"tools/call":Mt(`tools/call`,Nt),"tools/list":Mt(`tools/list`,Pt),"prompts/get":Mt(`prompts/get`,{name:H(),arguments:V(H(),H()).optional()}),"prompts/list":Mt(`prompts/list`,Pt),"resources/list":Mt(`resources/list`,Pt),"resources/templates/list":Mt(`resources/templates/list`,Pt),"resources/read":Mt(`resources/read`,{uri:H()}),"completion/complete":Mt(`completion/complete`,Ht),"server/discover":Mt(`server/discover`,{}),"subscriptions/listen":Mt(`subscriptions/listen`,Kt)};function M(e){return L({_meta:tt,...e})}let Zt={"tools/call":M({content:P(be),structuredContent:W().optional(),isError:F().optional()}),"tools/list":M({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),tools:P(Ye),nextCursor:r.optional()}),"prompts/get":M({description:H().optional(),messages:P(xe)}),"prompts/list":M({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),prompts:P(k),nextCursor:r.optional()}),"resources/list":M({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),resources:P(D),nextCursor:r.optional()}),"resources/templates/list":M({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),resourceTemplates:P(O),nextCursor:r.optional()}),"resources/read":M({ttlMs:R().int().min(0),cacheScope:N([`public`,`private`]),contents:P(U([se,E]))}),"completion/complete":M({completion:z({values:P(H()).max(100),total:R().int().optional(),hasMore:F().optional()}).loose()}),"server/discover":M({ttlMs:R().int().min(0).catch(0),cacheScope:N([`public`,`private`]).catch(`private`),supportedVersions:P(H()),capabilities:qe,instructions:H().optional()}),"subscriptions/listen":M({})},Qt=L({"io.modelcontextprotocol/subscriptionId":i.optional()}),$t=z({method:I(`notifications/subscriptions/acknowledged`),params:z({_meta:Qt.optional(),notifications:Gt})}),en=z({_meta:Qt.optional(),requestId:i,reason:H().optional()}),tn=z({method:I(`notifications/cancelled`),params:en}),nn={"notifications/cancelled":tn,"notifications/progress":T,"notifications/message":ae,"notifications/resources/updated":de,"notifications/resources/list_changed":le,"notifications/tools/list_changed":Ce,"notifications/prompts/list_changed":pe,"notifications/subscriptions/acknowledged":$t},rn=e=>z({jsonrpc:I(`2.0`),id:U([H(),R().int()]),result:e}).strict();return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,RequestIdSchema:i,RoleSchema:a,LoggingLevelSchema:o,TaskMetadataSchema:c,RelatedTaskMetadataSchema:l,RequestMetaSchema:u,BaseRequestParamsSchema:d,TaskAugmentedRequestParamsSchema:m,NotificationsParamsSchema:h,NotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:y,ImplementationSchema:b,ClientTasksCapabilitySchema:C,ServerTasksCapabilitySchema:ee,ClientCapabilitiesSchema:te,ServerCapabilitiesSchema:ne,ProgressSchema:w,ProgressNotificationParamsSchema:re,ProgressNotificationSchema:T,LoggingMessageNotificationParamsSchema:ie,LoggingMessageNotificationSchema:ae,ResourceContentsSchema:oe,TextResourceContentsSchema:se,BlobResourceContentsSchema:E,AnnotationsSchema:ce,ResourceSchema:D,ResourceTemplateSchema:O,ResourceListChangedNotificationSchema:le,ResourceUpdatedNotificationParamsSchema:ue,ResourceUpdatedNotificationSchema:de,PromptArgumentSchema:fe,PromptSchema:k,PromptListChangedNotificationSchema:pe,TextContentSchema:me,ImageContentSchema:he,AudioContentSchema:ge,ToolUseContentSchema:_e,EmbeddedResourceSchema:ve,ResourceLinkSchema:ye,ContentBlockSchema:be,PromptMessageSchema:xe,ToolAnnotationsSchema:Se,ToolListChangedNotificationSchema:Ce,ModelHintSchema:we,ModelPreferencesSchema:Te,ToolChoiceSchema:Ee,BooleanSchemaSchema:De,StringSchemaSchema:Oe,NumberSchemaSchema:ke,UntitledSingleSelectEnumSchemaSchema:Ae,TitledSingleSelectEnumSchemaSchema:je,LegacyTitledEnumSchemaSchema:Me,SingleSelectEnumSchemaSchema:Ne,UntitledMultiSelectEnumSchemaSchema:Pe,TitledMultiSelectEnumSchemaSchema:Fe,MultiSelectEnumSchemaSchema:Ie,EnumSchemaSchema:Le,PrimitiveSchemaDefinitionSchema:Re,ElicitRequestFormParamsSchema:ze,ResourceTemplateReferenceSchema:Be,PromptReferenceSchema:Ve,RootSchema:He,ClientCapabilities2026Schema:We,ServerCapabilities2026Schema:qe,RequestMetaEnvelopeSchema:Je,ToolSchema:Ye,ToolResultContentSchema:Xe,SamplingMessageContentBlockSchema:Ze,SamplingMessageSchema:Qe,ResultTypeSchema:$e,ResultMetaSchema:et,ResultSchema:nt,PaginatedResultSchema:rt,CallToolResultSchema:it,ListToolsResultSchema:at,ListPromptsResultSchema:ot,GetPromptResultSchema:st,ListResourcesResultSchema:ct,ListResourceTemplatesResultSchema:lt,ReadResourceResultSchema:ut,CompleteResultSchema:dt,CacheableResultSchema:ft,DiscoverResultSchema:pt,CreateMessageRequestParamsSchema:mt,CreateMessageRequestSchema:ht,ListRootsRequestSchema:gt,CreateMessageResultSchema:_t,ListRootsResultSchema:vt,ElicitResultSchema:yt,ElicitRequestURLParamsSchema:bt,ElicitRequestParamsSchema:xt,ElicitRequestSchema:St,InputRequestSchema:Ct,InputResponseSchema:wt,InputRequestsSchema:Tt,InputResponsesSchema:Dt,InputRequiredResultSchema:Ot,InputResponseRequestParamsSchema:At,CallToolRequestSchema:Ft,ListToolsRequestSchema:It,ListPromptsRequestSchema:Lt,GetPromptRequestSchema:Rt,ListResourcesRequestSchema:zt,ListResourceTemplatesRequestSchema:Bt,ReadResourceRequestSchema:Vt,CompleteRequestSchema:Ut,DiscoverRequestSchema:Wt,SubscriptionFilterSchema:Gt,SubscriptionsListenRequestSchema:qt,SubscriptionsListenResultMetaSchema:Jt,SubscriptionsListenResultSchema:Yt,dispatchRequestSchemas:Xt,dispatchResultSchemas:Zt,NotificationMetaSchema:Qt,SubscriptionsAcknowledgedNotificationSchema:$t,CancelledNotificationParamsSchema:en,CancelledNotificationSchema:tn,notificationSchemas2026:nn,JSONRPCResultResponseSchema:rn(nt),CallToolResultResponseSchema:rn(U([it,Ot])),ListToolsResultResponseSchema:rn(at),ListPromptsResultResponseSchema:rn(ot),GetPromptResultResponseSchema:rn(U([st,Ot])),ListResourcesResultResponseSchema:rn(ct),ListResourceTemplatesResultResponseSchema:rn(lt),ReadResourceResultResponseSchema:rn(U([ut,Ot])),CompleteResultResponseSchema:rn(dt),DiscoverResultResponseSchema:rn(pt)}}let ya;function ba(){return ya??=va()}const xa=[`tools/list`,`prompts/list`,`resources/list`,`resources/templates/list`,`resources/read`,`server/discover`];function Sa(e){return xa.includes(e)}const Ca=Symbol(`modelcontextprotocol.resultCacheHintFallback`);function wa(e,t){if(t===void 0)return e;let n=e[Ca];if(n===void 0)return{...e,[Ca]:t};let r={},i=n.ttlMs??t.ttlMs;i!==void 0&&(r.ttlMs=i);let a=n.cacheScope??t.cacheScope;return a!==void 0&&(r.cacheScope=a),{...e,[Ca]:r}}function Ta(e){return e[Ca]}function Ea(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Da(e){return e===`public`||e===`private`}function Oa(e,t){if(e.ttlMs!==void 0&&!Ea(e.ttlMs))throw RangeError(`Invalid cache hint for ${t}: ttlMs must be a non-negative safe integer (got ${String(e.ttlMs)})`);if(e.cacheScope!==void 0&&!Da(e.cacheScope))throw RangeError(`Invalid cache hint for ${t}: cacheScope must be 'public' or 'private' (got ${String(e.cacheScope)})`)}let Y=function(e){return e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.ResourceNotFound=-32002]=`ResourceNotFound`,e[e.MissingRequiredClientCapability=-32021]=`MissingRequiredClientCapability`,e[e.UnsupportedProtocolVersion=-32022]=`UnsupportedProtocolVersion`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`,e}({});var X=class e extends Error{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.ProtocolError`})}static[Symbol.hasInstance](e){return Pi(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return Pi(this,e)}constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`ProtocolError`,Ni(this,new.target)}static fromError(t,n,r){if(t===Y.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new Aa(e.elicitations,n)}if(t===Y.UnsupportedProtocolVersion&&r){let e=r;if(Array.isArray(e.supported)&&typeof e.requested==`string`)return new ja({supported:e.supported,requested:e.requested},n)}if(t===Y.InvalidParams||t===Y.ResourceNotFound){let e=r;if(typeof e?.uri==`string`&&(t===Y.ResourceNotFound||Object.keys(e).length===1))return new ka(e.uri,n)}if(t===Y.MissingRequiredClientCapability&&r){let e=r;if(e.requiredCapabilities!==null&&typeof e.requiredCapabilities==`object`&&!Array.isArray(e.requiredCapabilities))return new Ma({requiredCapabilities:e.requiredCapabilities},n)}return new e(t,n,r)}},ka=class extends X{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.ResourceNotFoundError`})}constructor(e,t=`Resource not found: ${e}`){super(Y.InvalidParams,t,{uri:e})}get uri(){return this.data.uri}},Aa=class extends X{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.UrlElicitationRequiredError`})}constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(Y.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},ja=class extends X{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.UnsupportedProtocolVersionError`})}constructor(e,t=`Unsupported protocol version: ${e.requested}`){super(Y.UnsupportedProtocolVersion,t,e)}get supported(){return this.data.supported}get requested(){return this.data.requested}},Ma=class extends X{static{Object.defineProperty(this,`mcpBrand`,{value:`mcp.MissingRequiredClientCapabilityError`})}constructor(e,t=`Missing required client capabilities: ${Object.keys(e.requiredCapabilities).join(`, `)}`){super(Y.MissingRequiredClientCapability,t,e)}get requiredCapabilities(){return this.data.requiredCapabilities}};const Na=[`tools/call`,`prompts/get`,`resources/read`];function Pa(e,t){let n=t.resultType;if(n===void 0)return{...t,resultType:`complete`};if(n===`complete`||Na.includes(e))return t;throw new X(Y.InternalError,`Handler for ${e} returned resultType '${String(n)}', but results of ${e} only support 'complete' on protocol revision 2026-07-28`)}function Fa(e,t){let n=Ta(t);if(t.resultType!==`complete`||!Sa(e))return n===void 0?t:Ba(t);let r=t,i=Ea(r.ttlMs)?r.ttlMs:Ra(n),a=Da(r.cacheScope)?r.cacheScope:za(n),o={...r,ttlMs:i,cacheScope:a};return delete o[Ca],o}function Ia(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function La(e,t){if(t===void 0)return e;let n=e._meta;return n===void 0?{...e,_meta:{[sn]:t}}:!Ia(n)||n[sn]!==void 0?e:{...e,_meta:{...n,[sn]:t}}}function Ra(e){return e!==void 0&&Ea(e.ttlMs)?e.ttlMs:0}function za(e){return e!==void 0&&Da(e.cacheScope)?e.cacheScope:`private`}function Ba(e){let t={...e};return delete t[Ca],t}const Va=[`elicitation/create`,`sampling/createMessage`,`roots/list`];let Ha;function Ua(){if(Ha)return Ha;let e=ba();return Ha={request:{"elicitation/create":z({method:I(`elicitation/create`),params:e.ElicitRequestParamsSchema}),"sampling/createMessage":z({method:I(`sampling/createMessage`),params:e.CreateMessageRequestParamsSchema}),"roots/list":z({method:I(`roots/list`),params:L({}).optional()})},response:{"elicitation/create":e.ElicitResultSchema,"sampling/createMessage":e.CreateMessageResultSchema,"roots/list":e.ListRootsResultSchema}},Ha}function Wa(e){return Va.includes(e)}function Ga(e){return Wa(e)?Ua().request[e]:void 0}function Ka(e){return Wa(e)?Ua().response[e]:void 0}const qa={"tools/call":null,"tools/list":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"completion/complete":null,"server/discover":null,"subscriptions/listen":null},Ja={"notifications/cancelled":null,"notifications/progress":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/subscriptions/acknowledged":null};function Ya(e){return Object.prototype.hasOwnProperty.call(qa,e)}function Xa(e){return Object.prototype.hasOwnProperty.call(Ja,e)}function Za(e){return Object.prototype.hasOwnProperty.call(qa,e)}function Qa(e){return Ya(e)?ba().dispatchRequestSchemas[e]:void 0}function $a(e){return Za(e)?ba().dispatchResultSchemas[e]:void 0}function eo(e){return Xa(e)?ba().notificationSchemas2026[e]:void 0}function to(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function no(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}const ro={ok:!1,reason:`not-in-era`},io=[Et,f];function ao(e,t){let n=t,r=!1,i=()=>(r||=(n={...n},!0),n),a=t.tools;e===`tools/list`&&Array.isArray(a)&&a.some(e=>to(e)&&`execution`in e)&&(i().tools=a.map(e=>{if(!to(e)||!(`execution`in e))return e;let t={...e};return delete t.execution,t}));let o=t.capabilities;if(to(o)&&`tasks`in o){let e={...o};delete e.tasks,i().capabilities=e}return n}const oo={era:`2026-07-28`,hasRequestMethod:Ya,hasNotificationMethod:Xa,hasInputRequestMethod:e=>Ga(e)!==void 0,validateRequest:(e,t)=>no(Qa(e),t),validateResult:(e,t)=>no($a(e),t),validateNotification:(e,t)=>no(eo(e),t),validateInputRequest:(e,t)=>no(Ga(e),t),validateInputResponse:(e,t)=>no(Ka(e),t),samplingResultVariant:()=>ro,outboundEnvelope(e){return{[Et]:e.protocolVersion,[p]:e.clientInfo,[f]:e.clientCapabilities,...e.logLevel!==void 0&&{[Ke]:e.logLevel}}},validateEnvelopeMeta(e){let t=[];for(let n of io)n in e||t.push({key:n,problem:`missing`});let n=ba().RequestMetaEnvelopeSchema.safeParse(e);if(!n.success)for(let e of n.error.issues){let n=e.path.map(String),r=n.length>0?n.join(`.`):`_meta`;if(n.length===1&&t.some(e=>e.key===r&&e.problem===`missing`))continue;t.push({key:r,problem:e.message})}return t},projectCallToolResult:e=>Wi(e),inputRequestSchema:Ga,decodeResult(e,t){if(!to(t))return{kind:`invalid`,error:new J(q.InvalidResult,`Invalid result for ${e}: not an object`,{method:e})};let n=t.resultType;if(n===void 0)return{kind:`invalid`,error:new J(q.InvalidResult,`Invalid result for ${e}: missing required resultType — servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`,{method:e,violation:`missing-resultType`})};if(typeof n!=`string`)return{kind:`invalid`,error:new J(q.InvalidResult,`Invalid result for ${e}: non-string resultType`,{method:e,resultType:n})};if(n===`input_required`){let n=t.inputRequests,r=to(n)?n:{},i=t.requestState;return Object.keys(r).length===0&&typeof i!=`string`?{kind:`invalid`,error:new J(q.InvalidResult,`Invalid result for ${e}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`,{method:e,violation:`input-required-missing-both`})}:{kind:`input_required`,inputRequests:r,...typeof i==`string`&&{requestState:i}}}if(n!==`complete`)return{kind:`invalid`,error:new J(q.UnsupportedResultType,`Unsupported result type '${n}' for ${e}`,{resultType:n,method:e})};let r=co(),i=Object.hasOwn(r,e)?r[e]:void 0;if(i!==void 0){let n=i.safeParse(t);if(!n.success)return{kind:`invalid`,error:new J(q.InvalidResult,`Invalid result for ${e}: ${n.error}`,{method:e})}}let a={...t};return delete a.resultType,{kind:`complete`,result:a}},encodeResult(e,t,n){return La(Fa(e,Pa(e,ao(e,t))),n)},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope(e){if(e.envelope===void 0)return`Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)`;let t=ba().RequestMetaEnvelopeSchema.safeParse(e.envelope);if(!t.success)return`Invalid _meta envelope for protocol revision 2026-07-28: ${t.error.issues.map(e=>e.message).join(`; `)}`}};let so;function co(){if(so)return so;let e=ba();return so={"tools/call":e.CallToolResultSchema,"tools/list":e.ListToolsResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"completion/complete":e.CompleteResultSchema,"server/discover":e.DiscoverResultSchema},so}const lo=`2026-07-28`;function uo(e){return e!==void 0&&Vi(e)?oo:_a}function fo(e){return e.revision===void 0?e.era===`modern`?oo.era:_a.era:uo(e.revision).era}function po(e){return ho.some(t=>t.hasRequestMethod(e))}function mo(e){return ho.some(t=>t.hasNotificationMethod(e))}const ho=[_a,oo];function go(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _o(e){if(!go(e))return;let t=e._meta;return go(t)?t:void 0}function vo(e){let t=_o(e);return t!==void 0&&Et in t}function yo(e){let t=_o(e)?.[Et];return typeof t==`string`?t:void 0}function bo(e){return uo(lo).validateEnvelopeMeta(e)}var xo=Ci({AnnotationsSchema:()=>o,AudioContentSchema:()=>s,BaseMetadataSchema:()=>c,BaseRequestParamsSchema:()=>l,BlobResourceContentsSchema:()=>u,BooleanSchemaSchema:()=>d,CallToolRequestParamsSchema:()=>m,CallToolRequestSchema:()=>h,CallToolResultSchema:()=>g,CancelTaskRequestSchema:()=>_,CancelTaskResultSchema:()=>v,CancelledNotificationParamsSchema:()=>y,CancelledNotificationSchema:()=>b,ClientCapabilitiesSchema:()=>x,ClientNotificationSchema:()=>S,ClientRequestSchema:()=>C,ClientResultSchema:()=>ee,ClientTasksCapabilitySchema:()=>te,CompatibilityCallToolResultSchema:()=>ne,CompleteRequestParamsSchema:()=>w,CompleteRequestSchema:()=>re,CompleteResultSchema:()=>T,ContentBlockSchema:()=>ie,CreateMessageRequestParamsSchema:()=>ae,CreateMessageRequestSchema:()=>oe,CreateMessageResultSchema:()=>se,CreateMessageResultWithToolsSchema:()=>E,CreateTaskResultSchema:()=>ce,CursorSchema:()=>D,DiscoverRequestSchema:()=>le,DiscoverResultSchema:()=>ue,ElicitRequestFormParamsSchema:()=>de,ElicitRequestParamsSchema:()=>fe,ElicitRequestSchema:()=>k,ElicitRequestURLParamsSchema:()=>pe,ElicitResultSchema:()=>me,ElicitationCompleteNotificationParamsSchema:()=>he,ElicitationCompleteNotificationSchema:()=>ge,EmbeddedResourceSchema:()=>_e,EmptyResultSchema:()=>ve,EnumSchemaSchema:()=>ye,GetPromptRequestParamsSchema:()=>be,GetPromptRequestSchema:()=>xe,GetPromptResultSchema:()=>Se,GetTaskPayloadRequestSchema:()=>Ce,GetTaskPayloadResultSchema:()=>we,GetTaskRequestSchema:()=>Te,GetTaskResultSchema:()=>Ee,IconSchema:()=>De,IconsSchema:()=>Oe,ImageContentSchema:()=>Ae,ImplementationSchema:()=>je,InitializeRequestParamsSchema:()=>Me,InitializeRequestSchema:()=>Ne,InitializeResultSchema:()=>Pe,InitializedNotificationSchema:()=>Fe,JSONArraySchema:()=>Ie,JSONObjectSchema:()=>Le,JSONRPCErrorResponseSchema:()=>Re,JSONRPCMessageSchema:()=>ze,JSONRPCNotificationSchema:()=>Be,JSONRPCRequestSchema:()=>Ve,JSONRPCResponseSchema:()=>He,JSONRPCResultResponseSchema:()=>Ue,JSONValueSchema:()=>We,LegacyTitledEnumSchemaSchema:()=>qe,ListChangedOptionsBaseSchema:()=>Je,ListPromptsRequestSchema:()=>Ye,ListPromptsResultSchema:()=>Xe,ListResourceTemplatesRequestSchema:()=>Ze,ListResourceTemplatesResultSchema:()=>Qe,ListResourcesRequestSchema:()=>$e,ListResourcesResultSchema:()=>et,ListRootsRequestSchema:()=>tt,ListRootsResultSchema:()=>A,ListTasksRequestSchema:()=>nt,ListTasksResultSchema:()=>rt,ListToolsRequestSchema:()=>it,ListToolsResultSchema:()=>at,LoggingLevelSchema:()=>ot,LoggingMessageNotificationParamsSchema:()=>st,LoggingMessageNotificationSchema:()=>ct,ModelHintSchema:()=>lt,ModelPreferencesSchema:()=>ut,MultiSelectEnumSchemaSchema:()=>dt,NotificationSchema:()=>ft,NotificationsParamsSchema:()=>pt,NumberSchemaSchema:()=>mt,PaginatedRequestParamsSchema:()=>Dt,PaginatedRequestSchema:()=>Ot,PaginatedResultSchema:()=>kt,PingRequestSchema:()=>At,PrimitiveSchemaDefinitionSchema:()=>jt,ProgressNotificationParamsSchema:()=>j,ProgressNotificationSchema:()=>Mt,ProgressSchema:()=>Nt,ProgressTokenSchema:()=>Pt,PromptArgumentSchema:()=>Ft,PromptListChangedNotificationSchema:()=>It,PromptMessageSchema:()=>Lt,PromptReferenceSchema:()=>Rt,PromptSchema:()=>zt,ReadResourceRequestParamsSchema:()=>Bt,ReadResourceRequestSchema:()=>Vt,ReadResourceResultSchema:()=>Ht,RelatedTaskMetadataSchema:()=>Ut,RequestIdSchema:()=>Wt,RequestMetaSchema:()=>Gt,RequestSchema:()=>Kt,ResourceContentsSchema:()=>qt,ResourceLinkSchema:()=>Jt,ResourceListChangedNotificationSchema:()=>Yt,ResourceRequestParamsSchema:()=>Xt,ResourceSchema:()=>M,ResourceTemplateReferenceSchema:()=>Zt,ResourceTemplateSchema:()=>Qt,ResourceUpdatedNotificationParamsSchema:()=>$t,ResourceUpdatedNotificationSchema:()=>en,ResultMetaObjectSchema:()=>tn,ResultSchema:()=>nn,RoleSchema:()=>rn,RootSchema:()=>an,RootsListChangedNotificationSchema:()=>on,SamplingContentSchema:()=>un,SamplingMessageContentBlockSchema:()=>dn,SamplingMessageSchema:()=>fn,ServerCapabilitiesSchema:()=>pn,ServerNotificationSchema:()=>mn,ServerRequestSchema:()=>hn,ServerResultSchema:()=>gn,ServerTasksCapabilitySchema:()=>_n,SetLevelRequestParamsSchema:()=>vn,SetLevelRequestSchema:()=>yn,SingleSelectEnumSchemaSchema:()=>bn,StringSchemaSchema:()=>xn,SubscribeRequestParamsSchema:()=>Sn,SubscribeRequestSchema:()=>Cn,SubscriptionFilterSchema:()=>wn,SubscriptionsAcknowledgedNotificationParamsSchema:()=>Tn,SubscriptionsAcknowledgedNotificationSchema:()=>En,SubscriptionsListenRequestParamsSchema:()=>Dn,SubscriptionsListenRequestSchema:()=>On,SubscriptionsListenResultMetaSchema:()=>kn,SubscriptionsListenResultSchema:()=>An,TaskAugmentedRequestParamsSchema:()=>jn,TaskCreationParamsSchema:()=>Mn,TaskMetadataSchema:()=>Nn,TaskSchema:()=>Pn,TaskStatusNotificationParamsSchema:()=>Fn,TaskStatusNotificationSchema:()=>In,TaskStatusSchema:()=>Ln,TextContentSchema:()=>Rn,TextResourceContentsSchema:()=>zn,TitledMultiSelectEnumSchemaSchema:()=>Bn,TitledSingleSelectEnumSchemaSchema:()=>Vn,ToolAnnotationsSchema:()=>Hn,ToolChoiceSchema:()=>Un,ToolExecutionSchema:()=>Wn,ToolListChangedNotificationSchema:()=>Gn,ToolResultContentSchema:()=>Kn,ToolSchema:()=>qn,ToolUseContentSchema:()=>Jn,UnsubscribeRequestParamsSchema:()=>Yn,UnsubscribeRequestSchema:()=>Xn,UntitledMultiSelectEnumSchemaSchema:()=>Zn,UntitledSingleSelectEnumSchemaSchema:()=>Qn});const Z=e=>Ve.safeParse(e).success,So=e=>Be.safeParse(e).success,Co=e=>Ue.safeParse(e).success,wo=e=>Re.safeParse(e).success,To=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&e.resultType===`input_required`,Eo=e=>Ne.safeParse(e).success;function Do(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function Oo(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const ko=`x-mcp-header`,Ao=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,jo=new Set([`string`,`integer`,`boolean`,`number`]);function Mo(e){let t=[],n=new Map,r=(e,i,a)=>{if(typeof e!=`object`||!e)return;let o=e;if(ko in o){if(!a||i.length===0)return`${Fo(i)}: x-mcp-header is only permitted on properties statically reachable via a chain of 'properties' keys (not under items, additionalProperties, oneOf/anyOf/allOf/not, if/then/else, or $ref)`;let e=o[ko];if(typeof e!=`string`||e.length===0)return`${Fo(i)}: x-mcp-header MUST be a non-empty string`;if(!Ao.test(e))return`${Fo(i)}: x-mcp-header '${e}' is not a valid RFC 9110 token (no spaces, control characters or HTTP delimiters)`;let r=typeof o.type==`string`?o.type:void 0;if(r===void 0||!jo.has(r))return`${Fo(i)}: x-mcp-header is only permitted on primitive-typed properties (string, integer, boolean); got ${r??`<none>`}`;let s=e.toLowerCase(),c=n.get(s);if(c!==void 0)return`x-mcp-header '${e}' is not case-insensitively unique (also declared as '${c}')`;n.set(s,e),t.push({path:i,headerName:e,type:r})}let s=o.properties;if(typeof s==`object`&&s)for(let[e,t]of Object.entries(s)){let n=r(t,[...i,e],a);if(n!==void 0)return n}for(let e of No){let t=o[e];if(t===void 0)continue;let n=Array.isArray(t)?t:typeof t==`object`&&t&&Po.has(e)?Object.values(t):[t];for(let t of n){let n=r(t,[...i,`<${e}>`],!1);if(n!==void 0)return n}}},i=r(e,[],!0);return i===void 0?{valid:!0,declarations:t}:{valid:!1,reason:i}}const No=[`items`,`prefixItems`,`contains`,`additionalProperties`,`unevaluatedProperties`,`unevaluatedItems`,`propertyNames`,`patternProperties`,`dependentSchemas`,`oneOf`,`anyOf`,`allOf`,`not`,`if`,`then`,`else`,`$defs`,`definitions`],Po=new Set([`patternProperties`,`dependentSchemas`,`$defs`,`definitions`]);function Fo(e){return e.length===0?`<root>`:e.join(`.`)}Y.InvalidRequest,Y.UnsupportedProtocolVersion,Y.InvalidParams,Y.MethodNotFound,Y.InvalidParams,Y.MissingRequiredClientCapability,Y.ParseError,Y.InvalidRequest,Y.MethodNotFound,Y.UnsupportedProtocolVersion,Y.MissingRequiredClientCapability;function Io(e,t,n,r,i){return{kind:`reject`,rung:e,cell:t,httpStatus:n,code:r.code,message:r.message,...r.data!==void 0&&{data:r.data},settled:i}}function Lo(e){if(!vo(e))return!1;let t=yo(e);if(t===void 0||!Vi(t))return!1;let n=_o(e);return n!==void 0&&bo(n).length===0}function Ro(e,t){switch(e.reason){case`http-method`:return Io(`http-method`,`modern-only-method-not-allowed`,405,new X(-32e3,`Method not allowed.`),!0);case`batch`:return Io(`jsonrpc-shape`,`modern-only-batch-not-supported`,400,new X(Y.InvalidRequest,`Bad Request: JSON-RPC batches are not supported by this endpoint`),!0);case`response`:return Io(`jsonrpc-shape`,`modern-only-response-post`,400,new X(Y.InvalidRequest,`Bad Request: JSON-RPC responses cannot be posted to this endpoint`),!0);case`notification`:return;case`initialize`:case`no-claim`:{let n=e.requestedVersion;return Io(`era-classification`,`modern-only-missing-envelope`,400,n===void 0?new X(Y.UnsupportedProtocolVersion,`Unsupported protocol version: the request did not name a protocol version`,{supported:[...t]}):new ja({supported:[...t],requested:n}),!0)}}}function zo(e,t){return sr(e,t)}function Bo(e){return new Set(e.flatMap(e=>Object.keys(e.shape)))}function Vo(e){if(e==null)return!1;let t=typeof e;return t!==`object`&&t!==`function`||!(`~standard`in e)?!1:typeof e[`~standard`]?.validate==`function`}let Ho=!1;const Uo=`draft-2020-12`;function Wo(e,t=`input`){let n=e[`~standard`],r;if(n.jsonSchema)r=n.jsonSchema[t]({target:Uo});else if(n.vendor===`zod`){if(!(`_zod`in e))throw Error(`Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema().`);Ho||(Ho=!0,console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning.")),r=cr(e,{target:Uo,io:t})}else throw Error(`Schema library "${n.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`);if(t===`output`)return r.type===void 0&&Go(r)?{type:`object`,...r}:r;if(r.type!==void 0&&r.type!==`object`)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(r.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:`object`,...r}}function Go(e){if(`properties`in e||`patternProperties`in e||`additionalProperties`in e||`required`in e)return!0;for(let t of[`oneOf`,`anyOf`,`allOf`]){let n=e[t];if(Array.isArray(n)&&n.length>0)return n.every(e=>typeof e==`object`&&!!e&&(e.type===`object`||Go(e)))}return!1}function Ko(e){return e.path?.length?`${e.path.map(e=>String(typeof e==`object`?e.key:e)).join(`.`)}: ${e.message}`:e.message}async function qo(e,t){let n=await e[`~standard`].validate(t);return n.issues&&n.issues.length>0?{success:!1,error:n.issues.map(e=>Ko(e)).join(`, `)}:{success:!0,data:n.value}}function Jo(e){let t=cr(e,{target:Uo,io:`input`});return typeof t.pattern==`string`?t.pattern:void 0}const Yo=/\\\.\\d\{(\d+)\}/;function Xo(e){let t=Yo.exec(e),n=[void 0,-1,0];return t&&n.push(Number(t[1])),[!1,!0].flatMap(e=>[!1,!0].flatMap(t=>n.map(n=>tr({local:e,offset:t,precision:n}))))}function Zo(e,t){let n;switch(e){case`email`:n=[rr()];break;case`uri`:n=[lr()];break;case`date`:n=[er()];break;case`date-time`:n=Xo(t);break}return new Set(n.map(e=>Jo(e)).filter(e=>e!==void 0))}function Qo(e,t,n){return n===`zod`?Zo(e,t).has(t):!0}function $o(e){let t=Wo(e,`input`),n=t.properties||{},r=t.required||[];return Object.entries(n).map(([e,t])=>({name:e,description:t?.description,required:r.includes(e)}))}function es(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ts(e){try{return Wo(e,`input`)}catch(e){let t=e instanceof Error?e.message:String(e);throw new X(Y.InvalidParams,`Elicitation requestedSchema must describe an object with flat primitive properties: ${t}`)}}const ns=new Set([`$comment`,`deprecated`,`description`,`examples`,`readOnly`,`title`,`writeOnly`]);function rs(e){return ns.has(e)||e.startsWith(`x-`)}const os=new Set([`$schema`,...Object.keys(de.shape.requestedSchema.shape)]),ss={string:Bo([xn,Qn,Vn,qe]),number:Bo([mt]),integer:Bo([mt]),boolean:Bo([d]),array:Bo([Zn,Bn])},cs=new Set(xn.shape.format.unwrap().options);function ls(e,t,n,r){if(!es(e))return e;let i=typeof e.type==`string`&&Object.hasOwn(ss,e.type)?ss[e.type]:void 0;if(i===void 0)return e;let a={};for(let[o,s]of Object.entries(e))i.has(o)||rs(o)?a[o]=s:o===`pattern`&&e.type===`string`&&typeof e.format==`string`?cs.has(e.format)?(typeof s!=`string`||!Qo(e.format,s,n))&&r.push(`${t}.${o}`):a[o]=s:r.push(`${t}.${o}`);return a}function us(e,t){let n={},r=[];for(let[i,a]of Object.entries(e))i===`properties`&&es(a)?n[i]=Object.fromEntries(Object.entries(a).map(([e,n])=>[e,ls(n,`properties.${e}`,t,r)])):os.has(i)?n[i]=a:rs(i)||r.push(i);if(r.length>0)throw new X(Y.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${r.join(`, `)}`);return n}function ds(e,t){if(!es(e.properties))return t;let n=Object.entries(e.properties).filter(([,e])=>!zo(jt,e).success).map(([e])=>`properties.${e}`);return n.length>0?n.join(`, `):t}function fs(e,t,n=``){return Array.isArray(e)&&Array.isArray(t)?e.flatMap((e,r)=>fs(e,t[r],`${n}[${r}]`)):!es(e)||!es(t)?[]:Object.entries(e).flatMap(([e,r])=>{let i=n?`${n}.${e}`:e;return Object.prototype.hasOwnProperty.call(t,e)?fs(r,t[e],i):rs(e)?[]:[i]})}function ps(e){if(!Vo(e.requestedSchema))return{...e,mode:`form`,requestedSchema:e.requestedSchema};let t=e.requestedSchema[`~standard`].vendor,n=us(ts(e.requestedSchema),t),r=zo(de.shape.requestedSchema,n);if(!r.success)throw new X(Y.InvalidParams,`Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${ds(n,r.error.message)}`);let i=fs(n,r.data);if(i.length>0)throw new X(Y.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${i.join(`, `)}`);let a=(r.data.required??[]).filter(e=>!Object.prototype.hasOwnProperty.call(r.data.properties,e));if(a.length>0)throw new X(Y.InvalidParams,`Elicitation requestedSchema lists required properties that are not defined in properties: ${a.join(`, `)}`);return{...e,mode:`form`,requestedSchema:r.data}}function ms(e){let t=e.inputRequests!==void 0&&Object.keys(e.inputRequests).length>0,n=typeof e.requestState==`string`;if(!t&&!n)throw TypeError(`inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)`);return{resultType:`input_required`,...e.inputRequests!==void 0&&{inputRequests:e.inputRequests},...e.requestState!==void 0&&{requestState:e.requestState}}}Object.assign(ms,{elicit(e){try{return{method:`elicitation/create`,params:ps(e)}}catch(e){throw e instanceof X?TypeError(e.message,{cause:e}):e}},elicitUrl(e){return{method:`elicitation/create`,params:{...e,mode:`url`}}},createMessage(e){return{method:`sampling/createMessage`,params:e}},listRoots(){return{method:`roots/list`}}});function hs(e,t){return`Multi-round-trip request '${e}' still required input after ${t} rounds (inputRequired.maxRounds)`}function gs(e,t){return new Promise((n,r)=>{if(t?.aborted){r(t.reason instanceof J?t.reason:new J(q.RequestTimeout,String(t.reason)));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),r(t?.reason instanceof J?t.reason:new J(q.RequestTimeout,String(t?.reason)))};t?.addEventListener(`abort`,a,{once:!0})})}function _s(e){let t=new AbortController,n=()=>t.abort(e?.reason);return e?.addEventListener(`abort`,n,{once:!0}),e?.aborted&&t.abort(e.reason),{signal:t.signal,abort:e=>t.abort(e),dispose:()=>e?.removeEventListener(`abort`,n)}}const vs=`AnnotationsSchema.AudioContentSchema.BaseMetadataSchema.BlobResourceContentsSchema.BooleanSchemaSchema.CallToolRequestSchema.CallToolRequestParamsSchema.CallToolResultSchema.CancelledNotificationSchema.CancelledNotificationParamsSchema.CancelTaskRequestSchema.CancelTaskResultSchema.ClientCapabilitiesSchema.ClientNotificationSchema.ClientRequestSchema.ClientResultSchema.CompatibilityCallToolResultSchema.CompleteRequestSchema.CompleteRequestParamsSchema.CompleteResultSchema.ContentBlockSchema.CreateMessageRequestSchema.CreateMessageRequestParamsSchema.CreateMessageResultSchema.CreateMessageResultWithToolsSchema.CreateTaskResultSchema.CursorSchema.DiscoverRequestSchema.DiscoverResultSchema.ElicitationCompleteNotificationSchema.ElicitationCompleteNotificationParamsSchema.ElicitRequestSchema.ElicitRequestFormParamsSchema.ElicitRequestParamsSchema.ElicitRequestURLParamsSchema.ElicitResultSchema.EmbeddedResourceSchema.EmptyResultSchema.EnumSchemaSchema.GetPromptRequestSchema.GetPromptRequestParamsSchema.GetPromptResultSchema.GetTaskPayloadRequestSchema.GetTaskPayloadResultSchema.GetTaskRequestSchema.GetTaskResultSchema.IconSchema.IconsSchema.ImageContentSchema.ImplementationSchema.InitializedNotificationSchema.InitializeRequestSchema.InitializeRequestParamsSchema.InitializeResultSchema.JSONArraySchema.JSONObjectSchema.JSONRPCErrorResponseSchema.JSONRPCMessageSchema.JSONRPCNotificationSchema.JSONRPCRequestSchema.JSONRPCResponseSchema.JSONRPCResultResponseSchema.JSONValueSchema.LegacyTitledEnumSchemaSchema.ListPromptsRequestSchema.ListPromptsResultSchema.ListResourcesRequestSchema.ListResourcesResultSchema.ListResourceTemplatesRequestSchema.ListResourceTemplatesResultSchema.ListRootsRequestSchema.ListRootsResultSchema.ListTasksRequestSchema.ListTasksResultSchema.ListToolsRequestSchema.ListToolsResultSchema.LoggingLevelSchema.LoggingMessageNotificationSchema.LoggingMessageNotificationParamsSchema.ModelHintSchema.ModelPreferencesSchema.MultiSelectEnumSchemaSchema.NotificationSchema.NumberSchemaSchema.PaginatedRequestSchema.PaginatedRequestParamsSchema.PaginatedResultSchema.PingRequestSchema.PrimitiveSchemaDefinitionSchema.ProgressSchema.ProgressNotificationSchema.ProgressNotificationParamsSchema.ProgressTokenSchema.PromptSchema.PromptArgumentSchema.PromptListChangedNotificationSchema.PromptMessageSchema.PromptReferenceSchema.ReadResourceRequestSchema.ReadResourceRequestParamsSchema.ReadResourceResultSchema.RelatedTaskMetadataSchema.RequestSchema.RequestIdSchema.RequestMetaSchema.ResourceSchema.ResourceContentsSchema.ResourceLinkSchema.ResourceListChangedNotificationSchema.ResourceRequestParamsSchema.ResourceTemplateSchema.ResourceTemplateReferenceSchema.ResourceUpdatedNotificationSchema.ResourceUpdatedNotificationParamsSchema.ResultMetaObjectSchema.ResultSchema.RoleSchema.RootSchema.RootsListChangedNotificationSchema.SamplingContentSchema.SamplingMessageSchema.SamplingMessageContentBlockSchema.ServerCapabilitiesSchema.ServerNotificationSchema.ServerRequestSchema.ServerResultSchema.SetLevelRequestSchema.SetLevelRequestParamsSchema.SingleSelectEnumSchemaSchema.StringSchemaSchema.SubscribeRequestSchema.SubscribeRequestParamsSchema.SubscriptionFilterSchema.SubscriptionsAcknowledgedNotificationSchema.SubscriptionsAcknowledgedNotificationParamsSchema.SubscriptionsListenRequestSchema.SubscriptionsListenRequestParamsSchema.SubscriptionsListenResultSchema.SubscriptionsListenResultMetaSchema.TaskAugmentedRequestParamsSchema.TaskCreationParamsSchema.TaskMetadataSchema.TaskSchema.TaskStatusSchema.TaskStatusNotificationSchema.TaskStatusNotificationParamsSchema.TextContentSchema.TextResourceContentsSchema.TitledMultiSelectEnumSchemaSchema.TitledSingleSelectEnumSchemaSchema.ToolSchema.ToolAnnotationsSchema.ToolChoiceSchema.ToolExecutionSchema.ToolListChangedNotificationSchema.ToolResultContentSchema.ToolUseContentSchema.UnsubscribeRequestSchema.UnsubscribeRequestParamsSchema.UntitledMultiSelectEnumSchemaSchema.UntitledSingleSelectEnumSchemaSchema`.split(`.`),ys={IdJagTokenExchangeResponseSchema:ke,OAuthClientInformationFullSchema:ht,OAuthClientInformationSchema:gt,OAuthClientMetadataSchema:_t,OAuthClientRegistrationErrorSchema:vt,OAuthErrorResponseSchema:yt,OAuthMetadataSchema:bt,OAuthProtectedResourceMetadataSchema:xt,OAuthTokenRevocationRequestSchema:St,OAuthTokensSchema:Ct,OpenIdProviderDiscoveryMetadataSchema:wt,OpenIdProviderMetadataSchema:Tt},bs={},xs={};function Ss(e,t){let n=e.slice(0,-6);bs[n]=t,xs[n]=e=>t.safeParse(e).success}for(let e of vs)Ss(e,xo[e]);for(let[e,t]of Object.entries(ys))Ss(e,t);Object.freeze(bs),Object.freeze(xs);function Cs(e){switch(e){case`initialize`:case`notifications/initialized`:return uo(void 0);case`server/discover`:return uo(lo);default:return}}const ws=[Et,p,f,Ke],Ts=[`inputResponses`,`requestState`];function Es(e,t){let n=e.params;if(!Ps(n))return{message:e,lifted:{}};let r=n._meta,i=Ps(r)?ws.filter(e=>e in r):[],a=t===`request`?Ts.filter(e=>e in n):[];if(i.length===0&&a.length===0)return{message:e,lifted:{}};let o={},s={...n};if(i.length>0&&Ps(r)){let e={},t={...r};for(let n of i)e[n]=r[n],delete t[n];o.envelope=e,Object.keys(t).length>0?s._meta=t:delete s._meta}for(let e of a)e===`inputResponses`&&(o.inputResponses=s[e]),e===`requestState`&&(o.requestState=s[e]),delete s[e];return{message:{...e,params:s},lifted:o}}function Ds(e,t){let n=e.validateResult(t,void 0);if(!(!n.ok&&n.reason===`not-in-era`))return{"~standard":{version:1,vendor:`mcp-wire-codec`,validate(n){let r=e.validateResult(t,n);return r.ok?{value:r.value}:{issues:[{message:r.reason===`invalid`?r.message:`not-in-era: ${t}`}]}}}}}function Os(e){return()=>e}const ks=Os(void 0);function As(e,t){return{...e,mcpReq:{...e.mcpReq,requestState:Os(t)}}}let js;function Ms(e,t){js(e,t)}var Ns=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_negotiatedProtocolVersion;static{js=(e,t)=>{e._negotiatedProtocolVersion=t}}_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??ln,this.setNotificationHandler(`notifications/cancelled`,e=>{this._oncancel(e)}),this.setNotificationHandler(`notifications/progress`,e=>{this._onprogress(e)}),this.setRequestHandler(`ping`,e=>({}))}_shouldDropInbound(e){}_outboundMetaEnvelope(){}_envelopeOutbound(e){let t=this._outboundMetaEnvelope();if(t===void 0)return e;let n=e.params??{};return{...e,params:{...n,_meta:{...t,...n._meta}}}}_resolveNonCompleteResult(e,t){return Promise.reject(new J(q.UnsupportedResultType,`Unsupported result type '${e.kind}' for ${t.request.method}`,{resultType:e.kind,method:t.request.method}))}_getRequestHandler(e){return this._requestHandlers.get(e)}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new J(q.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),Co(e)||wo(e)?this._onresponse(e):Z(e)?this._onrequest(e,t):So(e)?this._onnotification(e,t):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let n=new J(q.ConnectionClosed,`Connection closed`);this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(n);for(let e of t.values())e.abort(n)}}_onerror(e){this.onerror?.(e)}_onnotification(e,t){let{message:n}=Es(e,`notification`),r=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`)return;if(t?.classification!==void 0){let e=fo(t.classification);if(e!==r.era){this._onerror(Error(`Era mismatch on inbound notification '${n.method}': classified as ${e} but this instance serves ${r.era}`));return}}if(mo(n.method)&&!r.hasNotificationMethod(n.method))return;let i=this._notificationHandlers.get(n.method),a=this.fallbackNotificationHandler;i===void 0&&a===void 0||Promise.resolve().then(()=>i===void 0?a(n):i(n,r)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let{message:n,lifted:r}=Es(e,`request`),i=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`){this._onerror(Error(`Dropped inbound request '${e.method}': not servable on this connection's protocol era`));return}let a=this._transport,o=(e,t,r)=>{let i={jsonrpc:`2.0`,id:n.id,error:{code:e,message:t,...r!==void 0&&{data:r}}};a?.send(i).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))};if(t?.classification!==void 0){let e=fo(t.classification);if(e!==i.era){this._onerror(Error(`Era mismatch on inbound request '${n.method}': classified as ${e} but this instance serves ${i.era}`));let r=t.classification.revision??e;o(Y.UnsupportedProtocolVersion,`Unsupported protocol version: ${r}`,{supported:this._supportedProtocolVersions,requested:r});return}}if(po(n.method)&&!i.hasRequestMethod(n.method)){o(Y.MethodNotFound,`Method not found`);return}let s=this._requestHandlers.get(n.method)??this.fallbackRequestHandler;if(s===void 0){o(Y.MethodNotFound,`Method not found`);return}let c=i.checkInboundEnvelope(r);if(c!==void 0){o(Y.InvalidParams,c);return}let l=(e,t)=>this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,{...t,relatedRequestId:n.id}),u=(e,t,r)=>this._requestWithSchemaViaCodec(this._resolveOutboundCodec(e.method),e,t,{...r,relatedRequestId:n.id}),d=new AbortController;this._requestHandlerAbortControllers.set(n.id,d);let f=r.inputResponses===void 0?void 0:Ls(r.inputResponses),p={sessionId:a?.sessionId,mcpReq:{id:n.id,method:n.method,_meta:n.params?._meta,...r.envelope!==void 0&&{envelope:r.envelope},...f!==void 0&&{inputResponses:f.accepted},...f!==void 0&&f.droppedKeys.length>0&&{droppedInputResponseKeys:f.droppedKeys},requestState:r.requestState===void 0?ks:Os(r.requestState),signal:d.signal,send:((e,t,n)=>{let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),Vo(t))return u(e,t,n);let i=Ds(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`);return u(e,i,t)}),notify:l},http:t?.authInfo?{authInfo:t.authInfo}:void 0},m=this.buildContext(p,t);Promise.resolve().then(()=>s(n,m)).then(async e=>{if(d.signal.aborted)return;let t;try{t=i.encodeResult(n.method,e,this._outboundServerInfo())}catch(e){this._onerror(Error(`Failed to encode result for ${n.method}: ${e}`)),o(Y.InternalError,`Internal error`);return}let r={result:t,jsonrpc:`2.0`,id:n.id};await a?.send(r)},async e=>{if(d.signal.aborted)return;let t=Number.isSafeInteger(e.code)?e.code:Y.InternalError,r={jsonrpc:`2.0`,id:n.id,error:{code:i.encodeErrorCode(t),message:e.message??`Internal error`,...e.data!==void 0&&{data:e.data}}};await a?.send(r)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(n.id)===d&&this._requestHandlerAbortControllers.delete(n.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._responseHandlers.get(t);if(n===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t),this._progressHandlers.delete(t),Co(e)?n(e):n(X.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t,n){let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),Vo(t))return this._requestWithSchemaViaCodec(r,e,t,n);let i=Ds(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to request().`);return this._requestWithSchemaViaCodec(r,e,i,t)}_negotiatedWireCodec(){return uo(this._negotiatedProtocolVersion)}_wireCodec(){return this._negotiatedWireCodec()}_resolveOutboundCodec(e){if(this._negotiatedProtocolVersion===void 0){let t=Cs(e);if(t)return t}return this._negotiatedWireCodec()}_assertOutboundRequestInEra(e,t){if(po(t)&&!e.hasRequestMethod(t))throw new J(q.MethodNotSupportedByProtocolVersion,`Method '${t}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t,era:e.era})}_requestWithSchema(e,t,n){let r=this._resolveOutboundCodec(e.method);return this._assertOutboundRequestInEra(r,e.method),this._requestWithSchemaViaCodec(r,e,t,n)}_requestWithSchemaViaCodec(e,t,n,r){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s}=r??{},c=Date.now(),l,u;return new Promise((d,f)=>{let p=e=>{f(e)};if(!this._transport){p(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method)}catch(e){p(e);return}if(r?.signal?.aborted){let e=r.signal.reason;throw e instanceof J?e:new J(q.RequestTimeout,String(e))}let m=e.era===lo&&this._transport.hasPerRequestStream===!0?new AbortController:void 0,h=this._requestMessageId++;u=h;let g={...t,jsonrpc:`2.0`,id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),g.params={...t.params,_meta:{...t.params?._meta,progressToken:h}});let _=this._envelopeOutbound(g),v=!1,y=e=>{v||(this._progressHandlers.delete(h),m===void 0?this._transport?.send(this._envelopeOutbound({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:h,reason:String(e)}}),{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))):m.abort(),f(e instanceof J?e:new J(q.RequestTimeout,String(e))))};this._responseHandlers.set(h,i=>{if(r?.signal?.aborted)return;if(v=!0,i instanceof Error)return f(i);let a;try{a=e.decodeResult(t.method,i.result)}catch(e){return f(e instanceof Error?e:Error(String(e)))}if(a.kind===`invalid`)return f(a.error);if(a.kind===`input_required`){if(r?.allowInputRequired===!0)return d(Rs(a));let i={codec:e,request:t,resultSchema:n,options:r,flowStartedAt:c,retry:(r,i)=>this._requestWithSchemaViaCodec(e,r===void 0?{method:t.method}:{method:t.method,params:r},n,i)};return d(this._resolveNonCompleteResult(a,i))}let o=a.result;qo(n,o).then(e=>{e.success?d(e.data):f(new J(q.InvalidResult,`Invalid result for ${t.method}: ${e.error}`))},f)}),l=()=>y(r?.signal?.reason),r?.signal?.addEventListener(`abort`,l,{once:!0});let b=r?.timeout??6e4;this._setupTimeout(h,b,r?.maxTotalTimeout,()=>y(new J(q.RequestTimeout,`Request timed out`,{timeout:b})),r?.resetTimeoutOnProgress??!1),this._transport.send(_,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s,requestSignal:m?.signal}).catch(e=>{this._progressHandlers.delete(h),f(e)})}).finally(()=>{l&&r?.signal?.removeEventListener(`abort`,l),u!==void 0&&(this._responseHandlers.delete(u),this._cleanupTimeout(u))})}async notification(e,t){return this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,t)}async _notificationViaCodec(e,t,n){if(!this._transport)throw new J(q.NotConnected,`Not connected`);if(mo(t.method)&&!e.hasNotificationMethod(t.method))throw new J(q.MethodNotSupportedByProtocolVersion,`Notification '${t.method}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t.method,era:e.era});this.assertNotificationCapability(t.method);let r=this._envelopeOutbound({jsonrpc:`2.0`,...t});if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(t.method),this._transport&&this._transport?.send(r,n).catch(e=>this._onerror(e))});return}await this._transport.send(r,n)}setRequestHandler(e,t,n){this.assertRequestHandlerCapability(e);let r;if(typeof t==`function`){if(!po(e))throw TypeError(`'${e}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`);r=(n,r)=>{let i=this._negotiatedWireCodec(),a=i.validateRequest(e,n);if(!a.ok&&a.reason===`not-in-era`&&(a=i.validateInputRequest(e,n)),!a.ok)throw a.reason===`not-in-era`?new X(Y.InternalError,`No wire schema for ${e} in the resolved era`):Error(a.message);return Promise.resolve(t(a.value,r))}}else if(n)r=async(r,i)=>{let a=await qo(t.params,{...r.params});if(!a.success)throw new X(Y.InvalidParams,`Invalid params for ${e}: ${a.error}`);return n(a.data,i)};else throw TypeError(`setRequestHandler: handler is required`);this._requestHandlers.set(e,this._wrapHandler(e,r))}_wrapHandler(e,t){return t}_outboundServerInfo(){}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t,n){if(typeof t==`function`){if(!mo(e))throw TypeError(`'${e}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`);this._notificationHandlers.set(e,(n,r)=>{let i=r.validateNotification(e,n);if(!i.ok)throw i.reason===`not-in-era`?new X(Y.InternalError,`No wire schema for ${e} in the resolved era`):Error(i.message);return Promise.resolve(t(i.value))});return}if(!n)throw TypeError(`setNotificationHandler: handler is required`);this._notificationHandlers.set(e,async r=>{let i=await qo(t.params,{...r.params});if(!i.success)throw new X(Y.InvalidParams,`Invalid params for notification ${e}: ${i.error}`);await n(i.data,r)})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Ps(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fs(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];n[r]=Ps(a)&&Ps(i)?{...a,...i}:i}return n}function Is(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ls(e){let t={},n=[];if(!Is(e))return{accepted:t,droppedKeys:n};for(let[r,i]of Object.entries(e)){if(!Is(i)||`method`in i||`result`in i){n.push(r);continue}t[r]=i}return{accepted:t,droppedKeys:n}}function Rs(e){return{resultType:`input_required`,inputRequests:e.inputRequests,...e.requestState!==void 0&&{requestState:e.requestState}}}var zs=Ti(K((exports=>{var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,n=/\\([\u000b\u0020-\u00ff])/g,r=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;exports.parse=i;function i(e){if(!e)throw TypeError(`argument string is required`);var i=typeof e==`object`?a(e):e;if(typeof i!=`string`)throw TypeError(`argument string is required to be a string`);var s=i.indexOf(`;`),c=s===-1?i.trim():i.slice(0,s).trim();if(!r.test(c))throw TypeError(`invalid media type`);var l=new o(c.toLowerCase());if(s!==-1){var u,d,f;for(t.lastIndex=s;d=t.exec(i);){if(d.index!==s)throw TypeError(`invalid parameter format`);s+=d[0].length,u=d[1].toLowerCase(),f=d[2],f.charCodeAt(0)===34&&(f=f.slice(1,-1),f.indexOf(`\\`)!==-1&&(f=f.replace(n,`$1`))),l.parameters[u]=f}if(s!==i.length)throw TypeError(`invalid parameter format`)}return l}function a(e){var t;if(typeof e.getHeader==`function`?t=e.getHeader(`content-type`):typeof e.headers==`object`&&(t=e.headers&&e.headers[`content-type`]),typeof t!=`string`)throw TypeError(`content-type header is missing from object`);return t}function o(e){this.parameters=Object.create(null),this.type=e}}))(),1);function Bs(e){if(e)try{return zs.parse(e).type}catch{let t=(e.split(`;`,1)[0]??``).trim().toLowerCase();return t===``||e.slice(t.length).includes(`,`)?void 0:t}}function Vs(e){return e===`application/json`?!0:Bs(e)===`application/json`}var Hs=class{_buffer;_maxBufferSize;constructor(e){this._maxBufferSize=e?.maxBufferSize??10485760}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){for(;this._buffer;){let e=this._buffer.indexOf(`
|
|
3
3
|
`);if(e===-1)return null;let t=this._buffer.toString(`utf8`,0,e).replace(/\r$/,``);this._buffer=this._buffer.subarray(e+1);try{return Us(t)}catch(e){if(e instanceof SyntaxError)continue;throw e}}return null}clear(){this._buffer=void 0}};function Us(e){return ze.parse(JSON.parse(e))}function Ws(e){return JSON.stringify(e)+`
|
|
4
4
|
`}const Gs=/^[A-Za-z0-9._-]{1,128}$/;function Ks(e){let t=[];if(e.length===0)return{isValid:!1,warnings:[`Tool name cannot be empty`]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(` `)&&t.push(`Tool name contains spaces, which may cause parsing issues`),e.includes(`,`)&&t.push(`Tool name contains commas, which may cause parsing issues`),(e.startsWith(`-`)||e.endsWith(`-`))&&t.push(`Tool name starts or ends with a dash, which may cause parsing issues in some contexts`),(e.startsWith(`.`)||e.endsWith(`.`))&&t.push(`Tool name starts or ends with a dot, which may cause parsing issues in some contexts`),!Gs.test(e)){let n=[...e].filter(e=>!/[A-Za-z0-9._-]/.test(e)).filter((e,t,n)=>n.indexOf(e)===t);return t.push(`Tool name contains invalid characters: ${n.map(e=>`"${e}"`).join(`, `)}`,`Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)`),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function qs(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let e of t)console.warn(` - ${e}`);console.warn(`Tool registration will proceed, but this may cause compatibility issues.`),console.warn(`Consider updating the tool name to conform to the MCP tool naming standard.`),console.warn(`See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.`)}}function Js(e){let t=Ks(e);return qs(e,t.warnings),t.isValid}function Ys(e){return typeof e==`object`&&!!e&&`_zod`in e}function Xs(e){return typeof e==`object`&&!!e&&!(`_zod`in e)&&`_def`in e&&typeof e._def?.typeName==`string`}function Zs(e){if(typeof e!=`object`||!e||Vo(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(e=>Ys(e))}function Qs(e){if(e!==void 0){if(Zs(e))return z(e);if(typeof e==`object`&&e&&!Vo(e)&&Object.values(e).some(e=>Xs(e)))throw TypeError("Raw-shape inputSchema/outputSchema/argsSchema fields must be Zod v4 schemas. Got a Zod v3 field schema. Import from `zod/v4` (or upgrade your zod import), or wrap with `z.object({...})` yourself.");if(!Vo(e))throw TypeError(`inputSchema/outputSchema/argsSchema must be a Standard Schema (e.g. z.object({...})) or a raw Zod shape ({ field: z.string() }).`);return e}}var $s=K((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.regexpCode=exports.getEsmExportName=exports.getProperty=exports.safeStringify=exports.stringify=exports.strConcat=exports.addCodeArg=exports.str=exports._=exports.nil=exports._Code=exports.Name=exports.IDENTIFIER=exports._CodeOrName=void 0;var t=class{};exports._CodeOrName=t,exports.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!exports.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};exports.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};exports._Code=r,exports.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}exports._=i;let a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}exports.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}exports.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}exports.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}exports.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}exports.safeStringify=p;function m(t){return typeof t==`string`&&exports.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}exports.getProperty=m;function h(t){if(typeof t==`string`&&exports.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}exports.getEsmExportName=h;function g(e){return new r(e.toString())}exports.regexpCode=g})),ec=K((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ValueScope=exports.ValueScopeName=exports.Scope=exports.varKinds=exports.UsedValueState=void 0;let t=$s();var n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(exports.UsedValueState=r={})),exports.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};exports.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};exports.ValueScopeName=a;let o=(0,t._)`\n`;exports.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?exports.varKinds.var:exports.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),Q=K((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.or=exports.and=exports.not=exports.CodeGen=exports.operators=exports.varKinds=exports.ValueScopeName=exports.ValueScope=exports.Scope=exports.Name=exports.regexpCode=exports.stringify=exports.getProperty=exports.nil=exports.strConcat=exports.str=exports._=void 0;let t=$s(),n=ec();var r=$s();Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(exports,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(exports,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(exports,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(exports,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(exports,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(exports,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(exports,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=ec();Object.defineProperty(exports,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(exports,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(exports,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(exports,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),exports.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=T(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=T(this.rhs,e,n),this}get names(){return re(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=T(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(ie(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>w(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ae(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=T(this.condition,e,t),this}get names(){let e=super.names;return re(e,this.condition),this.else&&w(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=T(this.iteration,e,t),this}get names(){return w(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return re(re(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=T(this.iterable,e,t),this}get names(){return w(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var ee=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&w(e,this.catch.names),this.finally&&w(e,this.finally.names),e}},te=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};te.kind=`catch`;var ne=class extends m{render(e){return`finally`+super.render(e)}};ne.kind=`finally`,exports.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
|
@@ -12,4 +12,4 @@ import{SESSION_ID as e,config as t}from"./env-DW7bNp9e.js";import{extractTraceId
|
|
|
12
12
|
|
|
13
13
|
`))}catch{n!==void 0&&clearInterval(n)}});return n}async start(){if(this._started)throw Error(`Transport already started`);this._started=!0}setSupportedProtocolVersions(e){this._supportedProtocolVersions=e}createJsonErrorResponse(e,t,n,r){let i={code:t,message:n};return r?.data!==void 0&&(i.data=r.data),Response.json({jsonrpc:`2.0`,error:i,id:null},{status:e,headers:{"Content-Type":`application/json`,...r?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let t=e.headers.get(`host`);if(!t||!this._allowedHosts.includes(t)){let e=`Invalid Host header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let t=e.headers.get(`origin`);if(t&&!this._allowedOrigins.includes(t)){let e=`Invalid Origin header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}}}async handleRequest(e,t){if(this._closed)return this.createJsonErrorResponse(404,-32001,`Session not found`);let n=this.validateRequestHeaders(e);if(n)return n;switch(e.method){case`POST`:return this.handlePostRequest(e,t);case`GET`:return this.handleGetRequest(e);case`DELETE`:return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}supportsEmptySSEData(e){return this._supportedProtocolVersions.includes(e)&&e>=`2025-11-25`}async writePrimingEvent(e,t,n,r){if(!this._eventStore||!this.supportsEmptySSEData(r))return;let i=await this._eventStore.storeEvent(n,{}),a=`id: ${i}\ndata: \n\n`;this._retryInterval!==void 0&&(a=`id: ${i}\nretry: ${this._retryInterval}\ndata: \n\n`),e.enqueue(t.encode(a))}async handleGetRequest(e){if(!e.headers.get(`accept`)?.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept text/event-stream`);let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n;if(this._eventStore){let t=e.headers.get(`last-event-id`);if(t)return this.replayEvents(t)}if(this._streamMapping.get(this._standaloneSseStreamId)!==void 0)return this.onerror?.(Error(`Conflict: Only one SSE stream is allowed per session`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Only one SSE stream is allowed per session`);let r=new TextEncoder,i,a,o=new ReadableStream({start:e=>{i=e},cancel:()=>{a!==void 0&&clearInterval(a),this._streamMapping.get(this._standaloneSseStreamId)?.controller===i&&this._streamMapping.delete(this._standaloneSseStreamId)}}),s={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`,"X-Accel-Buffering":`no`};return this.sessionId!==void 0&&(s[`mcp-session-id`]=this.sessionId),this._streamMapping.set(this._standaloneSseStreamId,{controller:i,encoder:r,cleanup:()=>{a!==void 0&&clearInterval(a),this._streamMapping.delete(this._standaloneSseStreamId);try{i.close()}catch{}}}),a=this.startKeepAlive(i,r),new Response(o,{headers:s})}async replayEvents(e){if(!this._eventStore)return this.onerror?.(Error(`Event store not configured`)),this.createJsonErrorResponse(400,-32e3,`Event store not configured`);try{let t;if(this._eventStore.getStreamIdForEventId){if(t=await this._eventStore.getStreamIdForEventId(e),!t)return this.onerror?.(Error(`Invalid event ID format`)),this.createJsonErrorResponse(400,-32e3,`Invalid event ID format`);if(this._streamMapping.get(t)!==void 0)return this.onerror?.(Error(`Conflict: Stream already has an active connection`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Stream already has an active connection`)}let n={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`,"X-Accel-Buffering":`no`};this.sessionId!==void 0&&(n[`mcp-session-id`]=this.sessionId);let r=new TextEncoder,i,a,o=!1,s,c=new ReadableStream({start:e=>{i=e},cancel:()=>{o=!0,a!==void 0&&clearInterval(a),s!==void 0&&this._streamMapping.get(s)?.controller===i&&this._streamMapping.delete(s)}}),l=new Set;if(s=await this._eventStore.replayEventsAfter(e,{send:async(e,t)=>{if(l.add(e),!this.writeSSEEvent(i,r,t,e))try{i.close()}catch{}}}),this._closed||o){try{i.close()}catch{}return this.createJsonErrorResponse(404,-32001,`Session not found`)}if(this._streamMapping.get(s)?.cleanup(),this._streamMapping.set(s,{controller:i,encoder:r,replayedEventIds:l,cleanup:()=>{a!==void 0&&clearInterval(a),this._streamMapping.delete(s);try{i.close()}catch{}}}),s!==this._standaloneSseStreamId&&![...this._requestToStreamMapping.values()].includes(s)){this._streamMapping.delete(s);try{i.close()}catch{}}return this._streamMapping.get(s)?.controller===i&&(a=this.startKeepAlive(i,r)),new Response(c,{headers:n})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32e3,`Error replaying events`)}}writeSSEEvent(e,t,n,r){try{let i=`event: message
|
|
14
14
|
`;return r&&(i+=`id: ${r}\n`),i+=`data: ${JSON.stringify(n)}\n\n`,e.enqueue(t.encode(i)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error(`Method not allowed.`)),Response.json({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null},{status:405,headers:{Allow:`GET, POST, DELETE`,"Content-Type":`application/json`}})}async handlePostRequest(e,t){try{let n=e.headers.get(`accept`);if(!n?.includes(`application/json`)||!n.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept both application/json and text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept both application/json and text/event-stream`);if(!Vs(e.headers.get(`content-type`)))return this.onerror?.(Error(`Unsupported Media Type: Content-Type must be application/json`)),this.createJsonErrorResponse(415,-32e3,`Unsupported Media Type: Content-Type must be application/json`);let r=e,i;if(t?.parsedBody===void 0)try{i=await e.json()}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON`)}else i=t.parsedBody;let a;try{a=Array.isArray(i)?i.map(e=>ze.parse(e)):[ze.parse(i)]}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON-RPC message`)}if(this._closed)return this.createJsonErrorResponse(404,-32001,`Session not found`);let o=a.some(e=>Eo(e));if(o){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(Error(`Invalid Request: Server already initialized`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Server already initialized`);if(a.length>1)return this.onerror?.(Error(`Invalid Request: Only one initialization request is allowed`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Only one initialization request is allowed`);this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!o){let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n}if(this._closed)return this.createJsonErrorResponse(404,-32001,`Session not found`);if(!a.some(e=>Z(e))){for(let e of a)this.onmessage?.(e,{authInfo:t?.authInfo,request:r});return new Response(null,{status:202})}let s=crypto.randomUUID(),c=a.find(e=>Eo(e)),l=c?c.params.protocolVersion:e.headers.get(`mcp-protocol-version`)??O;if(this._enableJsonResponse)return new Promise(e=>{this._streamMapping.set(s,{resolveJson:e,cleanup:()=>{this._streamMapping.delete(s)}});for(let e of a)Z(e)&&this._requestToStreamMapping.set(e.id,s);for(let e of a)this.onmessage?.(e,{authInfo:t?.authInfo,request:r})});let u=new TextEncoder,d,f,p=new ReadableStream({start:e=>{d=e},cancel:()=>{f!==void 0&&clearInterval(f),this._streamMapping.get(s)?.controller===d&&this._streamMapping.delete(s)}}),m={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`,"X-Accel-Buffering":`no`};this.sessionId!==void 0&&(m[`mcp-session-id`]=this.sessionId);for(let e of a)Z(e)&&(this._streamMapping.set(s,{controller:d,encoder:u,cleanup:()=>{f!==void 0&&clearInterval(f),this._streamMapping.delete(s);try{d.close()}catch{}}}),this._requestToStreamMapping.set(e.id,s));await this.writePrimingEvent(d,u,s,l);for(let e of a){let n,i;Z(e)&&this._eventStore&&this.supportsEmptySSEData(l)&&(n=()=>{this.closeSSEStream(e.id)},i=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(e,{authInfo:t?.authInfo,request:r,closeSSEStream:n,closeStandaloneSSEStream:i})}return this._streamMapping.get(s)?.controller===d&&(f=this.startKeepAlive(d,u)),new Response(p,{status:200,headers:m})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error`,{data:String(e)})}}async handleDeleteRequest(e){let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n;try{return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),new Response(null,{status:200})}finally{await this.close()}}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(Error(`Bad Request: Server not initialized`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Server not initialized`);let t=e.headers.get(`mcp-session-id`);if(!t)return this.onerror?.(Error(`Bad Request: Mcp-Session-Id header is required`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Mcp-Session-Id header is required`);if(t!==this.sessionId)return this.onerror?.(Error(`Session not found`)),this.createJsonErrorResponse(404,-32001,`Session not found`)}validateProtocolVersion(e){let t=e.headers.get(`mcp-protocol-version`);if(t!==null&&!this._supportedProtocolVersions.includes(t)){let e=`Bad Request: Unsupported protocol version: ${t} (supported versions: ${this._supportedProtocolVersions.join(`, `)})`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(400,-32e3,e)}}async close(){if(!this._closed){this._closed=!0;for(let{cleanup:e}of this._streamMapping.values())e();this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let n=this._streamMapping.get(t);n&&n.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let n=t?.relatedRequestId;if((Co(e)||wo(e))&&(n=e.id),n===void 0){if(Co(e)||wo(e))throw Error(`Cannot send a response on a standalone SSE stream unless resuming a previous client request`);let t;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let n=this._streamMapping.get(this._standaloneSseStreamId);if(n===void 0)return;n.controller&&n.encoder&&(t===void 0||!n.replayedEventIds?.has(t))&&this.writeSSEEvent(n.controller,n.encoder,e,t);return}let r=this._requestToStreamMapping.get(n);if(!r)throw Error(`No connection established for request ID: ${String(n)}`);let i=this._streamMapping.get(r);if(!this._enableJsonResponse){let t;this._eventStore&&(t=await this._eventStore.storeEvent(r,e),i=this._streamMapping.get(r)),i?.controller&&i?.encoder&&(t===void 0||!i.replayedEventIds?.has(t))&&this.writeSSEEvent(i.controller,i.encoder,e,t)}if(Co(e)||wo(e)){this._requestResponseMap.set(n,e);let t=[...this._requestToStreamMapping.entries()].filter(([e,t])=>t===r).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!i){if(this._enableJsonResponse)throw Error(`No connection established for request ID: ${String(n)}`);if(!this._eventStore){this.onerror?.(Error(`Response for request ID ${String(n)} is undeliverable: per-request stream is disconnected and no eventStore is configured`));for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}if(this._enableJsonResponse&&i.resolveJson){let e={"Content-Type":`application/json`};this.sessionId!==void 0&&(e[`mcp-session-id`]=this.sessionId);let n=t.map(e=>this._requestResponseMap.get(e));n.length===1?i.resolveJson(Response.json(n[0],{status:200,headers:e})):i.resolveJson(Response.json(n,{status:200,headers:e})),i.cleanup()}else i.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}},Pu=class extends Error{constructor(e,t){super(e,t),this.name=`RequestError`}},Fu=e=>e instanceof Pu?e:new Pu(e.message,{cause:e}),Iu=global.Request,Lu=class extends Iu{constructor(e,t){typeof e==`object`&&Vu in e&&(e=e[Vu]()),t?.body?.getReader!==void 0&&(t.duplex??=`half`),super(e,t)}},Ru=e=>{let t=[],n=e.rawHeaders;for(let e=0;e<n.length;e+=2){let{[e]:r,[e+1]:i}=n;r.charCodeAt(0)!==58&&t.push([r,i])}return new Headers(t)},zu=Symbol(`wrapBodyStream`),Bu=(e,t,n,r,i)=>{let a={method:e,headers:n,signal:i.signal};if(e===`TRACE`){a.method=`GET`;let e=new Lu(t,a);return Object.defineProperty(e,`method`,{get(){return`TRACE`}}),e}if(!(e===`GET`||e===`HEAD`))if(`rawBody`in r&&r.rawBody instanceof Buffer)a.body=new ReadableStream({start(e){e.enqueue(r.rawBody),e.close()}});else if(r[zu]){let e;a.body=new ReadableStream({async pull(t){try{e||=yr.toWeb(r).getReader();let{done:n,value:i}=await e.read();n?t.close():t.enqueue(i)}catch(e){t.error(e)}}})}else a.body=yr.toWeb(r);return new Lu(t,a)},Vu=Symbol(`getRequestCache`),Hu=Symbol(`requestCache`),Uu=Symbol(`incomingKey`),Wu=Symbol(`urlKey`),Gu=Symbol(`headersKey`),Ku=Symbol(`abortControllerKey`),qu={get method(){return this[Uu].method||`GET`},get url(){return this[Wu]},get headers(){return this[Gu]||=Ru(this[Uu])},[Symbol(`getAbortController`)](){return this[Vu](),this[Ku]},[Vu](){return this[Ku]||=new AbortController,this[Hu]||=Bu(this.method,this[Wu],this.headers,this[Uu],this[Ku])}};[`body`,`bodyUsed`,`cache`,`credentials`,`destination`,`integrity`,`mode`,`redirect`,`referrer`,`referrerPolicy`,`signal`,`keepalive`].forEach(e=>{Object.defineProperty(qu,e,{get(){return this[Vu]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(qu,e,{value:function(){return this[Vu]()[e]()}})}),Object.defineProperty(qu,Symbol.for(`nodejs.util.inspect.custom`),{value:function(e,t,n){let r={method:this.method,url:this.url,headers:this.headers,nativeRequest:this[Hu]};return`Request (lightweight) ${n(r,{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(qu,Lu.prototype);var Ju=(e,t)=>{let n=Object.create(qu);n[Uu]=e;let r=e.url||``;if(r[0]!==`/`&&(r.startsWith(`http://`)||r.startsWith(`https://`))){if(e instanceof Cr)throw new Pu(`Absolute URL for :path is not allowed in HTTP/2`);try{n[Wu]=new URL(r).href}catch(e){throw new Pu(`Invalid absolute URL`,{cause:e})}return n}let i=(e instanceof Cr?e.authority:e.headers.host)||t;if(!i)throw new Pu(`Missing host header`);let a;if(e instanceof Cr){if(a=e.scheme,!(a===`http`||a===`https`))throw new Pu(`Unsupported scheme`)}else a=e.socket&&e.socket.encrypted?`https`:`http`;let o=new URL(`${a}://${i}${r}`);if(o.hostname.length!==i.length&&o.hostname!==i.replace(/:\d+$/,``))throw new Pu(`Invalid host header`);return n[Wu]=o.href,n},Yu=Symbol(`responseCache`),Xu=Symbol(`getResponseCache`),Zu=Symbol(`cache`),Qu=global.Response,$u=class e{#body;#init;[Xu](){return delete this[Zu],this[Yu]||=new Qu(this.#body,this.#init)}constructor(t,n){let r;if(this.#body=t,n instanceof e){let e=n[Yu];if(e){this.#init=e,this[Xu]();return}else this.#init=n.#init,r=new Headers(n.#init.headers)}else this.#init=n;(typeof t==`string`||t?.getReader!==void 0||t instanceof Blob||t instanceof Uint8Array)&&(this[Zu]=[n?.status||200,t,r||n?.headers])}get headers(){let e=this[Zu];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||{"content-type":`text/plain; charset=UTF-8`})),e[2]):this[Xu]().headers}get status(){return this[Zu]?.[0]??this[Xu]().status}get ok(){let e=this.status;return e>=200&&e<300}};[`body`,`bodyUsed`,`redirected`,`statusText`,`trailers`,`type`,`url`].forEach(e=>{Object.defineProperty($u.prototype,e,{get(){return this[Xu]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty($u.prototype,e,{value:function(){return this[Xu]()[e]()}})}),Object.defineProperty($u.prototype,Symbol.for(`nodejs.util.inspect.custom`),{value:function(e,t,n){let r={status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[Yu]};return`Response (lightweight) ${n(r,{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf($u,Qu),Object.setPrototypeOf($u.prototype,Qu.prototype);async function ed(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function td(e,t,n){let r=t=>{e.cancel(t).catch(()=>{})};return t.on(`close`,r),t.on(`error`,r),(n??e.read()).then(o,i),e.closed.finally(()=>{t.off(`close`,r),t.off(`error`,r)});function i(e){e&&t.destroy(e)}function a(){e.read().then(o,i)}function o({done:n,value:r}){try{if(n)t.end();else if(!t.write(r))t.once(`drain`,a);else return e.read().then(o,i)}catch(e){i(e)}}}function nd(e,t){if(e.locked)throw TypeError(`ReadableStream is locked.`);return t.destroyed?void 0:td(e.getReader(),t)}var rd=e=>{let t={};e instanceof Headers||(e=new Headers(e??void 0));let n=[];for(let[r,i]of e)r===`set-cookie`?n.push(i):t[r]=i;return n.length>0&&(t[`set-cookie`]=n),t[`content-type`]??=`text/plain; charset=UTF-8`,t},id=`x-hono-already-sent`;global.crypto===void 0&&(global.crypto=ur);var ad=Symbol(`outgoingEnded`),od=Symbol(`incomingDraining`),sd=500,cd=64*1024*1024,ld=e=>{let t=e;if(e.destroyed||t[od])return;if(t[od]=!0,e instanceof Cr){try{e.stream?.close?.(wr.NGHTTP2_NO_ERROR)}catch{}return}let n=0,r=()=>{clearTimeout(a),e.off(`data`,o),e.off(`end`,r),e.off(`error`,r)},i=()=>{r();let t=e.socket;t&&!t.destroyed&&t.destroySoon()},a=setTimeout(i,sd);a.unref?.();let o=e=>{n+=e.length,n>cd&&i()};e.on(`data`,o),e.on(`end`,r),e.on(`error`,r),e.resume()},ud=()=>new Response(null,{status:400}),dd=e=>new Response(null,{status:e instanceof Error&&(e.name===`TimeoutError`||e.constructor.name===`TimeoutError`)?504:500}),fd=(e,t)=>{let n=e instanceof Error?e:Error(`unknown error`,{cause:e});n.code===`ERR_STREAM_PREMATURE_CLOSE`?console.info(`The user aborted a request.`):(console.error(e),t.headersSent||t.writeHead(500,{"Content-Type":`text/plain`}),t.end(`Error: ${n.message}`),t.destroy(n))},pd=e=>{`flushHeaders`in e&&e.writable&&e.flushHeaders()},md=async(e,t)=>{let[n,r,i]=e[Zu],a=!1;if(!i)i={"content-type":`text/plain; charset=UTF-8`};else if(i instanceof Headers)a=i.has(`content-length`),i=rd(i);else if(Array.isArray(i)){let e=new Headers(i);a=e.has(`content-length`),i=rd(e)}else for(let e in i)if(e.length===14&&e.toLowerCase()===`content-length`){a=!0;break}a||(typeof r==`string`?i[`Content-Length`]=Buffer.byteLength(r):r instanceof Uint8Array?i[`Content-Length`]=r.byteLength:r instanceof Blob&&(i[`Content-Length`]=r.size)),t.writeHead(n,i),typeof r==`string`||r instanceof Uint8Array?t.end(r):r instanceof Blob?t.end(new Uint8Array(await r.arrayBuffer())):(pd(t),await nd(r,t)?.catch(e=>fd(e,t))),t[ad]?.()},hd=e=>typeof e.then==`function`,gd=async(e,t,n={})=>{if(hd(e))if(n.errorHandler)try{e=await e}catch(t){let r=await n.errorHandler(t);if(!r)return;e=r}else e=await e.catch(dd);if(Zu in e)return md(e,t);let r=rd(e.headers);if(e.body){let n=e.body.getReader(),i=[],a=!1,o;if(r[`transfer-encoding`]!==`chunked`){let e=2;for(let t=0;t<e;t++){o||=n.read();let r=await ed(o).catch(e=>{console.error(e),a=!0});if(!r){if(t===1){await new Promise(e=>setTimeout(e)),e=3;continue}break}if(o=void 0,r.value&&i.push(r.value),r.done){a=!0;break}}a&&!(`content-length`in r)&&(r[`content-length`]=i.reduce((e,t)=>e+t.length,0))}t.writeHead(e.status,r),i.forEach(e=>{t.write(e)}),a?t.end():(i.length===0&&pd(t),await td(n,t,o))}else r[id]||(t.writeHead(e.status,r),t.end());t[ad]?.()},_d=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==Lu&&(Object.defineProperty(global,`Request`,{value:Lu}),Object.defineProperty(global,`Response`,{value:$u})),async(r,i)=>{let a,o;try{o=Ju(r,t.hostname);let s=!n||r.method===`GET`||r.method===`HEAD`;if(s||(r[zu]=!0,r.on(`end`,()=>{s=!0}),r instanceof Cr&&(i[ad]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{ld(r)})})}),i.on(`finish`,()=>{s||ld(r)})),i.on(`close`,()=>{o[Ku]&&(r.errored?o[Ku].abort(r.errored.toString()):i.writableFinished||o[Ku].abort(`Client connection prematurely closed.`)),s||setTimeout(()=>{s||setTimeout(()=>{ld(r)})})}),a=e(o,{incoming:r,outgoing:i}),Zu in a)return md(a,i)}catch(e){if(a)return fd(e,i);if(t.errorHandler){if(a=await t.errorHandler(o?e:Fu(e)),!a)return}else a=o?dd(e):ud()}try{return await gd(a,i,t)}catch(e){return fd(e,i)}}},vd=class{_webStandardTransport;_requestListener;_requestContext=new WeakMap;constructor(e={}){this._webStandardTransport=new Nu(e),this._requestListener=_d(async e=>{let t=this._requestContext.get(e);return this._webStandardTransport.handleRequest(e,{authInfo:t?.authInfo,parsedBody:t?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,t){return this._webStandardTransport.send(e,t)}setSupportedProtocolVersions(e){this._webStandardTransport.setSupportedProtocolVersions(e)}async handleRequest(e,t,n){let r=e.auth;await _d(async e=>this._webStandardTransport.handleRequest(e,{authInfo:r,parsedBody:n}),{overrideGlobalObjects:!1})(e,t)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};const yd=(e,t)=>new Promise((n,r)=>{let i=[],a=0;e.on(`data`,n=>{if(a+=n.length,a>t){r(Error(`request entity too large (limit ${t} bytes)`)),e.destroy();return}i.push(n)}),e.on(`end`,()=>n(Buffer.concat(i).toString(`utf-8`))),e.on(`error`,r)});var bd=class{onclose;onerror;onmessage;get sessionId(){return this._sessionId}_sessionId;_sseResponse;constructor(e,t){this._endpoint=e,this.res=t,this._sessionId=gr()}async close(){this._sseResponse?.end(),this._sseResponse=void 0,this.onclose?.()}async handleMessage(e,t){let n;try{n=ze.parse(e)}catch(e){throw this.onerror?.(e),e}this.onmessage?.(n,t)}async handlePostMessage(e,t,n){if(!this._sseResponse){let e=`SSE connection not established`;throw t.writeHead(500).end(e),Error(e)}let r=e.auth,i;try{let t=e.headers[`content-type`]??``;if(t.split(`;`)[0].trim().toLowerCase()!==`application/json`)throw Error(`Unsupported content-type: ${t}`);i=n??await yd(e,4194304)}catch(e){t.writeHead(400).end(String(e)),this.onerror?.(e);return}try{await this.handleMessage(typeof i==`string`?JSON.parse(i):i,{authInfo:r})}catch{t.writeHead(400).end(`Invalid message: ${i}`);return}t.writeHead(202).end(`Accepted`)}async send(e){if(!this._sseResponse)throw Error(`Not connected`);this._sseResponse.write(`event: message\ndata: ${JSON.stringify(e)}\n\n`)}async start(){if(this._sseResponse)throw Error(`SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.`);this.res.writeHead(200,{"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`,"Content-Type":`text/event-stream`});let e=new Tr(this._endpoint,`http://localhost`);e.searchParams.set(`sessionId`,this._sessionId);let t=e.pathname+e.search+e.hash;this.res.write(`event: endpoint\ndata: ${t}\n\n`),this._sseResponse=this.res,this.res.on(`close`,()=>{this._sseResponse=void 0,this.onclose?.()})}};const xd=e=>new Promise(t=>{let n=[],r;e.on(`data`,e=>{n.push(e)}).on(`end`,()=>{r=Buffer.concat(n).toString();try{t(JSON.parse(r))}catch(n){i.error(`Error parsing body`,{bodyLength:r.length,bodyPreview:r.substring(0,100),contentType:e.headers[`content-type`],error:n}),t(null)}})}),Sd=(e,t)=>JSON.stringify({error:{code:e,message:t},id:null,jsonrpc:`2.0`}),Cd=(e,t)=>{if(e instanceof Response){let n={};return e.headers.forEach((e,t)=>{n[t]?Array.isArray(n[t])?n[t].push(e):n[t]=[n[t],e]:n[t]=e}),t.writeHead(e.status,e.statusText,n).end(e.statusText),!0}return!1},wd=async(e,t)=>{t&&await t(e);try{await e.close()}catch(t){i.error(`Error closing server`,{error:t,serverType:typeof e})}},Td=async({activeTransports:e,createServer:t,enableJsonResponse:n,endpoint:r,eventStore:a,onClose:o,onConnect:s,req:c,res:l,stateless:u})=>{if(c.method===`POST`&&new URL(c.url,`http://localhost`).pathname===r){try{let r=Array.isArray(c.headers[`mcp-session-id`])?c.headers[`mcp-session-id`][0]:c.headers[`mcp-session-id`],i,d,f=await xd(c);if(r){let t=e[r];if(!t)return l.setHeader(`Content-Type`,`application/json`),l.writeHead(404).end(Sd(-32001,`Session not found`)),!0;i=t.transport,d=t.server}else if(!r&&Eo(f)){i=new vd({enableJsonResponse:n,eventStore:a||new Dr,onsessioninitialized:t=>{!u&&t&&(e[t]={server:d,transport:i})},sessionIdGenerator:u?void 0:gr});let r=!1;i.onclose=async()=>{let t=i.sessionId;r||(r=!0,!u&&t&&e[t]?(await wd(d,o),delete e[t]):u&&await wd(d,o))};try{d=await t(c)}catch(e){return Cd(e,l)||l.writeHead(500).end(`Error creating server`),!0}return d.connect(i),s&&await s(d),await i.handleRequest(c,l,f),!0}else if(u&&!r&&!Eo(f)){i=new vd({enableJsonResponse:n,eventStore:a||new Dr,onsessioninitialized:()=>{},sessionIdGenerator:void 0});try{d=await t(c)}catch(e){return Cd(e,l)||l.writeHead(500).end(`Error creating server`),!0}return d.connect(i),s&&await s(d),await i.handleRequest(c,l,f),!0}else return l.setHeader(`Content-Type`,`application/json`),l.writeHead(400).end(Sd(-32e3,`Bad Request: No valid session ID provided`)),!0;return await i.handleRequest(c,l,f),!0}catch(e){i.error(`Error handling request`,{error:e}),l.setHeader(`Content-Type`,`application/json`),l.writeHead(500).end(Sd(-32603,`Internal Server Error`))}return!0}if(c.method===`GET`&&new URL(c.url,`http://localhost`).pathname===r){let t=c.headers[`mcp-session-id`],n=t?e[t]:void 0;if(!t)return l.writeHead(400).end(`No sessionId`),!0;if(!n)return l.writeHead(400).end(`No active transport`),!0;let r=c.headers[`last-event-id`];return r?i.info(`Client reconnecting with Last-Event-ID for session`,{lastEventId:r,sessionId:t}):i.info(`Establishing new SSE stream for session`,{sessionId:t}),await n.transport.handleRequest(c,l),!0}if(c.method===`DELETE`&&new URL(c.url,`http://localhost`).pathname===r){i.info(`Received delete request`);let t=c.headers[`mcp-session-id`];if(!t)return l.writeHead(400).end(`Invalid or missing sessionId`),!0;i.info(`Received delete request for session`,{sessionId:t});let n=e[t];if(!n)return l.writeHead(400).end(`No active transport`),!0;try{await n.transport.handleRequest(c,l),await wd(n.server,o)}catch(e){i.error(`Error handling delete request`,{error:e}),l.writeHead(500).end(`Error handling delete request`)}return!0}return!1},Ed=async({activeTransports:e,createServer:t,endpoint:n,onClose:r,onConnect:a,req:o,res:s})=>{if(o.method===`GET`&&new URL(o.url,`http://localhost`).pathname===n){let n=new bd(`/messages`,s),c;try{c=await t(o)}catch(e){return Cd(e,s)||s.writeHead(500).end(`Error creating server`),!0}e[n.sessionId]=n;let l=!1,u=!1;s.on(`close`,async()=>{l=!0,!u&&(u=!0,await wd(c,r),delete e[n.sessionId])});try{await c.connect(n),await n.send({jsonrpc:`2.0`,method:`sse/connection`,params:{message:`SSE Connection established`}}),a&&await a(c)}catch(e){l||(i.error(`Error connecting to server`,{error:e}),s.writeHead(500).end(`Error connecting to server`))}return!0}if(o.method===`POST`&&o.url?.startsWith(`/messages`)){let t=new URL(o.url,`https://example.com`).searchParams.get(`sessionId`);if(!t)return s.writeHead(400).end(`No sessionId`),!0;let n=e[t];return n?(await n.handlePostMessage(o,s),!0):(s.writeHead(400).end(`No active transport`),!0)}return!1},Dd=async({createServer:e,enableJsonResponse:t,eventStore:o,host:s=`::`,onClose:c,onConnect:l,onUnhandledRequest:u,port:d,sseEndpoint:f=`/sse`,stateless:p,streamEndpoint:m=`/mcp`})=>{let h={},g={},_=Er.createServer(async(s,d)=>{let _=n(s.headers)??r;await a(_,async()=>{if(s.headers.origin)try{let e=new URL(s.headers.origin);d.setHeader(`Access-Control-Allow-Origin`,e.origin),d.setHeader(`Access-Control-Allow-Credentials`,`true`),d.setHeader(`Access-Control-Allow-Methods`,`GET, POST, OPTIONS`),d.setHeader(`Access-Control-Allow-Headers`,`*`),d.setHeader(`Access-Control-Expose-Headers`,`mcp-session-id`)}catch(e){i.error(`Error parsing origin`,{error:e})}if(s.method===`OPTIONS`){d.writeHead(204),d.end();return}if(s.method===`GET`&&s.url===`/ping`){d.writeHead(200).end(`pong`);return}f&&await Ed({activeTransports:h,createServer:e,endpoint:f,onClose:c,onConnect:l,req:s,res:d})||m&&await Td({activeTransports:g,createServer:e,enableJsonResponse:t,endpoint:m,eventStore:o,onClose:c,onConnect:l,req:s,res:d,stateless:p})||(u?await u(s,d):d.writeHead(404).end())})});return await new Promise(e=>{_.listen(d,s,()=>{e(void 0)})}),{close:async()=>{for(let e of Object.values(h))await e.close();for(let e of Object.values(g))await e.transport.close();return new Promise((e,t)=>{_.close(n=>{if(n){t(n);return}e()})})}}};var Od=class{_readBuffer;_started=!1;_closed=!1;constructor(e=Sr.stdin,t=Sr.stdout,n){this._stdin=e,this._stdout=t,this._readBuffer=new Hs({maxBufferSize:n?.maxBufferSize})}onclose;onerror;onmessage;_ondata=e=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(e){this.onerror?.(e),this.close().catch(()=>{})}};_onerror=e=>{this.onerror?.(e)};_onstdouterror=e=>{this.onerror?.(e),this.close().catch(()=>{})};async start(){if(this._started)throw Error(`StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.`);this._started=!0,this._stdin.on(`data`,this._ondata),this._stdin.on(`error`,this._onerror),this._stdout.on(`error`,this._onstdouterror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._closed||(this._closed=!0,this._stdin.off(`data`,this._ondata),this._stdin.off(`error`,this._onerror),this._stdout.off(`error`,this._onstdouterror),this._stdin.listenerCount(`data`)===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.())}send(e){return this._closed?Promise.reject(Error(`StdioServerTransport is closed`)):new Promise((t,n)=>{let r=Ws(e),i=!1,a=e=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),n(e))},o=()=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),t())};if(this._stdout.once(`error`,a),this._stdout.write(r)){if(i)return;i=!0,this._stdout.off(`error`,a),t()}else i||this._stdout.once(`drain`,o)})}};const kd=3e3;var Ad=class{onclose;onerror;onmessage;_closed=!1;_pendingRequests=new Set;_drainWaiters=[];constructor(e,t,n){this._wire=e,this._onInstanceClose=t,this._outboundIntercept=n}async start(){}async send(e,t){if(Co(e)||wo(e)){let{id:t}=e;t!==void 0&&this._settle(t)}if(!this._closed&&this._outboundIntercept?.(e)!==`handled`)return this._wire.send(e,t)}setProtocolVersion=e=>{this._wire.setProtocolVersion?.(e)};deliver(e,t){if(!this._closed){if(Z(e))this._pendingRequests.add(e.id);else if(So(e)&&e.method===`notifications/cancelled`){let t=e.params?.requestId;t!==void 0&&this._settle(t)}this.onmessage?.(e,t)}}async whenRequestsAnswered(e){return this._closed||this._pendingRequests.size===0?!0:await new Promise(t=>{let n=()=>{clearTimeout(r),t(!0)},r=setTimeout(()=>{this._drainWaiters=this._drainWaiters.filter(e=>e!==n),t(!1)},e);this._drainWaiters.push(n)})}async close(){if(!this._closed){this._closed=!0,this._pendingRequests.clear(),this._releaseDrainWaiters();try{this._onInstanceClose()}finally{this.onclose?.()}}}_settle(e){this._pendingRequests.delete(e),this._pendingRequests.size===0&&this._releaseDrainWaiters()}_releaseDrainWaiters(){let e=this._drainWaiters;this._drainWaiters=[];for(let t of e)t()}};function jd(e){let t=e.params;if(e.method===`initialize`&&!Lo(t)){let e=typeof t==`object`&&t&&typeof t.protocolVersion==`string`?t.protocolVersion:void 0;return{kind:`legacy`,reason:`initialize`,...e!==void 0&&{requestedVersion:e}}}if(!vo(t))return{kind:`legacy`,reason:`no-claim`};let n=_o(t),r=(n===void 0?[]:bo(n))[0];if(r!==void 0)return{kind:`invalid-envelope`,issue:r};let i=yo(t);return i===void 0||!Bi.includes(i)?{kind:`unsupported-revision`,requested:i??`unknown`}:{kind:`modern`,revision:i,classification:{era:`modern`,revision:i}}}function Md(e,t={}){let n=t.legacy??`serve`,r=t.transport??new Od,i={phase:`opening`},a,o=!1,s=()=>o||i.phase===`closed`,c=e=>{try{t.onerror?.(e)}catch{}},l=(e,t,n,i)=>r.send({jsonrpc:`2.0`,id:e,error:{code:t,message:n,...i!==void 0&&{data:i}}}).catch(e=>c(Nd(e))),u=new lu(t.maxSubscriptions??au),d=e=>{if(!So(e))return;let t=u.routeOutbound(e);if(t!==`passthrough`){for(let e of t)r.send({jsonrpc:`2.0`,...e}).catch(e=>c(Nd(e)));return`handled`}},f=async e=>{if(Z(e)&&e.method===`subscriptions/listen`){let t=_o(e.params),n=vo(e.params)?(t===void 0?[]:bo(t))[0]:{key:`_meta`,problem:`the per-request envelope is required on protocol revision 2026-07-28`},i=yo(e.params),a;if(n!==void 0)a={jsonrpc:`2.0`,id:e.id,error:{code:-32602,message:`Invalid _meta envelope: ${n.key}: ${n.problem}`}};else if(i===void 0||!Bi.includes(i)){let t=new ja({supported:[...Bi],requested:i??`unknown`});a={jsonrpc:`2.0`,id:e.id,error:{code:t.code,message:t.message,data:t.data}}}else a=u.serve(e);return await r.send(`error`in a?a:{jsonrpc:`2.0`,method:a.method,params:a.params}).catch(e=>c(Nd(e))),!0}if(So(e)&&e.method===`notifications/cancelled`){let t=e.params?.requestId;if(t!==void 0&&u.cancel(t))return!0}return!1},p=(e,t,n)=>{let r=Ro({kind:`legacy`,reason:t,...n!==void 0&&{requestedVersion:n}},Bi);return r===void 0?Promise.resolve():(c(Error(`Rejected 2025-era request on a modern-only stdio connection (${r.cell}): ${r.message}`)),l(e.id,r.code,r.message,r.data))},m=e=>{o||e===a||S()},h=async(t,n)=>{let i=await e({era:t}),a=i instanceof Cu?i.server:i;t===`modern`&&(Ms(a,n),yu(a,Bi),u.setServerCapabilities(a.getCapabilities(),bu(a)));let o=new Ad(r,()=>m(o),t===`modern`?d:void 0);return await i.connect(o),{product:i,channel:o}},g=e=>e.product.close().catch(e=>c(Nd(e))),_=async e=>{a=e.channel;try{await e.channel.whenRequestsAnswered(kd)||c(Error(`Discarded the probe instance with requests still unanswered after ${kd}ms; continuing with the fallback`)),await e.product.close()}catch(e){c(Nd(e))}finally{a=void 0}},v=async e=>{if(i.phase===`closed`)return;if(i.phase===`pinned`){if(i.era===`modern`&&Z(e)&&e.method===`initialize`&&!Lo(e.params)){await p(e,`initialize`,e.params!==null&&typeof e.params==`object`&&typeof e.params.protocolVersion==`string`?e.params.protocolVersion:void 0);return}if(i.era===`modern`&&await f(e))return;i.instance.channel.deliver(e);return}if(!Z(e)&&!So(e)){c(Error(`Discarded a JSON-RPC response received before the connection negotiated an era`));return}let t=jd(e);switch(t.kind){case`invalid-envelope`:{let n=`Invalid _meta envelope for protocol revision 2026-07-28: ${t.issue.key}: ${t.issue.problem}`;Z(e)?await l(e.id,Y.InvalidParams,n,{envelope:t.issue}):c(Error(`Discarded a notification with a malformed envelope: ${n}`));return}case`unsupported-revision`:if(Z(e)){let n=new ja({supported:[...Bi],requested:t.requested});c(n),await l(e.id,n.code,n.message,n.data)}else c(Error(`Discarded a notification claiming unsupported protocol revision ${t.requested}`));return;case`modern`:if(Z(e)&&e.method===`server/discover`){if(i.phase===`probe`){i.instance.channel.deliver(e,{classification:t.classification});return}let n=await h(`modern`,t.revision);if(s()){await g(n);return}i={phase:`probe`,instance:n},n.channel.deliver(e,{classification:t.classification});return}if(i.phase===`probe`){if(So(e)){i.instance.channel.deliver(e,{classification:t.classification});return}i={phase:`pinned`,era:`modern`,instance:i.instance}}else{let e=await h(`modern`,t.revision);if(s()){await g(e);return}i={phase:`pinned`,era:`modern`,instance:e}}if(await f(e))return;i.instance.channel.deliver(e,{classification:t.classification});return;case`legacy`:{if(n===`reject`){Z(e)&&await p(e,t.reason,t.requestedVersion);return}if(i.phase===`probe`){if(await _(i.instance),s())return;i={phase:`opening`}}let r=await h(`legacy`);if(s()){await g(r);return}i={phase:`pinned`,era:`legacy`,instance:r},i.instance.channel.deliver(e);return}}},y=[],b=!1,x=async()=>{if(!b){b=!0;try{for(;y.length>0;){let e=y.shift();try{await v(e)}catch(t){Z(e)&&await l(e.id,Y.InternalError,`Internal server error`),c(Nd(t))}}}finally{b=!1}}},S=async()=>{if(o||i.phase===`closed`)return;o=!0;let e=i;i={phase:`closed`};for(let e of u.teardownAll())await r.send(e).catch(e=>c(Nd(e)));(e.phase===`probe`||e.phase===`pinned`)&&await e.instance.product.close().catch(e=>c(Nd(e))),await r.close().catch(e=>c(Nd(e)))};r.onmessage=e=>{y.push(e),x()},r.onerror=e=>{c(e),(i.phase===`probe`||i.phase===`pinned`)&&i.instance.channel.onerror?.(e)},r.onclose=()=>{if(o||i.phase===`closed`)return;o=!0;let e=i;i={phase:`closed`},(e.phase===`probe`||e.phase===`pinned`)&&e.instance.product.close().catch(e=>c(Nd(e)))};let C=r.start().catch(e=>{throw c(Nd(e)),e});return C.catch(()=>{}),{close:async()=>{await C.catch(()=>{}),await S()}}}function Nd(e){return e instanceof Error?e:Error(String(e))}const Pd=()=>t.supportNewMcpProtocol?{mode:`auto`}:void 0;export{kr as AccessControlBlockError,Ar as ConfigurationError,Dr as InMemoryEventStore,jr as ProtocolEraMismatchError,Mr as ProxyConnectionError,xu as Server,Od as StdioServerTransport,si as compressClientInfo,$r as getSessionData,ui as initializeTrafficMirror,mi as logRequestCounts,gi as proxyServer,ni as redactCliArgs,Md as serveStdio,Dd as startHTTPServer,Pd as upstreamVersionNegotiation};
|
|
15
|
-
//# sourceMappingURL=upstreamNegotiation-
|
|
15
|
+
//# sourceMappingURL=upstreamNegotiation-bWTIQmfK.js.map
|