@gjermundgaraba/clankerauth-dev 0.14.0 → 0.15.0
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/index.mjs +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -531,7 +531,7 @@ Most of the features of Better Auth will not work correctly.`);let u=t.secrets??
|
|
|
531
531
|
`,i=(yield*A_e(r)).map(e=>({client_id:e.clientId,onboarding:e.clientDiscoveryId===null?e.userId===null?`dcr`:`managed`:`cimd`,blocked:e.disabled===1,client_name:e.name??void 0,redirect_uris:e.redirectUris,token_endpoint_auth_method:e.tokenEndpointAuthMethod??void 0,application_type:e.applicationType,scope:e.scopes?.join(` `),grant_types:e.grantTypes??void 0})),a=yield*vp({resources:e.resources.list(),clientAccess:e.resources.access(),connections:e.clients.connections()});return{clients:i,resources:a.resources.map(e=>({...e,builtIn:e.identifier===y1(n.baseURL)})),clientAccess:a.clientAccess,connections:a.connections,email:t,issuer:`${n.baseURL}/api/auth`}}),create:V(`Administration.create`)(function*(n){let{providerHeaders:r}=yield*R$,i=yield*e.resources.scopesFor(n.resources),a=yield*r,o=yield*c1(()=>t.api.adminCreateOAuthClient({headers:a,body:{client_name:n.client_name,redirect_uris:[...n.redirect_uris],token_endpoint_auth_method:n.token_endpoint_auth_method,application_type:n.application_type,grant_types:[`authorization_code`,`refresh_token`],scope:i.join(` `),skip_consent:!0}}));return yield*e.resources.setAccess(o.client_id,n.resources).pipe(Kp(()=>c1(()=>t.api.deleteOAuthClient({headers:a,body:{client_id:o.client_id}})))),o}),update:V(`Administration.update`)(function*(e){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*c1(()=>t.api.updateOAuthClient({headers:r,body:{client_id:e.client_id,update:{client_name:e.client_name,redirect_uris:[...e.redirect_uris],application_type:e.application_type}}}))}),access:V(`Administration.access`)(function*(t){return yield*R$,{clientAccess:yield*e.resources.setAccess(t.client_id,t.resources)}}),createResource:V(`Administration.createResource`)(function*(t){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*e.resources.create(t,r)}),updateResource:V(`Administration.updateResource`)(function*(t){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*e.resources.update(t,r)}),deleteResource:V(`Administration.deleteResource`)(function*(t){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*e.resources.delete(t.identifier,r)}),delete:V(`Administration.delete`)(function*(t){return yield*R$,yield*e.clients.delete(t.client_id)}),revoke:V(`Administration.revoke`)(function*(t){return yield*R$,yield*e.clients.revoke(t.client_id,t.resource)}),block:V(`Administration.block`)(function*(t){return yield*R$,yield*e.clients.block(t.client_id,t.blocked)}),rotate:V(`Administration.rotate`)(function*(e){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*c1(()=>t.api.rotateClientSecret({headers:r,body:e}))})}}),E6=/*#__PURE__*/ U({method:HS([`GET`,`POST`,`PATCH`,`PUT`,`DELETE`,`HEAD`,`OPTIONS`,`TRACE`,`QUERY`]),url:H,urlParams:W(zS([H,H])),hash:bS(H),headers:IS(H,G([H,RC(H)]))}).annotate({identifier:`HttpRequestDetails`}),j_e=/*#__PURE__*/ U({status:uC,headers:IS(H,G([H,RC(H)]))}).annotate({identifier:`HttpResponseDetails`}),D6=`~effect/ai/AiError/Reason`,O6=()=>P_e.pipe(JS(N({})),mae(N({}))),M_e=e=>{let t=Pn(e),n={};for(let e in t){let r=t[e];ar(n,e,Lg(r)?r.toString():r)}return n};var N_e=class e extends (/*#__PURE__*/ WC(`effect/ai/AiError/NetworkError`)({_tag:/*#__PURE__*/ YS(`NetworkError`),reason:/*#__PURE__*/ HS([`TransportError`,`EncodeError`,`InvalidUrlError`]),request:E6,description:/*#__PURE__*/ bS(H)})){[D6]=D6;get isRetryable(){return this.reason===`TransportError`}static fromRequestError(t){return new e({description:t.description,reason:t._tag,request:{hash:Li(t.request.hash),headers:M_e(t.request.headers),method:t.request.method,url:t.request.url,urlParams:Array.from(t.request.urlParams)}})}get message(){let e=`${this.request.method} ${this.request.url}`,t=this.description?`${this.reason}: ${this.description}`:`${this.reason}: A network error occurred.`;t+=` (${e})`;let n=``;switch(this.reason){case`EncodeError`:n+=`Check that the request body data is properly formatted and matches the expected content type.`;break;case`InvalidUrlError`:n+=`Verify that the URL format is correct and that all required parameters have been provided.`,n+=` Check for any special characters that may need encoding.`;break;case`TransportError`:n+=`Check your network connection and verify that the requested URL is accessible.`}return t+=`\n\n${n}`,t}};const P_e=/*#__PURE__*/ IS(H,/*#__PURE__*/ US(Sae)),k6=/*#__PURE__*/ U({promptTokens:bS(uC),completionTokens:bS(uC),totalTokens:bS(uC)}).annotate({identifier:`UsageInfo`}),A6=/*#__PURE__*/ U({request:E6,response:bS(j_e),body:bS(H)}).annotate({identifier:`HttpContext`});var F_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/RateLimitError`)({_tag:/*#__PURE__*/ YS(`RateLimitError`),retryAfter:/*#__PURE__*/ bS(_ae),metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!0}get message(){let e=`Rate limit exceeded`;return this.retryAfter&&(e+=`. Retry after ${To(this.retryAfter)}`),e}},I_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/QuotaExhaustedError`)({_tag:/*#__PURE__*/ YS(`QuotaExhaustedError`),resetAt:/*#__PURE__*/ bS(FC),metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!1}get message(){let e=`Quota exhausted`;return this.resetAt&&(e+=`. Resets at ${this.resetAt}`),`${e}. Check your account billing and usage limits.`}},L_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/AuthenticationError`)({_tag:/*#__PURE__*/ YS(`AuthenticationError`),kind:/*#__PURE__*/ HS([`InvalidKey`,`ExpiredKey`,`MissingKey`,`InsufficientPermissions`,`Unknown`]),description:/*#__PURE__*/ bS(H),metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!1}get message(){let e=`${this.kind}: ${{InvalidKey:`Verify your API key is correct`,ExpiredKey:`Your API key has expired. Generate a new one`,MissingKey:`No API key provided. Set the appropriate environment variable`,InsufficientPermissions:`Your API key lacks required permissions`,Unknown:`Authentication failed. Check your credentials`}[this.kind]}`;return this.description&&(e+=`. ${this.description}`),e}},R_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ContentPolicyError`)({_tag:/*#__PURE__*/ YS(`ContentPolicyError`),description:H,metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!1}get message(){return`Content policy violation: ${this.description}`}},z_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/InvalidRequestError`)({_tag:/*#__PURE__*/ YS(`InvalidRequestError`),parameter:/*#__PURE__*/ bS(H),constraint:/*#__PURE__*/ bS(H),description:/*#__PURE__*/ bS(H),metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!1}get message(){let e=`Invalid request`;return this.parameter&&(e+=`: parameter '${this.parameter}'`),this.constraint&&(e+=` ${this.constraint}`),this.description&&(e+=`. ${this.description}`),e}},B_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/InternalProviderError`)({_tag:/*#__PURE__*/ YS(`InternalProviderError`),description:H,metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!0}get message(){return`Internal provider error: ${this.description}`}},V_e=class e extends (/*#__PURE__*/ WC(`effect/ai/AiError/InvalidOutputError`)({_tag:/*#__PURE__*/ YS(`InvalidOutputError`),description:H,metadata:/*#__PURE__*/ O6(),usage:/*#__PURE__*/ bS(k6)})){[D6]=D6;get isRetryable(){return!0}static fromSchemaError(t){return new e({description:t.message})}get message(){return`Invalid output: ${this.description}`}},H_e=class e extends (/*#__PURE__*/ WC(`effect/ai/AiError/StructuredOutputError`)({_tag:/*#__PURE__*/ YS(`StructuredOutputError`),description:H,responseText:H,metadata:/*#__PURE__*/ O6(),usage:/*#__PURE__*/ bS(k6)})){[D6]=D6;get isRetryable(){return!0}static fromSchemaError(t,n){return new e({description:t.message,responseText:n})}get message(){return`Structured output validation failed: ${this.description}`}},U_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/UnsupportedSchemaError`)({_tag:/*#__PURE__*/ YS(`UnsupportedSchemaError`),description:H,metadata:/*#__PURE__*/ O6()})){[D6]=D6;get isRetryable(){return!1}get message(){return`Unsupported schema: ${this.description}`}},W_e=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/UnknownError`)({_tag:/*#__PURE__*/ YS(`UnknownError`),description:/*#__PURE__*/ bS(H),metadata:/*#__PURE__*/ O6(),http:/*#__PURE__*/ bS(A6)})){[D6]=D6;get isRetryable(){return!1}get message(){return this.description??`Unknown error`}},j6=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ToolNotFoundError`)({_tag:/*#__PURE__*/ YS(`ToolNotFoundError`),toolName:H,availableTools:/*#__PURE__*/ W(H)})){[D6]=D6;get isRetryable(){return!0}get message(){let e=this.availableTools.length>0?this.availableTools.join(`, `):`none`;return`Tool '${this.toolName}' not found. Available tools: ${e}`}},M6=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ToolParameterValidationError`)({_tag:/*#__PURE__*/ YS(`ToolParameterValidationError`),toolName:H,description:H})){[D6]=D6;get isRetryable(){return!0}get message(){return`Invalid parameters for tool '${this.toolName}': ${this.description}`}},N6=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/InvalidToolResultError`)({_tag:/*#__PURE__*/ YS(`InvalidToolResultError`),toolName:H,description:H})){[D6]=D6;get isRetryable(){return!1}get message(){return`Tool '${this.toolName}' returned invalid result: ${this.description}`}},P6=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ToolResultEncodingError`)({_tag:/*#__PURE__*/ YS(`ToolResultEncodingError`),toolName:H,toolResult:DS,description:H})){[D6]=D6;get isRetryable(){return!1}get message(){return`Failed to encode result for tool '${this.toolName}': ${this.description}`}};const G_e=/*#__PURE__*/ G([F_e,I_e,L_e,R_e,z_e,B_e,N_e,V_e,H_e,U_e,W_e,j6,M6,N6,P6,class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ToolConfigurationError`)({_tag:/*#__PURE__*/ YS(`ToolConfigurationError`),toolName:H,description:H})){[D6]=D6;get isRetryable(){return!1}get message(){return`Invalid configuration for tool '${this.toolName}': ${this.description}`}},class extends (/*#__PURE__*/ WC(`effect/ai/AiError/ToolkitRequiredError`)({_tag:/*#__PURE__*/ YS(`ToolkitRequiredError`),pendingApprovals:/*#__PURE__*/ W(H),description:/*#__PURE__*/ bS(H)})){[D6]=D6;get isRetryable(){return!1}get message(){return`Toolkit required to resolve pending tool approvals: ${this.pendingApprovals.join(`, `)}`}},class extends (/*#__PURE__*/ WC(`effect/ai/AiError/InvalidUserInputError`)({_tag:/*#__PURE__*/ YS(`InvalidUserInputError`),description:H})){[D6]=D6;get isRetryable(){return!1}get message(){return`Invalid user input: ${this.description}`}}]),F6=`~effect/ai/AiError`;var I6=class extends (/*#__PURE__*/ WC(`effect/ai/AiError/AiError`)({_tag:/*#__PURE__*/ YS(`AiError`),module:H,method:H,reason:G_e})){[F6]=F6;cause=this.reason;get isRetryable(){return this.reason.isRetryable}get retryAfter(){return`retryAfter`in this.reason?this.reason.retryAfter:void 0}get message(){return`${this.module}.${this.method}: ${this.reason.message}`}};const K_e=e=>A(e,F6),q_e=e=>A(e,D6),L6=e=>new I6(e),R6=(e,t)=>Object.assign(Object.create(Object.getPrototypeOf(e)),e,t),z6={"~effect/ai/Tool":{_Requirements:k},pipe(){return bt(this,arguments)},addDependency(){return R6(this)},setParameters(e){return R6(this,{parametersSchema:e,jsonSchema:void 0})},setSuccess(e){return R6(this,{successSchema:e})},setFailure(e){return R6(this,{failureSchema:e})},setNeedsApproval(e){return R6(this,{needsApproval:e})},annotate(e,t){return R6(this,{annotations:aa(this.annotations,e,t)})},annotateMerge(e){return R6(this,{annotations:ga(this.annotations,e)})}};({...z6}),{...z6};const J_e=e=>{let t=Object.assign(Object.create(z6),e);return t.id=`effect/ai/Tool/${e.name}`,t},Y_e=(e,t)=>{let n=t?.success??NS,r=t?.failure??TS;return J_e({name:e,description:t?.description,parametersSchema:t?.parameters??eve,successSchema:n,failureSchema:r,failureMode:t?.failureMode??`error`,annotations:na(),needsApproval:t?.needsApproval})},X_e=e=>{if(e.description!==void 0)return e.description;if(vS(e.parametersSchema))return Kb(e.parametersSchema.ast)};var B6=class extends (/*#__PURE__*/ j()(`effect/ai/Tool/Title`)){},V6=class extends (/*#__PURE__*/ j()(`effect/ai/Tool/Meta`)){};const H6=/*#__PURE__*/ ya(`effect/ai/Tool/Readonly`,{defaultValue:Tt}),U6=/*#__PURE__*/ ya(`effect/ai/Tool/Destructive`,{defaultValue:wt}),W6=/*#__PURE__*/ ya(`effect/ai/Tool/Idempotent`,{defaultValue:Tt}),G6=/*#__PURE__*/ ya(`effect/ai/Tool/OpenWorld`,{defaultValue:wt}),K6=/*#__PURE__*/ ya(`effect/ai/Tool/Strict`,{defaultValue:()=>void 0}),Z_e=e=>da(e.annotations,K6),Q_e=/*#__PURE__*/ U({type:HS([`execution-denied`,`execution-interrupted`]),reason:H}).annotate({identifier:`ToolExecutionFailure`}),$_e=e=>G([I6,e.failureSchema,Q_e]),eve=/*#__PURE__*/ IS(H,TS),q6=`~effect/ai/Toolkit`,J6=/*#__PURE__*/ ya(`effect/ai/Toolkit/FailureOrigin`,{defaultValue:()=>`result`}),Y6=(e,t)=>Rd(_d(e),ia(J6,t)),tve={.../*#__PURE__*/ si({label:`Toolkit`,evaluate:/*#__PURE__*/ B(function*(e){let t=this.tools,n=e.context,r=/* @__PURE__ */ new WeakMap,i=e=>{let t=r.get(e);if(Ht(t)){let i=n.mapUnsafe.get(e.id),a=vS(e.parametersSchema)?uS(e.parametersSchema):e=>N(e),o=pS(e.successSchema),s=pS($_e(e));t={context:i.context,handler:i.handler,decodeParameters:a,encodeResult:(e,t)=>t?s(e):o(e)},r.set(e,t)}return t};return{tools:t,handle:B(function*(e,n,r,a){let o=Object.hasOwn(t,e)?t[e]:void 0;if(yield*km({tool:e,parameters:n}),Ht(o))return yield*L6({module:`Toolkit`,method:`${e}.handle`,reason:new j6({toolName:e,availableTools:Object.keys(t)})});let s=i(o),c=(t,n)=>s.encodeResult(t,n).pipe(Wp(n=>L6({module:`Toolkit`,method:`${e}.handle`,reason:new P6({toolName:e,toolResult:t,description:n.message})}))),l=yield*Fp(s.decodeParameters(n,a));if(Ea(l)){let t=L6({module:`Toolkit`,method:`${e}.handle`,reason:new M6({toolName:e,description:l.failure.message})});return o.failureMode===`error`?yield*Dp(Y6(t,`parameters`)):RE(z(c(t,!0),e=>({result:t,isFailure:!0,failureOrigin:`parameters`,preliminary:!1,encodedResult:e})))}let u=l.success,d=yield*Zw(),f={toolCallId:r,preliminary:e=>Rp(eT(d,{result:e,isFailure:!1,preliminary:!0}))},p=yield*s.handler(u,f).pipe(R(e=>eT(d,{result:e,isFailure:!1,preliminary:!1})),um(e=>ga(s.context,e)),tm({onFailure:e=>iT(d,e),onSuccess:()=>oT(d)}),Pm),m=t=>oS(t)?L6({module:`Toolkit`,method:`${e}.handle`,reason:new N6({toolName:e,description:`Tool handler returned invalid result: ${t.message}`})}):q_e(t)?L6({module:`Toolkit`,method:`${e}.handle`,reason:t}):t;return WE(d).pipe(Doe(e=>{let t=m(e),n=oS(e)?`result`:`handler`;return o.failureMode===`error`?yoe(Y6(t,n)):_oe({result:t,isFailure:!0,failureOrigin:n,preliminary:!1})}),xoe(B(function*(e){let t=yield*c(e.result,e.isFailure);return{...e,encodedResult:t}})),Poe(rw(p)))})}})}),[q6]:q6,of:k,toHandlers(e){return I({self:this},function*(){let t=yield*rm(),n=_p(e)?yield*e:e,r=/* @__PURE__ */ new Map;for(let[e,i]of Object.entries(n)){let n=Object.hasOwn(this.tools,e)?this.tools[e]:void 0;n!==void 0&&r.set(n.id,{name:e,handler:i,context:t})}return Qi(r)})},toLayer(e){return Kf(this.toHandlers(e))},toJSON(){return{_id:`effect/ai/Toolkit`,tools:Array.from(Object.values(this.tools)).map(e=>e.name)}}},nve=e=>Object.assign(function(){},tve,{tools:e}),rve=(...e)=>{let t={};for(let n of e)ar(t,n.name,n);return t},ive=(...e)=>nve(rve(...e)),X6=`~effect/rpc/RpcMiddleware`,ave=()=>(e,t)=>{let n=tr(),r;n!==0&&(nr(2),r=new globalThis.Error,nr(n));function i(){}let a=i;return Object.setPrototypeOf(i,Object.getPrototypeOf(j(e))),i.key=e,Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[X6]=X6,a.error=t?.error??TS,a.requiredForClient=t?.requiredForClient??!1,i},Z6=(e,t)=>{let n=P(t);return yS(e).pipe(fae({decode:Ev(n),encode:bv()}),JS(n))},Z=e=>yS(e).pipe(GS(xS(bS(e)),{decode:bv(),encode:Cv(Bi(Ii))})),ove=/*#__PURE__*/ G([H,rC]),Q6=/*#__PURE__*/ G([H,rC]);var $6=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(/*#__PURE__*/ LS(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ Z(Q6)}),[K]))}))){},e8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(K)}))){},t8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(K)}))){};const sve=H;({...$6.fields});var n8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({...e8.fields,nextCursor:/*#__PURE__*/ Z(sve)}))){};const cve=/*#__PURE__*/ HS([`user`,`assistant`]);var r8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({audience:/*#__PURE__*/ Z(/*#__PURE__*/ W(cve)),priority:/*#__PURE__*/ Z(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1}))),lastModified:/*#__PURE__*/ Z(H)}))){},i8=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/Icon`)({src:H,mimeType:/*#__PURE__*/ Z(H),sizes:/*#__PURE__*/ Z(/*#__PURE__*/ W(H)),theme:/*#__PURE__*/ Z(/*#__PURE__*/ HS([`light`,`dark`]))})){},a8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({name:H,title:/*#__PURE__*/ Z(H),version:H,icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(i8)),description:/*#__PURE__*/ Z(H),websiteUrl:/*#__PURE__*/ Z(H)}))){},lve=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ClientCapabilities`)({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ IS(H,/*#__PURE__*/ U({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ IS(/*#__PURE__*/ wS([H,`/`,H]),YC)),roots:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(jS)})),sampling:/*#__PURE__*/ Z(/*#__PURE__*/ U({context:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ U({}))})),elicitation:/*#__PURE__*/ Z(/*#__PURE__*/ U({form:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),url:/*#__PURE__*/ Z(/*#__PURE__*/ U({}))}))})){},uve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ IS(H,/*#__PURE__*/ U({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ IS(/*#__PURE__*/ wS([H,`/`,H]),YC)),logging:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),completions:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),prompts:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(jS)})),resources:/*#__PURE__*/ Z(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ Z(jS),listChanged:/*#__PURE__*/ Z(jS)})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(jS)}))}))){},o8=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/McpErrorBase`)({code:uC,message:H,data:/*#__PURE__*/ Z(ES)})){};const s8=-32601,c8=-32602,l8=-32603,u8=-32020;var d8=class extends (/*#__PURE__*/ WC(`effect/ai/McpSchema/ParseError`)({...o8.fields,_tag:/*#__PURE__*/ YS(`ParseError`),code:/*#__PURE__*/ YS(-32700)})){},f8=class extends (/*#__PURE__*/ WC(`effect/ai/McpSchema/InvalidRequest`)({...o8.fields,_tag:/*#__PURE__*/ YS(`InvalidRequest`),code:/*#__PURE__*/ YS(-32600)})){},p8=class extends (/*#__PURE__*/ WC(`effect/ai/McpSchema/MethodNotFound`)({...o8.fields,_tag:/*#__PURE__*/ YS(`MethodNotFound`),code:/*#__PURE__*/ YS(s8)})){},m8=class extends (/*#__PURE__*/ WC(`effect/ai/McpSchema/InvalidParams`)({...o8.fields,_tag:/*#__PURE__*/ YS(`InvalidParams`),code:/*#__PURE__*/ YS(c8)})){},h8=class e extends (/*#__PURE__*/ WC(`effect/ai/McpSchema/InternalError`)({...o8.fields,_tag:/*#__PURE__*/ YS(`InternalError`),code:/*#__PURE__*/ YS(l8)})){static notImplemented=/*#__PURE__*/ new e({message:`Not implemented`})};const g8=/*#__PURE__*/ G([d8,f8,p8,m8,h8,o8]);var dve=class extends (/*#__PURE__*/ oP(`ping`,{success:/*#__PURE__*/ U({}),error:g8,payload:/*#__PURE__*/ WS($6)})){},fve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({...e8.fields,protocolVersion:H,capabilities:uve,serverInfo:a8,instructions:/*#__PURE__*/ Z(H)}))){},pve=class extends (/*#__PURE__*/ oP(`initialize`,{success:fve,error:g8,payload:{...$6.fields,protocolVersion:H,capabilities:lve,clientInfo:a8}})){},_8=class extends (/*#__PURE__*/ oP(`notifications/cancelled`,{payload:{...t8.fields,requestId:ove,reason:/*#__PURE__*/ Z(H)}})){},v8=class extends (/*#__PURE__*/ oP(`notifications/progress`,{payload:{...t8.fields,progressToken:Q6,progress:rC,total:/*#__PURE__*/ Z(rC),message:/*#__PURE__*/ Z(H)}})){},mve=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/Resource`)({uri:H,name:H,title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),mimeType:/*#__PURE__*/ Z(H),annotations:/*#__PURE__*/ Z(r8),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(i8)),size:/*#__PURE__*/ Z(uC),_meta:/*#__PURE__*/ Z(K)})){},y8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({uri:H,mimeType:/*#__PURE__*/ Z(H),_meta:/*#__PURE__*/ Z(K)}))){},hve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({...y8.fields,text:H}))){},gve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({...y8.fields,blob:AC}))){};({...n8.fields}),{...n8.fields},{...e8.fields},{...$6.fields};var b8=class extends (/*#__PURE__*/ oP(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ WS(t8)})){};({...$6.fields}),{...$6.fields};var x8=class extends (/*#__PURE__*/ oP(`notifications/resources/updated`,{payload:{...t8.fields,uri:H}})){},_ve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({name:H,title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),required:/*#__PURE__*/ Z(jS)}))){},vve=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/Prompt`)({name:H,title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),arguments:/*#__PURE__*/ Z(/*#__PURE__*/ W(_ve)),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(i8)),_meta:/*#__PURE__*/ Z(K)})){},S8=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({type:/*#__PURE__*/ YS(`text`),text:H,annotations:/*#__PURE__*/ Z(r8),_meta:/*#__PURE__*/ Z(K)}))){};const yve=/*#__PURE__*/ G([S8,class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({type:/*#__PURE__*/ YS(`image`),data:AC,mimeType:H,annotations:/*#__PURE__*/ Z(r8),_meta:/*#__PURE__*/ Z(K)}))){},class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({type:/*#__PURE__*/ YS(`audio`),data:AC,mimeType:H,annotations:/*#__PURE__*/ Z(r8),_meta:/*#__PURE__*/ Z(K)}))){},class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({type:/*#__PURE__*/ YS(`resource`),resource:/*#__PURE__*/ G([hve,gve]),annotations:/*#__PURE__*/ Z(r8),_meta:/*#__PURE__*/ Z(K)}))){},class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({...mve.fields,type:/*#__PURE__*/ YS(`resource_link`)}))){}]);({...n8.fields}),{...e8.fields},{...$6.fields};var C8=class extends (/*#__PURE__*/ oP(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ WS(t8)})){},bve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({title:/*#__PURE__*/ Z(H),readOnlyHint:/*#__PURE__*/ Z6(jS,Tt),destructiveHint:/*#__PURE__*/ Z6(jS,wt),idempotentHint:/*#__PURE__*/ Z6(jS,Tt),openWorldHint:/*#__PURE__*/ Z6(jS,wt)}))){};const w8=/*#__PURE__*/ LS(/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`object`),properties:/*#__PURE__*/ Z(/*#__PURE__*/ IS(H,K)),required:/*#__PURE__*/ Z(/*#__PURE__*/ W(H))}),[K]),T8=K;var E8=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/Tool`)({name:H,title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),inputSchema:w8,outputSchema:/*#__PURE__*/ Z(T8),annotations:/*#__PURE__*/ Z(bve),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(i8)),_meta:/*#__PURE__*/ Z(K)})){};({...n8.fields});var D8=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/CallToolResult`)({...e8.fields,content:/*#__PURE__*/ W(yve),structuredContent:/*#__PURE__*/ Z(YC),isError:/*#__PURE__*/ Z(jS)})){};({...$6.fields});var O8=class extends (/*#__PURE__*/ oP(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ WS(t8)})){};const k8=/*#__PURE__*/ HS([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]);({...$6.fields});var A8=class extends (/*#__PURE__*/ oP(`notifications/message`,{payload:/*#__PURE__*/ U({...t8.fields,level:k8,logger:/*#__PURE__*/ Z(H),data:ES})})){},xve=class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ToolChoice`)({mode:/*#__PURE__*/ Z(/*#__PURE__*/ HS([`auto`,`required`,`none`]))})){},Sve=class extends (/*#__PURE__*/ ZS()(/*#__PURE__*/ U({name:/*#__PURE__*/ Z(H)}))){};(class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ModelPreferences`)({hints:/*#__PURE__*/ Z(/*#__PURE__*/ W(Sve)),costPriority:/*#__PURE__*/ Z(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ Z(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ Z(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1})))})){}).fields,E8.fields,xve.fields,{...e8.fields};const Cve=/*#__PURE__*/ U({$schema:/*#__PURE__*/ Z(H),type:/*#__PURE__*/ YS(`object`),properties:/*#__PURE__*/ IS(H,/* @__PURE__ */ G([/* @__PURE__ */ G([class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/LegacyTitledEnum`)({type:/*#__PURE__*/ YS(`string`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),enum:/*#__PURE__*/ W(H),enumNames:/*#__PURE__*/ Z(/*#__PURE__*/ W(H)),default:/*#__PURE__*/ Z(H)})){},/* @__PURE__ */ G([class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/UntitledSingleSelectEnum`)({type:/*#__PURE__*/ YS(`string`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),enum:/*#__PURE__*/ W(H),default:/*#__PURE__*/ Z(H)})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/TitledSingleSelectEnum`)({type:/*#__PURE__*/ YS(`string`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),oneOf:/*#__PURE__*/ W(/*#__PURE__*/ U({const:H,title:H})),default:/*#__PURE__*/ Z(H)})){}]),/* @__PURE__ */ G([class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/UntitledMultiSelectEnum`)({type:/*#__PURE__*/ YS(`array`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),minItems:/*#__PURE__*/ Z(uC),maxItems:/*#__PURE__*/ Z(uC),items:/*#__PURE__*/ U({type:/*#__PURE__*/ YS(`string`),enum:/*#__PURE__*/ W(H)}),default:/*#__PURE__*/ Z(/*#__PURE__*/ W(H))})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/TitledMultiSelectEnum`)({type:/*#__PURE__*/ YS(`array`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),minItems:/*#__PURE__*/ Z(uC),maxItems:/*#__PURE__*/ Z(uC),items:/*#__PURE__*/ U({anyOf:/*#__PURE__*/ W(/*#__PURE__*/ U({const:H,title:H}))}),default:/*#__PURE__*/ Z(/*#__PURE__*/ W(H))})){}])]),class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitationString`)({type:/*#__PURE__*/ YS(`string`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),minLength:/*#__PURE__*/ Z(uC),maxLength:/*#__PURE__*/ Z(uC),format:/*#__PURE__*/ Z(/*#__PURE__*/ HS([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Z(H)})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitationNumber`)({type:/*#__PURE__*/ HS([`number`,`integer`]),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),minimum:/*#__PURE__*/ Z(rC),maximum:/*#__PURE__*/ Z(rC),default:/*#__PURE__*/ Z(rC)})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitationBoolean`)({type:/*#__PURE__*/ YS(`boolean`),title:/*#__PURE__*/ Z(H),description:/*#__PURE__*/ Z(H),default:/*#__PURE__*/ Z(jS)})){}])),required:/*#__PURE__*/ Z(/*#__PURE__*/ W(H))}),wve=/*#__PURE__*/ G([class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitRequestFormParams`)({...$6.fields,mode:/*#__PURE__*/ Z(/*#__PURE__*/ CS(`form`)),message:H,requestedSchema:Cve})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitRequestURLParams`)({...$6.fields,mode:/*#__PURE__*/ CS(`url`),message:H,elicitationId:H,url:H})){}]),Tve=/*#__PURE__*/ G([class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitAcceptResult`)({...e8.fields,action:/*#__PURE__*/ CS(`accept`),content:/*#__PURE__*/ Z(/*#__PURE__*/ IS(H,/*#__PURE__*/ G([H,rC,jS,/*#__PURE__*/ W(H)])))})){},class extends (/*#__PURE__*/ UC(`@effect/ai/McpSchema/ElicitDeclineResult`)({...e8.fields,action:/*#__PURE__*/ HS([`cancel`,`decline`])})){}]);var Eve=class extends (/*#__PURE__*/ oP(`elicitation/create`,{success:Tve,error:g8,payload:wve})){},Dve=class extends (/*#__PURE__*/ oP(`notifications/elicitation/complete`,{payload:{elicitationId:H}})){};Eve.payloadSchema;var Ove=class extends (/*#__PURE__*/ Bo(`McpReverseOperationUnsupported`)){},j8=class extends (/*#__PURE__*/ j()(`effect/ai/McpSchema/McpRequestContext`)){},M8=class extends (/*#__PURE__*/ j()(`effect/ai/McpSchema/McpServerClient`)){},N8=class extends (/*#__PURE__*/ ave()(`effect/ai/McpSchema/McpServerClientMiddleware`)){},kve=class extends (/*#__PURE__*/ CP(_8,v8,A8,x8,b8,O8,C8,Dve)){},P8=class extends (/*#__PURE__*/ j()(`effect/ai/McpSchema/EnabledWhen`)){};const F8={Complete:e=>({_tag:`Complete`,value:e}),InputRequired:e=>({_tag:`InputRequired`,...e})};var Ave=class extends (/*#__PURE__*/ Bo(`ResourceNotFound`)){},jve=class extends (/*#__PURE__*/ Bo(`ToolNotFound`)){},Mve=class extends (/*#__PURE__*/ Bo(`InvalidToolInput`)){},Nve=class extends (/*#__PURE__*/ Bo(`InvalidToolContinuation`)){},Pve=class extends (/*#__PURE__*/ Bo(`ToolExecutionError`)){},Fve=class extends (/*#__PURE__*/ Bo(`PromptNotFound`)){};const I8=/*#__PURE__*/ Lo(),Ive=/*#__PURE__*/ P(()=>{let e=/* @__PURE__ */ new Map,t=[],n=[],r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;return{tools:{register:t=>P(()=>{e.set(t.descriptor.name,t)}),list:t=>P(()=>{let n=[];for(let r of e.values())r.isVisible(t)&&n.push(r.descriptor);return n}),call:(t,n)=>wp(()=>{let r=e.get(t.name);return r===void 0||!r.isVisible(n.protocol)?new jve({name:t.name}):r.handle(t,n)})},resources:{register:e=>P(()=>{let n=t.findIndex(t=>t.descriptor.uri===e.descriptor.uri);n===-1?t.push(e):t[n]=e}),registerTemplate:e=>P(()=>{let t=n.findIndex(t=>t.descriptor.uriTemplate===e.descriptor.uriTemplate);t===-1?n.push(e):n[t]=e}),list:e=>P(()=>t.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),listTemplates:e=>P(()=>n.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),read:B(function*(e,r){let i=t.find(t=>t.descriptor.uri===e);if(i!==void 0&&i.isVisible(r.protocol))return yield*i.read(r);for(let t of n){let n=t.match(e);if(n!==void 0&&t.isVisible(r.protocol))return yield*t.read(e,n,r)}return yield*new Ave({uri:e})})},prompts:{register:e=>P(()=>{r.set(e.descriptor.name,e)}),list:e=>P(()=>Array.from(r.values()).filter(t=>t.isVisible(e)).map(e=>e.descriptor)),get:B(function*(e,t,n){let i=r.get(e);return i===void 0||!i.isVisible(n.protocol)?yield*new Fve({name:e}):yield*i.get(t,n)})},completions:{register:(e,t)=>P(()=>{i.set(e,t)}),complete:B(function*(e,t){let n=e.reference.type===`prompt`?`prompt/${e.reference.name}/${e.argument.name}`:`resource/${e.reference.uriTemplate}/${e.argument.name}`,r=i.get(n);if(r===void 0)return yield*new m8({message:`Unknown completion reference or argument`});let a=yield*r(e,t),o=Jee(a.values,100);return{...a,values:o,hasMore:a.hasMore===!0||o.length<a.values.length}})},registrationPresence:P(()=>({tools:e.size>0,resources:t.length>0||n.length>0,prompts:r.size>0}))}}),Lve=/*#__PURE__*/ new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0}),L8={debug:{effect:`Debug`,order:0},info:{effect:`Info`,order:1},notice:{effect:`Info`,order:2},warning:{effect:`Warn`,order:3},error:{effect:`Error`,order:4},critical:{effect:`Fatal`,order:5},alert:{effect:`Fatal`,order:6},emergency:{effect:`Fatal`,order:7}},R8=e=>{let t=e.startsWith(`=?base64?`),n=e.endsWith(`?=`);if(!t||!n)return/^[\t\x20-\x7e]*$/.test(e)?e:void 0;let r=Zh(e.slice(9,-2));if(!Ea(r))try{return Lve.decode(r.success)}catch{return}},Rve=e=>({protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.initializePayload._meta}),z8=e=>({clientId:e.clientId,protocol:Rve(e),requestContext:j8.of({clientId:e.clientId,protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata}),serverClient:e}),B8=e=>({clientId:e.clientId,protocol:{protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata},requestContext:e}),V8=e=>Yt(e)&&(e.type===`tool_use`||e.type===`tool_result`),zve=e=>Yt(e)?e.tools!==void 0||e.toolChoice!==void 0?!0:Array.isArray(e.messages)?e.messages.some(e=>{if(!Yt(e))return!1;let t=e.content;return Array.isArray(t)?t.some(V8):V8(t)}):!1:!1;var H8=class e extends (/*#__PURE__*/ Bo(`ProtocolError`)){static fromTool(t){let n=wO(t).pipe(EO(`ToolNotFound`,e=>`Tool '${e.name}' not found`),EO(`UnsupportedByProtocol`,e=>`${e.feature} is not supported by MCP ${e.protocolVersion}`),DO({InvalidToolInput:e=>e.message,InvalidToolContinuation:e=>e.message,ToolExecutionError:e=>e.message}),NO);return new e({code:t._tag===`ToolExecutionError`?l8:c8,message:n})}static fromFeature(t){if(A(t,`_tag`)){if(t._tag===`PromptNotFound`&&A(t,`name`)&&It(t.name))return new e({code:c8,message:`Prompt '${t.name}' not found`});if(t._tag===`ResourceNotFound`&&A(t,`uri`)&&It(t.uri))return new e({code:-32002,message:`Resource '${t.uri}' not found`})}let n=Bve(t);return Da(n)?new e(n.success):new e({code:l8,message:`MCP feature handler failed`})}};const Bve=/*#__PURE__*/ sae(/* @__PURE__ */ U({code:rC,message:H,data:/*#__PURE__*/ yS(DS)})),U8=(e,t,n)=>mS(e)(n).pipe(R(uS(t))),Vve=/*#__PURE__*/ V(function*(e,t){return I8.$match(t,{Cancelled:e=>({tag:_8._tag,payload:_8.payloadSchema.make({_meta:e.metadata,requestId:e.requestId,reason:e.reason})}),Progress:t=>({tag:v8._tag,payload:v8.payloadSchema.make({_meta:t.metadata,progressToken:t.progressToken,progress:t.progress,total:t.total,message:e.supportsProgressMessage?t.message:void 0})}),LoggingMessage:e=>({tag:A8._tag,payload:A8.payloadSchema.make({_meta:e.metadata,level:e.level,logger:e.logger,data:e.data})}),ResourceUpdated:e=>({tag:x8._tag,payload:x8.payloadSchema.make({_meta:e.metadata,uri:e.uri})}),ResourcesChanged:e=>({tag:b8._tag,payload:b8.payloadSchema.make({_meta:e.metadata})}),ToolsChanged:e=>({tag:O8._tag,payload:O8.payloadSchema.make({_meta:e.metadata})}),PromptsChanged:e=>({tag:C8._tag,payload:C8.payloadSchema.make({_meta:e.metadata})}),ElicitationComplete:()=>void 0})}),W8=e=>{switch(e._tag){case`ToolsChanged`:case`PromptsChanged`:case`ResourcesChanged`:case`ResourceUpdated`:return!0;default:return!1}},Hve=e=>{let t=/* @__PURE__ */ new WeakMap,n=e=>{let n=t.get(e);if(n===void 0){let r=KC(e.payloadSchema);n={decode:uS(r),encode:pS(r)},t.set(e,n)}return n},r=(t,n,r)=>e.handlerRpcs===void 0||e.makeHandlers===void 0?F:n===void 0&&e.runtime._tag===`Stateful`?kp(`MCP sessionful handler installation requires a lifecycle runtime`):r.install(e,e.handlerRpcs,e.makeHandlers(t,e.runtime._tag===`Stateful`?n:void 0,r.context)),i=t=>rce(e.serverRequestRpcs,{spanPrefix:`McpServer/Client`}).pipe(z(n=>e.toReverseClient(t,n)));return{...e,payloadCodecs:n,installHandlers:r,makeReverseClient:i}},G8=e=>`@effect/mcp/${encodeURIComponent(e.protocolVersion)}/`,Uve=/*#__PURE__*/ B(function*(e){if(e.length===0)return yield*new Fd(`MCP protocol declaration must contain at least one MCP protocol`);let t=Object.freeze(Array.from(e)),n=/* @__PURE__ */ new Map;for(let e of t){if(n.has(e.protocolVersion))return yield*new Fd(`Duplicate MCP protocol version: ${e.protocolVersion}`);n.set(e.protocolVersion,e)}let r=t[0].clientRpcs.prefix(G8(t[0]));for(let e=1;e<t.length;e++)r=r.merge(t[e].clientRpcs.prefix(G8(t[e])));return{protocols:t,clientRpcs:r,select:e=>n.get(e)??t[0],protocolForInternalTag:e=>t.find(t=>e.startsWith(G8(t)))??t[0],routeClientRequest:(e,t)=>({...t,tag:`${G8(e)}${t.tag}`}),handlerTarget:(e,t)=>({context:t,install:B(function*(t,n,i){let a=yield*n.toHandlers(i);for(let i of n.requests.values()){let n=r.requests.get(`${G8(t)}${i._tag}`),o=a.mapUnsafe.get(i.key);if(n===void 0||o===void 0)return yield*kp(`MCP handler registration invariant failed for ${t.protocolVersion}/${i._tag}`);e.set(n.key,o)}})})}}),K8=e=>({initializePayload:e.initializePayload,negotiatedProfile:e.negotiatedProfile,protocol:e.protocol,resourceSubscriptions:e.supportsResourceSubscriptions?/* @__PURE__ */ new Set:void 0,logLevel:{_tag:`Effect`,level:e.logLevel}}),Wve=()=>{let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Set,r=(n,r)=>{let i=r[`mcp-session-id`];return i===void 0?t.get(n):e.get(i)};return{registerHttp:(t,n)=>{let r=K8(n);return e.set(t,r),r},registerConnection:(e,n)=>{let r=K8(n);return t.set(e,r),r},resolve:r,resolveSessionId:t=>e.get(t),terminateSession:t=>e.delete(t),setLogLevel:(e,t,n)=>P(()=>{let i=r(t,n);i!==void 0&&(i.logLevel={_tag:`Mcp`,level:e})}),subscribe:(e,t,n)=>{let i=r(t,n)?.resourceSubscriptions;return i===void 0?L(new H8({code:s8,message:`Resource subscriptions are not supported`})):P(()=>i.add(e)).pipe(Rp)},unsubscribe:(e,t,n)=>{let i=r(t,n)?.resourceSubscriptions;return i===void 0?L(new H8({code:s8,message:`Resource subscriptions are not supported`})):P(()=>i.delete(e)).pipe(Rp)},effectLogLevel:(e,t,n)=>{let i=r(e,t);return i?.logLevel._tag===`Mcp`?L8[i.logLevel.level].effect:i?.logLevel.level??n},canDeliver:(e,t,n,i)=>{let a=r(e,t);if(n._tag===`LoggingMessage`){let e=a?.logLevel;return e?._tag===`Mcp`?L8[n.level].order>=L8[e.level].order:_D(L8[n.level].effect,e?.level??i)}return n._tag!==`ResourceUpdated`||a?.resourceSubscriptions?.has(n.uri)===!0},markInitialized:e=>{n.add(e)},initializedClientIds:()=>n.values(),disconnect:e=>{t.delete(e),n.delete(e)}}},q8=`mcp-session-id`,J8=`mcp-protocol-version`,Y8=`io.modelcontextprotocol/protocolVersion`,X8=`io.modelcontextprotocol/clientCapabilities`,Z8=-32022,Q8=e=>typeof e==`object`&&e?e:void 0,$8=e=>{let t=Q8(e);return t!==void 0&&Y8 in t?{present:!0,value:t[Y8]}:{present:!1,value:void 0}},Gve=e=>$8(Q8(Q8(e)?.params)?._meta).present,Kve=e=>{switch(e){case`tools/call`:case`prompts/get`:return`name`;case`resources/read`:return`uri`;default:return}},e5=e=>({_tag:`Rejected`,status:400,error:{code:u8,message:e}}),t5=/*#__PURE__*/ CP(dve);var n5=class extends (/*#__PURE__*/ j()(`effect/ai/McpRuntime/ServerRuntime`)){};const r5=(e,t)=>e.find(e=>e.runtime._tag===`Stateful`&&e.protocolVersion===t)??e.find(e=>e.runtime._tag===`Stateful`),qve=/*#__PURE__*/ B(function*(e){let t=e.find(e=>e.runtime._tag===`Stateful`)===void 0?void 0:Wve(),n=e.map(e=>e.protocolVersion),r,i;for(let t of e)if(t.runtime._tag===`Stateless`){if(r!==void 0)return yield*new Fd(`MCP runtime supports at most one stateless protocol`);r=t.runtime,i=t}let a=yield*Uve(e),o=/* @__PURE__ */ new Set,s=e=>({code:Z8,message:`Unsupported protocol version '${e}'`,data:{supported:n,requested:e}}),c=(e,r)=>{let i=e[J8],a=e[q8],o=a===void 0?void 0:t?.resolveSessionId(a);if(a!==void 0&&o===void 0)return{_tag:`Rejected`,status:404};if(!r&&i!==void 0){if(!n.includes(i))return{_tag:`Rejected`,status:400,error:s(i)};if(o?.protocol.runtime.transport.http.requiresVersionHeader===!0&&i!==o.protocol.protocolVersion)return e5(`MCP-Protocol-Version header '${i}' does not match negotiated protocol version '${o.protocol.protocolVersion}'`)}return{_tag:`Accepted`,binding:o,protocol:o?.protocol}},l=(e,n)=>{let r=e[J8],a=Q8(n),o=Q8(Q8(a?.params)?._meta),l=$8(o),u=a?.id,d=a?.jsonrpc===`2.0`&&a.method===`initialize`&&(typeof u==`string`||typeof u==`number`),f=a?.jsonrpc===`2.0`&&a.method===`notifications/cancelled`&&u===void 0;if(l.present||(!d||t===void 0)&&i!==void 0&&(r===i.protocolVersion||t===void 0&&a?.jsonrpc===`2.0`&&typeof a.method==`string`&&(typeof u==`string`||typeof u==`number`))){if(r===void 0)return e5(`MCP-Protocol-Version header is required`);if(!f&&(o===void 0||typeof l.value!=`string`))return{_tag:`Rejected`,status:400,error:{code:c8,message:`Required request metadata is missing`}};if((!f||l.present)&&l.value!==r)return e5(`MCP-Protocol-Version header does not match request metadata`);if(!f&&Q8(o?.[X8])===void 0)return{_tag:`Rejected`,status:400,error:{code:c8,message:`${X8} request metadata is required`}};if(i===void 0||r!==i.protocolVersion)return{_tag:`Rejected`,status:400,error:s(r)};let t=a?.method;if(typeof t!=`string`||e[`mcp-method`]!==t)return e5(`Mcp-Method header does not match request method`);let n=Kve(t);if(n!==void 0){let t=Q8(a?.params)?.[n],r=e[`mcp-name`];if(typeof t!=`string`||r===void 0||R8(r)!==t)return e5(`Mcp-Name header does not match request parameters`)}return{_tag:`Accepted`,binding:void 0,protocol:i}}return c(e,d)};return n5.of({protocols:a.protocols,clientRpcs:a.clientRpcs,selectProtocol:a.select,protocolForInternalTag:a.protocolForInternalTag,routeClientRequest:a.routeClientRequest,prepareRequest:B(function*(e,n,o){let c=Q8(o.payload)?._meta,l=$8(c),u=typeof l.value==`string`?l.value:void 0,d=l.present?void 0:t?.resolve(e,n),f;if(l.present)f=a.protocols.find(e=>e.protocolVersion===u)??i??a.protocols[0];else if(d!==void 0)f=d.protocol;else if(o.tag===`initialize`){let e=o.payload?.protocolVersion,t=r5(a.protocols,e);if(t===void 0)return yield*new H8({code:Z8,message:`initialize is not supported by the configured MCP protocols (requested '${e}')`});f=t}else f=o.tag===`ping`?r5(a.protocols,void 0)??a.protocols[0]:a.protocols[0];if(f.runtime._tag===`Stateful`)return{protocol:f,binding:d};if(o.isNotification&&o.tag===`notifications/cancelled`)return{protocol:f};if(r===void 0)return yield*kp(`MCP stateless runtime invariant failed`);if(u!==void 0&&u!==f.protocolVersion)return yield*new H8(s(u));let p=yield*r.profileFromRequestMetadata(c),m={protocolVersion:p.protocolVersion,clientCapabilities:p.clientCapabilities,clientInfo:p.clientInfo,requestMetadata:p.requestMetadata},h=j8.of({clientId:e,protocolVersion:m.protocolVersion,clientCapabilities:m.clientCapabilities,clientInfo:m.clientInfo,requestMetadata:m.requestMetadata});return{protocol:f,profile:m,requestContext:h}}),resolveRequest:(e,n)=>t?.resolve(e,n),admitHttp:(e,r)=>{let i=(e,t,n=null)=>({_tag:`Rejected`,response:t===void 0?eM({status:e}):oM({jsonrpc:`2.0`,id:n,error:t},{status:e})});if(Ea(r)){let t=e[J8];if(t!==void 0&&!n.includes(t))return i(400,s(t));let r=l(e,void 0);return r._tag===`Rejected`&&(r.error===void 0||r.error.code===-32020)?i(r.status,r.error):i(200,new d8({message:`Parse error`}))}let a=r.success;if(Array.isArray(a)){if(a.length===0)return i(400,new f8({message:`Invalid Request`}));let t=l(e,a);return t._tag===`Rejected`||a.some(Gve)||a.some(e=>A(e,`method`)&&e.method===`initialize`)||t.binding?.protocol.runtime.transport.jsonRpc.acceptsBatches!==!0?i(400):{_tag:`Accepted`,acknowledge:!a.some(e=>A(e,`method`)&&A(e,`id`)),isSubscription:!1}}let o=A(a,`id`),c=o&&(typeof a.id==`string`||typeof a.id==`number`)?a.id:null,u=A(a,`jsonrpc`)&&a.jsonrpc===`2.0`,d=!o||typeof a.id==`string`||typeof a.id==`number`,f=u&&d&&A(a,`method`)&&typeof a.method==`string`,p=o&&(typeof a.id==`string`||typeof a.id==`number`||a.id===null),m=A(a,`result`),h=A(a,`error`),g=u&&p&&m!==h,_=l(e,a);if(_._tag===`Rejected`)return i(_.status,_.error,c);if(!f&&!g)return i(200,new f8({message:`Invalid Request`}),c);let v=A(a,`method`)&&a.method===`initialize`,y=e[q8]!==void 0;return v&&y?i(400,new f8({message:`initialize must not include an MCP-Session-Id header`}),c):!v&&!y&&_.protocol?.runtime._tag!==`Stateless`?i(400,t===void 0?void 0:new f8({message:`MCP-Session-Id header is required; send initialize to start a session`}),c):f&&_.protocol?.runtime._tag===`Stateless`&&!(_.protocol.handlerRpcs?.requests.has(a.method)??_.protocol.clientRpcs.requests.has(a.method))?i(404,new p8({message:`Method not found: ${a.method}`}),c):{_tag:`Accepted`,acknowledge:!f||!o,isSubscription:A(a,`method`)&&a.method===`subscriptions/listen`}},effectLogLevel:(e,n,r)=>t?.effectLogLevel(e,n,r)??r,disconnect:e=>t?.disconnect(e),terminateHttpSession:e=>wp(()=>{let n=e[q8];if(n===void 0)return N(eM({status:400}));let r=c(e,!1);if(r._tag===`Rejected`)return N(eM({status:r.status}));let i=r.binding;return t.terminateSession(n),Lp(yp(o,e=>e(i),{discard:!0}),eM({status:204}))}),onSessionTerminated:e=>hm(P(()=>{o.add(e)}),()=>P(()=>{o.delete(e)})),deliveryClientIds:()=>t?.initializedClientIds()??[],canDeliver:(e,n,r,i)=>t?.canDeliver(e,n,r,i)??!0,installHandlers:B(function*(e){let r=/* @__PURE__ */ new Map,i={subscribeServerNotifications:e.subscribeServerNotifications,...e.sendNotification===void 0?{}:{sendNotification:e.sendNotification},...e.markSubscriptionCancelled===void 0?{}:{markSubscriptionCancelled:e.markSubscriptionCancelled},...e.terminateSubscription===void 0?{}:{terminateSubscription:e.terminateSubscription},supportedVersions:n,serverInfo:e.serverInfo,registrationPresence:e.core.registrationPresence},o=a.handlerTarget(r,i);for(let n of a.protocols){if(n.runtime._tag===`Stateless`){yield*n.installHandlers(e.core,void 0,o);continue}if(t===void 0)return yield*kp(`MCP sessionful runtime invariant failed`);yield*o.install(n,t5,t5.of({ping:()=>N({})}));let r={initialize:B(function*(r,i,a){let o=yield*e.core.registrationPresence;return yield*jp(s=>{let c=ca(s.context,EN),l={completions:!0,logging:!0,...o.tools?{tools:{listChanged:!0}}:{},...o.resources?{resources:{listChanged:!0,subscribe:c===void 0}}:{},...o.prompts?{prompts:{listChanged:!0}}:{},...e.serverInfo.extensions?{extensions:e.serverInfo.extensions}:{}},u={initializePayload:pve.payloadSchema.make({protocolVersion:r,capabilities:i.clientCapabilities,clientInfo:i.clientInfo,_meta:i.requestMetadata}),negotiatedProfile:i,protocol:n,supportsResourceSubscriptions:c===void 0&&l.resources?.subscribe===!0,logLevel:e.defaultLogLevel};if(c!==void 0){let e=crypto.randomUUID();t.registerHttp(e,u),PN(c,(t,r)=>N(fM(r,{[q8]:e,[J8]:n.protocolVersion})))}else t.registerConnection(a,u);return N({capabilities:l,instructions:e.serverInfo.instructions,serverInfo:a8.make({name:e.serverInfo.name,version:e.serverInfo.version,description:e.serverInfo.description,websiteUrl:e.serverInfo.websiteUrl,icons:e.serverInfo.icons})})})}),setLogLevel:t.setLogLevel,subscribe:t.subscribe,unsubscribe:t.unsubscribe,clientNotification:B(function*(e,n){e._tag===`Initialized`&&t.markInitialized(n)})};yield*n.installHandlers(e.core,r,o)}return Qi(r)})})}),Jve=e=>Wf(n5)(qve(e)),i5=e=>yS(e).pipe(GS(xS(bS(e)),{decode:bv(),encode:Cv(Bi(Ii))})),a5=K,Yve=/*#__PURE__*/ G([H,rC]),o5=/*#__PURE__*/ HS([`user`,`assistant`]),Xve=/*#__PURE__*/ HS([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),s5=/*#__PURE__*/ U({_meta:/*#__PURE__*/ i5(/*#__PURE__*/ LS(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ i5(Yve)}),[K]))}),c5=/*#__PURE__*/ U({_meta:/*#__PURE__*/ i5(a5)}),l5=/*#__PURE__*/ U({_meta:/*#__PURE__*/ i5(a5)});({...s5.fields});const u5=/*#__PURE__*/ U({...l5.fields,nextCursor:/*#__PURE__*/ i5(H)}),Zve=/*#__PURE__*/ U({extensions:/*#__PURE__*/ i5(/*#__PURE__*/ IS(/*#__PURE__*/ wS([H,`/`,H]),YC)),experimental:/*#__PURE__*/ i5(/*#__PURE__*/ IS(H,a5)),roots:/*#__PURE__*/ i5(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ i5(jS)})),sampling:/*#__PURE__*/ i5(a5)}),Qve=/*#__PURE__*/ U({extensions:/*#__PURE__*/ i5(/*#__PURE__*/ IS(/*#__PURE__*/ wS([H,`/`,H]),YC)),experimental:/*#__PURE__*/ i5(/*#__PURE__*/ IS(H,a5)),logging:/*#__PURE__*/ i5(a5),prompts:/*#__PURE__*/ i5(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ i5(jS)})),resources:/*#__PURE__*/ i5(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ i5(jS),listChanged:/*#__PURE__*/ i5(jS)})),tools:/*#__PURE__*/ i5(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ i5(jS)}))}),d5=/*#__PURE__*/ U({code:uC,message:H,data:/*#__PURE__*/ i5(ES)}),f5=/*#__PURE__*/ U({audience:/*#__PURE__*/ i5(/*#__PURE__*/ W(o5)),priority:/*#__PURE__*/ i5(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1})))}),$ve=/*#__PURE__*/ U({uri:H,mimeType:/*#__PURE__*/ i5(H),text:H}),eye=/*#__PURE__*/ U({uri:H,mimeType:/*#__PURE__*/ i5(H),blob:H}),tye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`text`),text:H,annotations:/*#__PURE__*/ i5(f5)}),nye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`image`),data:H,mimeType:H,annotations:/*#__PURE__*/ i5(f5)}),rye=/*#__PURE__*/ U({uri:H,name:H,description:/*#__PURE__*/ i5(H),mimeType:/*#__PURE__*/ i5(H),size:/*#__PURE__*/ i5(rC),annotations:/*#__PURE__*/ i5(f5)}),iye=/*#__PURE__*/ U({uriTemplate:H,name:H,description:/*#__PURE__*/ i5(H),mimeType:/*#__PURE__*/ i5(H),annotations:/*#__PURE__*/ i5(f5)}),p5=/*#__PURE__*/ U({name:H,description:/*#__PURE__*/ i5(H),required:/*#__PURE__*/ i5(jS)}),aye=/*#__PURE__*/ U({name:H,description:/*#__PURE__*/ i5(H),arguments:/*#__PURE__*/ i5(/*#__PURE__*/ W(p5))}),oye=/*#__PURE__*/ U({name:H,description:/*#__PURE__*/ i5(H),inputSchema:/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`object`),properties:/*#__PURE__*/ i5(/*#__PURE__*/ IS(H,a5)),required:/*#__PURE__*/ i5(/*#__PURE__*/ W(H))})}),m5=/*#__PURE__*/ U({hints:/*#__PURE__*/ i5(/*#__PURE__*/ W(/* @__PURE__ */ U({name:/*#__PURE__*/ i5(H)}))),costPriority:/*#__PURE__*/ i5(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ i5(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ i5(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1})))}),sye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`ref/prompt`),name:H}),cye=/*#__PURE__*/ U({uri:H,name:/*#__PURE__*/ i5(H)});({...l5.fields}),{...u5.fields},{...u5.fields},{...l5.fields},{...u5.fields},{...l5.fields},{...u5.fields},{...l5.fields},{...l5.fields},{...l5.fields},{...l5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...c5.fields},{...c5.fields},{...c5.fields},{...c5.fields};const h5=i5,lye=/*#__PURE__*/ U({...Qve.fields,completions:/*#__PURE__*/ h5(/*#__PURE__*/ U({}))}),uye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`audio`),data:H,mimeType:H,annotations:/*#__PURE__*/ h5(f5)}),g5=/*#__PURE__*/ U({title:/*#__PURE__*/ h5(H),readOnlyHint:/*#__PURE__*/ h5(jS),destructiveHint:/*#__PURE__*/ h5(jS),idempotentHint:/*#__PURE__*/ h5(jS),openWorldHint:/*#__PURE__*/ h5(jS)});({...oye.fields}),{...l5.fields},{...l5.fields},{...u5.fields},{...l5.fields},{...l5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...s5.fields},{...c5.fields};const _5=i5,v5=K,y5=/*#__PURE__*/ _5(v5),b5=/*#__PURE__*/ U({name:H,title:/*#__PURE__*/ _5(H),version:H}),x5=/*#__PURE__*/ U({...Zve.fields,elicitation:/*#__PURE__*/ _5(/*#__PURE__*/ U({}))}),S5=/*#__PURE__*/ U({audience:/*#__PURE__*/ _5(/*#__PURE__*/ W(o5)),priority:/*#__PURE__*/ _5(/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1})))}),C5=/*#__PURE__*/ U({...rye.fields,title:/*#__PURE__*/ _5(H),annotations:/*#__PURE__*/ _5(S5),_meta:y5}),dye=/*#__PURE__*/ U({...iye.fields,title:/*#__PURE__*/ _5(H),annotations:/*#__PURE__*/ _5(S5),_meta:y5}),w5=/*#__PURE__*/ G([/* @__PURE__ */ U({...$ve.fields,_meta:y5}),/* @__PURE__ */ U({...eye.fields,_meta:y5})]),fye=/*#__PURE__*/ U({...p5.fields,title:/*#__PURE__*/ _5(H)}),pye=/*#__PURE__*/ U({...aye.fields,title:/*#__PURE__*/ _5(H),arguments:/*#__PURE__*/ _5(/*#__PURE__*/ W(fye)),_meta:y5}),T5=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`resource`),resource:w5,annotations:/*#__PURE__*/ _5(S5),_meta:y5}),mye=/*#__PURE__*/ U({...C5.fields,type:/*#__PURE__*/ CS(`resource_link`)}),E5=/*#__PURE__*/ U({...tye.fields,annotations:/*#__PURE__*/ _5(S5),_meta:y5}),D5=/*#__PURE__*/ U({...nye.fields,annotations:/*#__PURE__*/ _5(S5),_meta:y5}),O5=/*#__PURE__*/ U({...uye.fields,annotations:/*#__PURE__*/ _5(S5),_meta:y5}),k5=/*#__PURE__*/ G([E5,D5,O5,T5,mye]),A5=/*#__PURE__*/ G([E5,D5,O5]),hye=/*#__PURE__*/ U({role:o5,content:k5}),gye=/*#__PURE__*/ U({role:o5,content:A5}),_ye=/*#__PURE__*/ U({...lye.fields}),j5=/*#__PURE__*/ U({...l5.fields,protocolVersion:H,capabilities:_ye,serverInfo:b5,instructions:/*#__PURE__*/ _5(H)});var vye=class extends (/*#__PURE__*/ oP(`initialize`,{success:j5,error:d5,payload:{...s5.fields,protocolVersion:H,capabilities:x5,clientInfo:b5}})){};const M5=/*#__PURE__*/ LS(/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`object`),properties:/*#__PURE__*/ _5(/*#__PURE__*/ IS(H,v5)),required:/*#__PURE__*/ _5(/*#__PURE__*/ W(H))}),[K]),yye=/*#__PURE__*/ U({name:H,title:/*#__PURE__*/ _5(H),description:/*#__PURE__*/ _5(H),inputSchema:M5,outputSchema:/*#__PURE__*/ _5(M5),annotations:/*#__PURE__*/ _5(g5),_meta:y5}),N5=/*#__PURE__*/ U({...l5.fields,content:/*#__PURE__*/ W(k5),structuredContent:/*#__PURE__*/ _5(v5),isError:/*#__PURE__*/ _5(jS)}),bye=/*#__PURE__*/ U({...l5.fields,role:o5,content:A5,model:H,stopReason:/*#__PURE__*/ _5(H)});var xye=class extends (/*#__PURE__*/ oP(`sampling/createMessage`,{success:bye,error:d5,payload:{...s5.fields,messages:/*#__PURE__*/ W(gye),modelPreferences:/*#__PURE__*/ _5(m5),systemPrompt:/*#__PURE__*/ _5(H),includeContext:/*#__PURE__*/ _5(/*#__PURE__*/ HS([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ _5(rC),maxTokens:rC,stopSequences:/*#__PURE__*/ _5(/*#__PURE__*/ W(H)),metadata:/*#__PURE__*/ _5(v5)}})){};const Sye=/*#__PURE__*/ U({...sye.fields,title:/*#__PURE__*/ _5(H)}),Cye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`ref/resource`),uri:H});({...s5.fields}),{...u5.fields},{...u5.fields},{...l5.fields},{...u5.fields};const wye=/*#__PURE__*/ U({...l5.fields,description:/*#__PURE__*/ _5(H),messages:/*#__PURE__*/ W(hye)});({...u5.fields}),{...s5.fields},{...s5.fields};var Tye=class extends (/*#__PURE__*/ oP(`tools/call`,{success:N5,error:d5,payload:{...s5.fields,name:H,arguments:/*#__PURE__*/ _5(v5)}})){};({...l5.fields}),{...s5.fields};const Q=i5,P5=K,F5=/*#__PURE__*/ Q(P5),I5=/*#__PURE__*/ U({src:H,mimeType:/*#__PURE__*/ Q(H),sizes:/*#__PURE__*/ Q(/*#__PURE__*/ W(H)),theme:/*#__PURE__*/ Q(/*#__PURE__*/ HS([`light`,`dark`]))}),Eye=/*#__PURE__*/ U({...b5.fields,description:/*#__PURE__*/ Q(H),websiteUrl:/*#__PURE__*/ Q(H),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(I5))});({...x5.fields});const L5=/*#__PURE__*/ U({...S5.fields,lastModified:/*#__PURE__*/ Q(H)}),R5=/*#__PURE__*/ U({...C5.fields,annotations:/*#__PURE__*/ Q(L5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(I5))}),Dye=/*#__PURE__*/ U({...dye.fields,annotations:/*#__PURE__*/ Q(L5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(I5))}),Oye=/*#__PURE__*/ U({...pye.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(I5))}),z5=/*#__PURE__*/ U({...E5.fields,annotations:/*#__PURE__*/ Q(L5)}),B5=/*#__PURE__*/ U({...D5.fields,annotations:/*#__PURE__*/ Q(L5)}),V5=/*#__PURE__*/ U({...O5.fields,annotations:/*#__PURE__*/ Q(L5)}),H5=/*#__PURE__*/ U({...T5.fields,annotations:/*#__PURE__*/ Q(L5)}),kye=/*#__PURE__*/ G([z5,B5,V5,/* @__PURE__ */ U({...R5.fields,type:/*#__PURE__*/ CS(`resource_link`)}),H5]),Aye=/*#__PURE__*/ U({...yye.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(I5))});({...N5.fields}),Tye.payloadSchema;const U5=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`tool_use`),id:H,name:H,input:P5,_meta:F5}),W5=/*#__PURE__*/ G([z5,B5,V5,U5,/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`tool_result`),toolUseId:H,content:/*#__PURE__*/ W(kye),structuredContent:/*#__PURE__*/ Q(P5),isError:/*#__PURE__*/ Q(jS),_meta:F5})]),jye=/*#__PURE__*/ U({role:o5,content:/*#__PURE__*/ G([W5,/*#__PURE__*/ W(W5)]),_meta:F5}),Mye=/*#__PURE__*/ U({mode:/*#__PURE__*/ Q(/*#__PURE__*/ HS([`auto`,`required`,`none`]))});({...l5.fields,...jye.fields}),{...xye.payloadSchema.fields};const Nye=/*#__PURE__*/ U({...cye.fields,_meta:F5});({...l5.fields});const Pye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`string`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),minLength:/*#__PURE__*/ Q(uC),maxLength:/*#__PURE__*/ Q(uC),format:/*#__PURE__*/ Q(/*#__PURE__*/ HS([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Q(H)}),Fye=/*#__PURE__*/ U({type:/*#__PURE__*/ HS([`number`,`integer`]),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),minimum:/*#__PURE__*/ Q(rC),maximum:/*#__PURE__*/ Q(rC),default:/*#__PURE__*/ Q(rC)}),Iye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`boolean`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),default:/*#__PURE__*/ Q(jS)}),G5=/*#__PURE__*/ U({const:H,title:H}),Lye=/*#__PURE__*/ G([/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`string`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),enum:/*#__PURE__*/ W(H),default:/*#__PURE__*/ Q(H)}),/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`string`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),oneOf:/*#__PURE__*/ W(G5),default:/*#__PURE__*/ Q(H)})]),Rye=/*#__PURE__*/ G([/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`array`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),minItems:/*#__PURE__*/ Q(uC),maxItems:/*#__PURE__*/ Q(uC),items:/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`string`),enum:/*#__PURE__*/ W(H)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ W(H))}),/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`array`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),minItems:/*#__PURE__*/ Q(uC),maxItems:/*#__PURE__*/ Q(uC),items:/*#__PURE__*/ U({anyOf:/*#__PURE__*/ W(G5)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ W(H))})]),zye=/*#__PURE__*/ U({type:/*#__PURE__*/ CS(`string`),title:/*#__PURE__*/ Q(H),description:/*#__PURE__*/ Q(H),enum:/*#__PURE__*/ W(H),enumNames:/*#__PURE__*/ Q(/*#__PURE__*/ W(H)),default:/*#__PURE__*/ Q(H)});({...s5.fields}),{...s5.fields},{...l5.fields},{...j5.fields},{...vye.payloadSchema.fields},{...u5.fields},{...u5.fields},{...u5.fields},{...wye.fields},{...u5.fields},{...s5.fields};const K5=`2026-07-28`,$=i5,q5=/*#__PURE__*/ $(K),J5=/*#__PURE__*/ G([H,uC]),Y5=J5,X5=o5,Z5=Xve,Q5=Eye,Bye=/*#__PURE__*/ LS(/*#__PURE__*/ U({experimental:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,K)),roots:/*#__PURE__*/ $(/*#__PURE__*/ U({})),sampling:/*#__PURE__*/ $(/*#__PURE__*/ U({context:/*#__PURE__*/ $(K),tools:/*#__PURE__*/ $(K)})),elicitation:/*#__PURE__*/ $(/*#__PURE__*/ U({form:/*#__PURE__*/ $(K),url:/*#__PURE__*/ $(K)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,K))}),[K]),Vye=/*#__PURE__*/ LS(/*#__PURE__*/ U({experimental:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,K)),logging:/*#__PURE__*/ $(K),completions:/*#__PURE__*/ $(K),prompts:/*#__PURE__*/ $(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ $(jS)})),resources:/*#__PURE__*/ $(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ $(jS),listChanged:/*#__PURE__*/ $(jS)})),tools:/*#__PURE__*/ $(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ $(jS)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,K))}),[K]),$5=/*#__PURE__*/ LS(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ $(Y5),"io.modelcontextprotocol/protocolVersion":H,"io.modelcontextprotocol/clientInfo":/*#__PURE__*/ $(Q5),"io.modelcontextprotocol/clientCapabilities":Bye,"io.modelcontextprotocol/logLevel":/*#__PURE__*/ $(Z5)}),[K]),e7=/*#__PURE__*/ U({_meta:$5}),t7=/*#__PURE__*/ U({_meta:/*#__PURE__*/ $(/* @__PURE__ */ LS(/*#__PURE__*/ U({"io.modelcontextprotocol/subscriptionId":/*#__PURE__*/ $(J5)}),[K]))}),n7=/*#__PURE__*/ LS(/*#__PURE__*/ U({"io.modelcontextprotocol/serverInfo":Q5}),[K]),r7={_meta:n7,resultType:/*#__PURE__*/ CS(`complete`)},i7=/*#__PURE__*/ U({code:uC,message:H,data:/*#__PURE__*/ $(YC)}),Hye=L5,a7=/*#__PURE__*/ U({...R5.fields,size:/*#__PURE__*/ $(uC),annotations:/*#__PURE__*/ $(Hye)}),o7=Dye,Uye=w5,s7=z5,c7=B5,l7=V5,u7=/*#__PURE__*/ G([s7,c7,l7,/* @__PURE__ */ U({...a7.fields,type:/*#__PURE__*/ CS(`resource_link`)}),H5]),d7=Oye,Wye=/*#__PURE__*/ U({role:X5,content:u7}),Gye=/*#__PURE__*/ LS(/*#__PURE__*/ U({$schema:/*#__PURE__*/ $(H),type:/*#__PURE__*/ CS(`object`)}),[K]),Kye=/*#__PURE__*/ LS(/*#__PURE__*/ U({$schema:/*#__PURE__*/ $(H)}),[K]),qye=g5,f7=/*#__PURE__*/ U({...Aye.fields,inputSchema:Gye,outputSchema:/*#__PURE__*/ $(Kye),annotations:/*#__PURE__*/ $(qye)}),p7=/*#__PURE__*/ G([s7,c7,l7,U5,/* @__PURE__ */ U({type:/*#__PURE__*/ CS(`tool_result`),toolUseId:H,content:/*#__PURE__*/ W(u7),structuredContent:/*#__PURE__*/ $(YC),isError:/*#__PURE__*/ $(jS),_meta:q5})]),m7=/*#__PURE__*/ U({role:X5,content:/*#__PURE__*/ G([p7,/*#__PURE__*/ W(p7)]),_meta:q5}),Jye=/*#__PURE__*/ LS(/*#__PURE__*/ U({name:/*#__PURE__*/ $(H)}),[K]),h7=/*#__PURE__*/ rC.check(/*#__PURE__*/ cC({minimum:0,maximum:1})),Yye=/*#__PURE__*/ U({...m5.fields,hints:/*#__PURE__*/ $(/*#__PURE__*/ W(Jye)),costPriority:/*#__PURE__*/ $(h7),speedPriority:/*#__PURE__*/ $(h7),intelligencePriority:/*#__PURE__*/ $(h7)}),Xye=/*#__PURE__*/ U({method:/*#__PURE__*/ CS(`sampling/createMessage`),params:/*#__PURE__*/ U({messages:/*#__PURE__*/ W(m7),modelPreferences:/*#__PURE__*/ $(Yye),systemPrompt:/*#__PURE__*/ $(H),includeContext:/*#__PURE__*/ $(/*#__PURE__*/ HS([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ $(rC),maxTokens:uC,stopSequences:/*#__PURE__*/ $(/*#__PURE__*/ W(H)),metadata:/*#__PURE__*/ $(K),tools:/*#__PURE__*/ $(/*#__PURE__*/ W(f7)),toolChoice:/*#__PURE__*/ $(Mye)})}),Zye=/*#__PURE__*/ U({...m7.fields,model:H,stopReason:/*#__PURE__*/ $(H)}),Qye=Nye,$ye=/*#__PURE__*/ U({method:/*#__PURE__*/ CS(`roots/list`),params:/*#__PURE__*/ $(/*#__PURE__*/ U({_meta:q5}))}),ebe=/*#__PURE__*/ U({roots:/*#__PURE__*/ W(Qye)}),tbe=/*#__PURE__*/ U({method:/*#__PURE__*/ CS(`elicitation/create`),params:/* @__PURE__ */ G([/* @__PURE__ */ U({mode:/*#__PURE__*/ $(/*#__PURE__*/ CS(`form`)),message:H,requestedSchema:/* @__PURE__ */ U({$schema:/*#__PURE__*/ $(H),type:/*#__PURE__*/ CS(`object`),properties:/*#__PURE__*/ IS(H,/* @__PURE__ */ G([/* @__PURE__ */ G([zye,Lye,Rye]),Pye,Fye,Iye])),required:/*#__PURE__*/ $(/*#__PURE__*/ W(H))})}),/* @__PURE__ */ U({mode:/*#__PURE__*/ CS(`url`),message:H,url:H})])}),nbe=/*#__PURE__*/ U({action:/*#__PURE__*/ HS([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,/*#__PURE__*/ G([H,rC,jS,/*#__PURE__*/ W(H)])))}),rbe=/*#__PURE__*/ G([Xye,$ye,tbe]),ibe=/*#__PURE__*/ G([Zye,ebe,nbe]),g7=/*#__PURE__*/ IS(H,rbe),abe=/*#__PURE__*/ IS(H,ibe),_7={_meta:n7,resultType:/*#__PURE__*/ CS(`input_required`)},v7=/*#__PURE__*/ G([/*#__PURE__*/ LS(/*#__PURE__*/ U({..._7,inputRequests:g7,requestState:/*#__PURE__*/ $(H)}),[K]),/*#__PURE__*/ LS(/*#__PURE__*/ U({..._7,inputRequests:/*#__PURE__*/ $(g7),requestState:H}),[K])]),y7={...e7.fields,inputResponses:/*#__PURE__*/ $(abe),requestState:/*#__PURE__*/ $(H)},b7={...r7,ttlMs:/*#__PURE__*/ uC.check(/*#__PURE__*/ sC(0)),cacheScope:/*#__PURE__*/ HS([`public`,`private`])},x7={...e7.fields,cursor:/*#__PURE__*/ $(H)},S7={...r7,nextCursor:/*#__PURE__*/ $(H)},C7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...b7,supportedVersions:/*#__PURE__*/ W(H),capabilities:Vye,instructions:/*#__PURE__*/ $(H)}),[K]);var obe=class extends (/*#__PURE__*/ oP(`server/discover`,{success:C7,error:i7,payload:e7})){};const w7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...S7,...b7,resources:/*#__PURE__*/ W(a7)}),[K]);var sbe=class extends (/*#__PURE__*/ oP(`resources/list`,{success:w7,error:i7,payload:x7})){};const T7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...S7,...b7,resourceTemplates:/*#__PURE__*/ W(o7)}),[K]);var cbe=class extends (/*#__PURE__*/ oP(`resources/templates/list`,{success:T7,error:i7,payload:x7})){};const E7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...b7,contents:/*#__PURE__*/ W(Uye)}),[K]);var lbe=class extends (/*#__PURE__*/ oP(`resources/read`,{success:/*#__PURE__*/ G([E7,v7]),error:i7,payload:{...y7,uri:H}})){};const D7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...S7,...b7,prompts:/*#__PURE__*/ W(d7)}),[K]);var O7=class extends (/*#__PURE__*/ oP(`prompts/list`,{success:D7,error:i7,payload:x7})){};const k7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...r7,description:/*#__PURE__*/ $(H),messages:/*#__PURE__*/ W(Wye)}),[K]);var ube=class extends (/*#__PURE__*/ oP(`prompts/get`,{success:/*#__PURE__*/ G([k7,v7]),error:i7,payload:{...y7,name:H,arguments:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,H))}})){};const A7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...S7,...b7,tools:/*#__PURE__*/ W(f7)}),[K]);var dbe=class extends (/*#__PURE__*/ oP(`tools/list`,{success:A7,error:i7,payload:x7})){};const j7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...r7,content:/*#__PURE__*/ W(u7),structuredContent:/*#__PURE__*/ $(YC),isError:/*#__PURE__*/ $(jS)}),[K]);var fbe=class extends (/*#__PURE__*/ oP(`tools/call`,{success:/*#__PURE__*/ G([j7,v7]),error:i7,payload:{...y7,name:H,arguments:/*#__PURE__*/ $(K)}})){};const pbe=Sye,mbe=Cye,M7=/*#__PURE__*/ LS(/*#__PURE__*/ U({...r7,completion:/*#__PURE__*/ U({values:/*#__PURE__*/ W(H).check(/*#__PURE__*/ mC(100)),total:/*#__PURE__*/ $(uC),hasMore:/*#__PURE__*/ $(jS)})}),[K]);var hbe=class extends (/*#__PURE__*/ oP(`completion/complete`,{success:M7,error:i7,payload:{...e7.fields,ref:/*#__PURE__*/ G([pbe,mbe]),argument:/*#__PURE__*/ U({name:H,value:H}),context:/*#__PURE__*/ $(/*#__PURE__*/ U({arguments:/*#__PURE__*/ $(/*#__PURE__*/ IS(H,H))}))}})){};const N7=/*#__PURE__*/ U({toolsListChanged:/*#__PURE__*/ $(jS),promptsListChanged:/*#__PURE__*/ $(jS),resourcesListChanged:/*#__PURE__*/ $(jS),resourceSubscriptions:/*#__PURE__*/ $(/*#__PURE__*/ W(H))}),P7=/*#__PURE__*/ LS(/*#__PURE__*/ U({_meta:/* @__PURE__ */ LS(/*#__PURE__*/ U({"io.modelcontextprotocol/serverInfo":Q5,"io.modelcontextprotocol/subscriptionId":J5}),[K]),resultType:/*#__PURE__*/ CS(`complete`)}),[K]);var gbe=class extends (/*#__PURE__*/ oP(`subscriptions/listen`,{success:P7,error:i7,payload:{...e7.fields,notifications:N7}})){},F7=class extends (/*#__PURE__*/ oP(`notifications/cancelled`,{payload:{...t7.fields,requestId:J5,reason:/*#__PURE__*/ $(H)}})){},_be=class extends (/*#__PURE__*/ oP(`notifications/progress`,{payload:{...t7.fields,progressToken:Y5,progress:rC,total:/*#__PURE__*/ $(rC),message:/*#__PURE__*/ $(H)}})){},vbe=class extends (/*#__PURE__*/ oP(`notifications/message`,{payload:{...t7.fields,level:Z5,logger:/*#__PURE__*/ $(H),data:YC}})){},I7=class extends (/*#__PURE__*/ oP(`notifications/resources/updated`,{payload:{...t7.fields,uri:H}})){},L7=class extends (/*#__PURE__*/ oP(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ WS(t7)})){},R7=class extends (/*#__PURE__*/ oP(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ WS(t7)})){},z7=class extends (/*#__PURE__*/ oP(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ WS(t7)})){},B7=class extends (/*#__PURE__*/ oP(`notifications/subscriptions/acknowledged`,{payload:{...t7.fields,notifications:N7}})){},V7=class extends (/*#__PURE__*/ CP(obe,hbe,ube,O7,sbe,cbe,lbe,gbe,fbe,dbe)){},H7=class extends (/*#__PURE__*/ CP(F7)){},ybe=class extends (/*#__PURE__*/ V7.merge(H7)){},bbe=class extends (/*#__PURE__*/ CP()){},xbe=class extends (/*#__PURE__*/ CP(F7,_be,vbe,I7,L7,R7,z7,B7)){};const Sbe=/*#__PURE__*/ IS(H,K),Cbe=/*#__PURE__*/ uS($5),wbe=/*#__PURE__*/ uS(F7.payloadSchema),Tbe=/*#__PURE__*/ lS(YC),U7=/*#__PURE__*/ mS(Q5),W7=e=>{let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t},Ebe=(e,t)=>{if(Gt(t))return e===void 0;if(e===void 0)return!1;let n=R8(e);return n!==void 0&&wO(t).pipe(TO(kO,e=>n===e),TO(jO,e=>n===String(e)),TO(AO,e=>Number.isSafeInteger(e)&&n.trim().length>0&&Number(n)===e),MO(()=>!1))},Dbe=/*#__PURE__*/ B(function*(e){let t=yield*Cbe(e);return{protocolVersion:K5,clientCapabilities:t[`io.modelcontextprotocol/clientCapabilities`],clientInfo:t[`io.modelcontextprotocol/clientInfo`],requestMetadata:t}}),G7=(e,t)=>{let n=e._meta;return{...Yt(n)?n:{},"io.modelcontextprotocol/serverInfo":t}},K7=(e,t)=>W7({_meta:{"io.modelcontextprotocol/serverInfo":t},resultType:`input_required`,inputRequests:e.inputRequests,requestState:e.requestState}),q7=/*#__PURE__*/ uS(/*#__PURE__*/ G([j7,v7])),J7=/*#__PURE__*/ B(function*(e,t){let n=yield*U7(t);return e._tag===`Complete`?yield*q7({...W7(e.value),_meta:G7(e.value,n),resultType:`complete`}):yield*q7(K7(e,n))}),Obe=(e,t)=>{let n={};for(let r of Object.values(e??{}))wO(r).pipe(TO({method:`roots/list`},()=>{t.roots===void 0&&(n.roots={})}),TO({method:`sampling/createMessage`},e=>{let r=n.sampling??{};zve(e.params)&&t.sampling?.tools===void 0&&(r.tools={}),(e.params.includeContext===`thisServer`||e.params.includeContext===`allServers`)&&t.sampling?.context===void 0&&(r.context={}),(t.sampling===void 0||Object.keys(r).length>0)&&(n.sampling=r)}),TO({method:`elicitation/create`},e=>{let r=e.params.mode===`url`?`url`:`form`,i=t.elicitation;i!==void 0&&(r===`url`?i.url!==void 0:i.form!==void 0||Object.keys(i).length===0)||((n.elicitation??={})[r]={})}),NO);return n},Y7=e=>W7({uri:e.uri,mimeType:e.mimeType,_meta:e._meta,...`text`in e?{text:e.text}:{blob:Xh(e.blob)}}),X7=/*#__PURE__*/ CO().pipe(/*#__PURE__*/ TO({type:/*#__PURE__*/ OO(`text`,`resource_link`)},e=>e),/*#__PURE__*/ TO({type:/*#__PURE__*/ OO(`image`,`audio`)},e=>W7({type:e.type,mimeType:e.mimeType,data:Xh(e.data),annotations:e.annotations,_meta:e._meta})),/*#__PURE__*/ TO({type:`resource`},e=>W7({type:`resource`,resource:Y7(e.resource),annotations:e.annotations,_meta:e._meta})),NO),kbe=e=>a7.make(e),Abe=e=>o7.make(e),jbe=e=>U8(vve,d7,e),Mbe=e=>U8(E8,f7,e),Z7={ttlMs:0,cacheScope:`private`},Q7=/*#__PURE__*/ B(function*(e,t){let n=yield*U7(t);return{...W7(e),_meta:G7(e,n),resultType:`complete`}}),Nbe=/*#__PURE__*/ CO().pipe(/*#__PURE__*/ EO(`ResourceNotFound`,e=>new H8({code:-32602,message:`Resource '${e.uri}' not found`,data:{uri:e.uri}})),/*#__PURE__*/ EO(`ToolNotFound`,`InvalidToolInput`,`InvalidToolContinuation`,`ToolExecutionError`,`UnsupportedByProtocol`,H8.fromTool),/*#__PURE__*/ MO(H8.fromFeature)),$7=e=>{let t=Nbe(e);return i7.make({code:t.code,message:t.message,...Tbe(t.data)?{data:t.data}:{}})},e9=/*#__PURE__*/ B(function*(e,t){let n=yield*lm(EN);return Mi(n)&&PN(n.value,(t,n)=>N(gM(n,e))),yield*t}),Pbe=e=>wbe(e).pipe(z(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta}))),t9=e=>new Ove({operation:e,protocolVersion:K5,reason:`MCP 2026-07-28 carries server input requests in multi round-trip results`}),Fbe=/* @__PURE__ */ Hve({protocolVersion:K5,runtime:{_tag:`Stateless`,transport:{jsonRpc:{acceptsBatches:!1},http:{}},profileFromRequestMetadata:Dbe},clientRpcs:ybe,clientNotificationRpcs:H7,serverRequestRpcs:bbe,serverNotificationRpcs:xbe,handlerRpcs:/* @__PURE__ */ V7.merge(H7),makeHandlers:(e,t,n)=>{let r=uS(Sbe),i=uS(C7),a=uS(w7),o=uS(T7),s=uS(E7),c=uS(D7),l=uS(k7),u=uS(G([k7,v7])),d=uS(M7),f=uS(A7),p=n.sendNotification,m=p!==void 0,h=n.serverInfo.extensions===void 0?void 0:Ra(n.serverInfo.extensions,e=>Yt(e)),g=z(n.registrationPresence,e=>{let t={completions:{},logging:{}};return h!==void 0&&(t.extensions=h),e.tools&&(t.tools={listChanged:m}),e.resources&&(t.resources={listChanged:m,subscribe:m}),e.prompts&&(t.prompts={listChanged:m}),{supportedVersions:n.supportedVersions,capabilities:t,serverInfo:n.serverInfo}}),_=j8.useSync(B8),v=B(function*(e){let t=yield*j8,n=e.inputResponses===void 0?void 0:yield*r(e.inputResponses).pipe(Gp);return B8(j8.of({...t,inputResponses:n,requestState:e.requestState}))}),y=B(function*(e,t){let n=Obe(e.inputRequests,t);if(Object.keys(n).length!==0)return yield*e9(400,new H8({code:-32021,message:`The request requires client capabilities that were not declared`,data:{requiredCapabilities:n}}))});return{"subscriptions/listen":B(function*(e,{client:t,requestId:r}){if(p===void 0)return yield*new H8({code:-32601,message:`Method not found: subscriptions/listen`});let i=yield*n.registrationPresence,a=yield*Sf(yield*fm),o=yield*yf(n.subscribeServerNotifications,a),s={...i.tools&&e.notifications.toolsListChanged===!0?{toolsListChanged:!0}:{},...i.prompts&&e.notifications.promptsListChanged===!0?{promptsListChanged:!0}:{},...i.resources&&e.notifications.resourcesListChanged===!0?{resourcesListChanged:!0}:{},...i.resources&&e.notifications.resourceSubscriptions!==void 0?{resourceSubscriptions:e.notifications.resourceSubscriptions}:{}},c={"io.modelcontextprotocol/subscriptionId":r},l=new Set(s.resourceSubscriptions),u=yield*$w(64),d=yield*rf();yield*I(function*(){for(;;){let e=yield*Mw(o);if(e.targetClientId!==void 0&&e.targetClientId!==t.id)continue;let n=e.notification,r=wO(n).pipe(DO({ToolsChanged:()=>s.toolsListChanged===!0?R7:void 0,PromptsChanged:()=>s.promptsListChanged===!0?z7:void 0,ResourcesChanged:()=>s.resourcesListChanged===!0?L7:void 0,ResourceUpdated:e=>l.has(e.uri)?I7:void 0}),NO);if(r===void 0)continue;let i={tag:r._tag,payload:r.payloadSchema.make({_meta:{...n.metadata,...c},...n._tag===`ResourceUpdated`?{uri:n.uri}:{}})};if(!(yield*eT(u,i)))break}}).pipe(Ef(a),Np(wp(()=>n.markSubscriptionCancelled?.(t.id,r)??F)),Np(df(d,void 0)),Im),yield*p(K5,t.id,{tag:B7._tag,payload:B7.payloadSchema.make({_meta:c,notifications:s})});let f=Om(pT(u).pipe(R(e=>p(K5,t.id,e))));yield*dre(f,af(d)),yield*n.terminateSubscription?.(`2026-07-28`,t.id,r,`Pending notification limit exceeded`)??F;let m=yield*U7(n.serverInfo);return P7.make({_meta:{...c,"io.modelcontextprotocol/serverInfo":m},resultType:`complete`})},Wp($7)),"server/discover":B(function*(e){let t=yield*g,r=yield*Q7({...Z7,supportedVersions:Array.from(t.supportedVersions),capabilities:t.capabilities,instructions:n.serverInfo.instructions},n.serverInfo);return yield*i(r)},Wp($7)),"resources/list":B(function*(t){let r=yield*_,i=yield*e.resources.list(r.protocol),o=yield*Q7({...Z7,resources:i.map(kbe)},n.serverInfo);return yield*a(o)},Wp($7)),"resources/templates/list":B(function*(t){let r=yield*_,i=yield*e.resources.listTemplates(r.protocol),a=yield*Q7({...Z7,resourceTemplates:i.map(Abe)},n.serverInfo);return yield*o(a)},Wp($7)),"resources/read":B(function*(t){let r=yield*v(t),i=yield*e.resources.read(t.uri,r),a=i.contents.map(Y7),o=yield*Q7({...Z7,contents:a,_meta:i._meta},n.serverInfo);return yield*s(o)},Wp($7)),"prompts/list":B(function*(t){if(!(yield*n.registrationPresence).prompts)return yield*e9(404,new H8({code:s8,message:`Method not found`}));let r=yield*_,i=yield*e.prompts.list(r.protocol),a=yield*yp(i,jbe),o=yield*Q7({...Z7,prompts:a},n.serverInfo);return yield*c(o)},Wp($7)),"prompts/get":B(function*(t){let r=yield*v(t),i=yield*e.prompts.get(t.name,t.arguments??{},r);if(i._tag===`InputRequired`){yield*y(i,r.protocol.clientCapabilities);let e=yield*U7(n.serverInfo);return yield*u(K7(i,e))}let a=i.value,o=a.messages.map(e=>({role:e.role,content:X7(e.content)})),s=yield*Q7({description:a.description,messages:o,_meta:a._meta},n.serverInfo);return yield*l(s)},Wp($7)),"completion/complete":B(function*(t){let r=yield*_,i=yield*e.completions.complete({reference:t.ref.type===`ref/prompt`?{type:`prompt`,name:t.ref.name,title:t.ref.title}:{type:`resourceTemplate`,uriTemplate:t.ref.uri},argument:t.argument,context:t.context?.arguments===void 0?void 0:{arguments:t.context.arguments},metadata:t._meta},r),a=yield*Q7({completion:W7({values:Array.from(i.values),total:i.total,hasMore:i.hasMore}),_meta:i.metadata},n.serverInfo);return yield*d(a)},Wp($7)),"tools/list":B(function*(t){let r=yield*_,i=yield*e.tools.list(r.protocol),a=yield*yp(i,Mbe),o=yield*Q7({...Z7,tools:a},n.serverInfo);return yield*f(o)},Wp($7)),"tools/call":B(function*(t){let r=yield*v(t),i=(yield*e.tools.list(r.protocol)).find(e=>e.name===t.name),a=yield*lm(EN);if(i!==void 0&&Mi(a)){let e=[{schema:i.inputSchema,argument:t.arguments,path:``}];for(;e.length>0;){let{schema:t,argument:n,path:r}=e.pop();if(!Yt(t))continue;let i=t[`x-mcp-header`];if(typeof i==`string`){let e=`mcp-param-${i.toLowerCase()}`;if(!Ebe(a.value.headers[e],n))return yield*e9(400,new H8({code:u8,message:`${e} does not match argument '${r}'`}))}if(Yt(t.properties))for(let[i,a]of Object.entries(t.properties))e.push({schema:a,argument:Yt(n)&&Object.hasOwn(n,i)?n[i]:void 0,path:r===``?i:`${r}.${i}`})}}let o=yield*e.tools.call({name:t.name,arguments:t.arguments??{}},r).pipe(Bp([`ToolExecutionError`,`InvalidToolInput`],e=>N(F8.Complete(D8.make({content:[S8.make({type:`text`,text:e.message})],isError:!0})))));if(o._tag===`InputRequired`)return yield*y(o,r.protocol.clientCapabilities),yield*J7(o,n.serverInfo);let s=o.value,c=s.content.map(X7);return yield*J7(F8.Complete({content:c,structuredContent:s.structuredContent,isError:s.isError,_meta:s._meta}),n.serverInfo)},Wp($7)),"notifications/cancelled":B(function*(e){return yield*F})}},toReverseClient:()=>({listRoots:()=>L(t9(`roots/list`)),createMessage:()=>L(t9(`sampling/createMessage`)),elicit:()=>L(t9(`elicitation/create`))}),projectNotification:e=>W8(e)?N(void 0):Vve({supportsProgressMessage:!0},e),normalizeCancellation:Pbe}),n9=/*#__PURE__*/ new WeakMap,Ibe=/*#__PURE__*/ kve.omit(`notifications/elicitation/complete`),r9=/*#__PURE__*/ lS(k8),Lbe=e=>{switch(e.tag){case`notifications/cancelled`:return I8.Cancelled({requestId:e.payload.requestId,reason:e.payload.reason,metadata:e.payload._meta});case`notifications/progress`:return I8.Progress({progressToken:e.payload.progressToken,progress:e.payload.progress,total:e.payload.total,message:e.payload.message,metadata:e.payload._meta});case`notifications/message`:return I8.LoggingMessage({level:e.payload.level,logger:e.payload.logger,data:e.payload.data,metadata:e.payload._meta});case`notifications/resources/updated`:return I8.ResourceUpdated({uri:e.payload.uri,metadata:e.payload._meta});case`notifications/resources/list_changed`:return I8.ResourcesChanged({metadata:e.payload?._meta});case`notifications/tools/list_changed`:return I8.ToolsChanged({metadata:e.payload?._meta});case`notifications/prompts/list_changed`:return I8.PromptsChanged({metadata:e.payload?._meta});default:return}},i9=(e,t)=>{let n=dm(e,j8,t.requestContext),r=t.requestContext.requestMetadata,i=A(r,`io.modelcontextprotocol/logLevel`)?r[`io.modelcontextprotocol/logLevel`]:void 0;return r9(i)&&(n=dm(n,mf,L8[i].effect)),t.serverClient===void 0?n:dm(n,M8,t.serverClient)};var a9=class e extends (/*#__PURE__*/ j()(`effect/ai/McpServer`)){static make=/*#__PURE__*/ I(function*(){let t=yield*Ive,n=Ka(),r=[],i=[],a=[],o=yield*Zw(),s={consumers:0},c=/* @__PURE__ */ new Set,l=(yield*Eo).makeDispatcher(),u=yield*_P(Ibe,{spanPrefix:`McpServer/Notifications`,onFromClient:e=>rf().pipe(R(t=>jp(n=>{let r=e.message;if(r._tag!==`Request`)return F;let i=Lbe(r);if(i===void 0)return F;let a={notification:i,delivered:t,requestContext:ca(n.context,j8),requestHeaders:ca(n.context,EN)?.headers},d=!1;if(r.tag.includes(`list_changed`)){if(!c.has(r.tag)){d=!0;let e=r.tag;l.scheduleTask(()=>{tT(o,a),c.delete(r.tag)},0),c.add(e)}}else d=!0,tT(o,a);let f=wp(()=>u.write({clientId:0,requestId:r.id,_tag:`Exit`,exit:qd}));return d&&a.requestContext!==void 0&&s.consumers>0?Np(af(t),f):f})))}),d=e.of({notifications:u.client,notifyElicitationComplete:({clientId:e,elicitationId:t})=>rf().pipe(R(n=>eT(o,{notification:I8.ElicitationComplete({elicitationId:t}),targetClientId:e,delivered:n}).pipe(Np(wp(()=>s.consumers>0?af(n):F))))),get tools(){return n},addTool:e=>I(function*(){let r=n.findIndex(({tool:t})=>t.name===e.tool.name);r===-1?n.push(e):n[r]=e;let i=ca(e.annotations,P8);yield*t.tools.register({descriptor:new E8({...e.tool,title:e.tool.title??e.tool.annotations?.title}),isVisible:e=>i===void 0||i({protocolVersion:e.protocolVersion,capabilities:e.clientCapabilities,clientInfo:e.clientInfo}),handle:(t,n)=>i9(e.handle(t.arguments),n).pipe(ore({InternalError:t=>L(new Pve({name:e.tool.name,message:t.message})),InvalidParams:t=>L(new(n.requestContext.requestState===void 0&&n.requestContext.inputResponses===void 0?Mve:Nve)({name:e.tool.name,message:t.message}))}),z(e=>Zt(e,`InputRequired`)?F8.InputRequired(e):F8.Complete(e)))}),yield*u.client[`notifications/tools/list_changed`]({})}),callTool:e=>I(function*(){let n=yield*M8,r=yield*t.tools.call(e,z8(n)).pipe(Wp(e=>new m8({message:e._tag===`ToolNotFound`?`Tool '${e.name}' not found`:e.message})));return r._tag===`InputRequired`?yield*new m8({message:`Client input is not supported by this MCP protocol`}):r.value}),get resources(){return r},get resourceTemplates(){return i},addResource:e=>I(function*(){let n=r.findIndex(({resource:t})=>t.uri===e.resource.uri);n===-1?r.push(e):r[n]=e,yield*t.resources.register({descriptor:e.resource,isVisible:t=>{let n=ca(e.annotations,P8);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},read:t=>i9(e.handle,t)}),yield*u.client[`notifications/resources/list_changed`]({})}),addResourceTemplate:({annotations:e,completions:n,handle:r,routerPath:a,template:o})=>I(function*(){let s=i.findIndex(({template:e})=>e.uriTemplate===o.uriTemplate);s===-1?i.push({template:o,annotations:e}):i[s]={template:o,annotations:e};let c=Kbe();c.add(a,!0),yield*t.resources.registerTemplate({descriptor:o,isVisible:t=>{let n=ca(e,P8);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},match:e=>{let t=c.find(e);if(t===void 0)return;let n=[];for(let e of Object.keys(t.params))n[Number(e)]=t.params[e];return n},read:(e,t,n)=>i9(r(e,Array.from(t)),n)});for(let[e,r]of Object.entries(n))yield*t.completions.register(`resource/${o.uriTemplate}/${e}`,(e,t)=>i9(r(e.argument.value,e.context),t).pipe(z(e=>({values:e.completion.values,total:e.completion.total,hasMore:e.completion.hasMore,metadata:e._meta}))));yield*u.client[`notifications/resources/list_changed`]({})}),findResource:e=>I(function*(){let n=yield*M8;return yield*t.resources.read(e,z8(n)).pipe(Bp(`ResourceNotFound`,e=>L(new m8({message:`Resource '${e.uri}' not found`}))))}),get prompts(){return a},addPrompt:e=>I(function*(){let n=a.findIndex(({prompt:t})=>t.name===e.prompt.name);n===-1?a.push(e):a[n]=e,yield*t.prompts.register({descriptor:e.prompt,isVisible:t=>{let n=ca(e.annotations,P8);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},get:(t,n)=>i9(e.handle(t),n).pipe(z(e=>Zt(e,`InputRequired`)?F8.InputRequired(e):F8.Complete(e)))});for(let[n,r]of Object.entries(e.completions))yield*t.completions.register(`prompt/${e.prompt.name}/${n}`,(e,t)=>i9(r(e.argument.value,e.context),t).pipe(z(e=>({values:e.completion.values,total:e.completion.total,hasMore:e.completion.hasMore,metadata:e._meta}))));yield*u.client[`notifications/prompts/list_changed`]({})}),getPromptResult:B(function*({arguments:e,name:n}){let r=yield*M8,i=yield*t.prompts.get(n,e??{},z8(r)).pipe(Bp(`PromptNotFound`,()=>new m8({message:`Prompt '${n}' not found`})));return i._tag===`Complete`?i.value:yield*new m8({message:`Client input is not supported by this MCP protocol`})}),completion:B(function*(e){let n=yield*M8,r=e.ref,i=yield*t.completions.complete({reference:r.type===`ref/resource`?{type:`resourceTemplate`,uriTemplate:r.uri}:{type:`prompt`,name:r.name},argument:e.argument,context:e.context},z8(n));return{_meta:i.metadata,completion:{values:i.values,total:i.total,hasMore:i.hasMore}}})});return n9.set(d,{core:t,notifications:o,notificationDelivery:s}),d});static layer=/*#__PURE__*/ Wf(e)(e.make)};const o9=`mcp-session-id`,s9=/*#__PURE__*/ new WeakMap,c9=e=>`${typeof e}:${e}`;var l9=class extends Fo{};const Rbe=/*#__PURE__*/ B(function*(e,t,n){let r=yield*xP,i=yield*a9,a=yield*mf,o=n===`http`,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=e=>{c.delete(e),s.delete(e),t.disconnect(e)},d=(e,t,n)=>r.send(e,{_tag:`Exit`,requestId:t,exit:{_tag:`Failure`,cause:[{_tag:`Fail`,error:n}]}}),f=(e,t)=>{let n=l.get(e);if(n===void 0)return;let r=n.filter(e=>e!==t);r.length===0?l.delete(e):l.set(e,r)},p=yield*Dw(),m=(e,n,i)=>wp(()=>{let a=t.selectProtocol(e),o=a.serverNotificationRpcs.requests.get(i.tag);return o===void 0?kp(`MCP protocol ${e} does not define server notification ${i.tag}`):a.payloadCodecs(o).encode(i.payload).pipe(Gp,R(e=>r.send(n,{_tag:`Request`,id:``,tag:i.tag,payload:e,headers:[],isNotification:!0})))}),h=(e,t)=>{let n=c.get(e),r=c9(t),i=n?.get(r);return i!==void 0&&(n.set(r,{...i,cancelled:!0}),!0)},g=(e,t,n,i)=>wp(()=>h(t,n)?o?r.end(t):m(e,t,{tag:`notifications/cancelled`,payload:{requestId:n,reason:i}}):F),_,v=yield*t.installHandlers({core:n9.get(i).core,subscribeServerNotifications:Aw(p),...r.supportsNotifications?{sendNotification:m,markSubscriptionCancelled:(e,t)=>P(()=>{h(e,t)}),terminateSubscription:g}:{},defaultLogLevel:a,serverInfo:e}),y=yield*aoe({lookup:B(function*(e){let n=t.selectProtocol(e.profile.protocolVersion),i,a=yield*yP.make(B(function*(t){let n=0;return i=e=>t(n,e),{send(t,i,a){if(n=t,i._tag===`Request`){let t=c9(i.id),n=l.get(t)??[];return n.push(e),l.set(t,n),r.send(e.clientId,{_tag:`Request`,id:i.id,tag:i.tag,payload:i.payload,headers:[]}).pipe(vm(()=>P(()=>f(t,e))))}return i._tag===`Interrupt`&&f(c9(i.requestId),e),r.send(e.clientId,i)},supportsAck:!0,supportsTransferables:!1,supportsStructuredClone:!1,codecFor:r.codecFor}}));return{client:yield*n.makeReverseClient(e.profile).pipe(dm(yP,a)),write:i}}),idleTimeToLive:1e4}),b=N8.of((e,{client:n,headers:r,payload:i,rpc:o})=>{let c=t.resolveRequest(n.id,r);if(!o._tag.endsWith(`/initialize`)&&!c){let e=iw(),t=ca(e.context,EN);return t&&PN(t,()=>N(eM({status:r[o9]===void 0?400:404}))),kp(/* @__PURE__ */ Error(`Mcp-Session-Id does not exist`))}let l=c?.initializePayload??i,u=s.get(n.id),d=c?.protocol??u?.protocol??t.protocolForInternalTag(o._tag);if(!qbe(d.protocolVersion)||d.protocolVersion===`2026-07-28`)return kp(`Unsupported selected MCP protocol version: ${d.protocolVersion}`);let f=c?.negotiatedProfile??{protocolVersion:d.protocolVersion,clientCapabilities:l.capabilities,clientInfo:l.clientInfo};u!==void 0&&(u.profile=f);let p=j8.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,requestMetadata:l._meta});return dm(dm(dm(e,M8,M8.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,initializePayload:l,requestMetadata:Yt(i)&&Yt(i._meta)?i._meta:void 0,getClient:AE(y,new l9({clientId:n.id,profile:f})).pipe(z(({client:e})=>e))})),j8,p),mf,t.effectLogLevel(n.id,r,a))}),x=xP.of({...r,send:(e,t)=>{if(t._tag===`Exit`){let i=c.get(e),a=c9(t.requestId),o=i?.get(a)?.cancelled;if(i!==void 0&&i.delete(a)&&i.size===0&&c.delete(e),o===!0)return n===`custom`?F:(s9.set(t,t.requestId),r.send(e,t));if(t.exit._tag===`Failure`&&!t.exit.cause.some(e=>e._tag===`Fail`))return r.send(e,{_tag:`Exit`,requestId:t.requestId,exit:{_tag:`Failure`,cause:[{_tag:`Fail`,error:new h8({message:`Internal error`})}]}})}return r.send(e,t)},run:e=>(_=e,r.run((n,r)=>{let i=iw(),a=r,p=o?ca(i.context,EN):void 0;switch(p!==void 0&&a._tag!==`Eof`&&PN(p,(e,t)=>N(t.status===200&&t.body._tag===`Uint8Array`&&t.body.contentLength===0?eM({headers:Qg(t.headers,`content-type`),status:202}):t)),a._tag){case`Request`:{let r=o?ua(iw().context,EN).headers:qg(a.headers),l=a.tag===`notifications/cancelled`&&typeof a.payload==`object`&&a.payload!==null&&`requestId`in a.payload&&(typeof a.payload.requestId==`string`||typeof a.payload.requestId==`number`)?c.get(n)?.get(c9(a.payload.requestId)):void 0,f=l===void 0?t.prepareRequest(n,r,a):N(l.prepared);return I(function*(){let l=yield*f,m=s.get(n);o&&m===void 0&&(yield*xf(ua(i.context,gf),P(()=>u(n))));let g=l.binding,_=l.protocol;if(s.set(n,{protocol:_,profile:l.profile??m?.profile,sessionHeaders:o&&r[o9]!==void 0?qg({[o9]:r[o9]}):m?.sessionHeaders}),a.tag===`invalid/json-rpc-batch`)return yield*d(n,a.id,new f8({message:`JSON-RPC batches are not supported`}));p!==void 0&&g!==void 0&&PN(p,(e,i)=>N(t.resolveRequest(n,r)===void 0?eM({status:404}):uM(i,`mcp-protocol-version`,g.protocol.protocolVersion)));let y=t.routeClientRequest(_,a),b=t.clientRpcs.requests.get(y.tag),x=_.clientNotificationRpcs.requests.has(a.tag);if(b&&x&&a.isNotification){if(!g&&_.runtime._tag===`Stateful`){p&&PN(p,()=>N(eM({status:r[o9]===void 0?400:404})));return}let t=_.payloadCodecs(b).decode(a.payload);return yield*I(function*(){let i=yield*t;if(a.tag===`notifications/cancelled`){let t=yield*_.normalizeCancellation(i),r=c9(t.requestId),a=n;if(o){if(g===void 0)return;let e=Array.from(c).find(([,e])=>e.get(r)?.prepared.binding===g);if(e===void 0)return;a=e[0]}return h(a,t.requestId)?yield*e(a,{_tag:`Interrupt`,requestId:t.requestId}):void 0}let s=v.mapUnsafe.get(b.key),u=s?s.handler(i,{rpc:b,requestId:uP(a.id),client:new iP(n),headers:r}):F;return yield*l.requestContext===void 0?u:dm(u,j8,l.requestContext)}).pipe(Yp)}if(!b||x)return a.isNotification?void 0:yield*d(n,a.id,new p8({message:`Method not found: ${a.tag}`}));let S=yield*Fp(_.payloadCodecs(b).decode(a.payload));if(Ea(S))return yield*a.isNotification?F:d(n,a.id,new m8({message:`Invalid method parameters`}));if(a.isNotification!==!0){let e=c.get(n)??/* @__PURE__ */ new Map;e.set(c9(a.id),{requestId:uP(a.id),prepared:l,cancelled:!1}),c.set(n,e)}let C=e(n,y);return yield*l.requestContext===void 0?C:dm(C,j8,l.requestContext)}).pipe(zp(e=>a.isNotification?F:d(n,a.id,Zt(e,`ProtocolError`)?H8.fromFeature(e):new m8({message:`Invalid request metadata`}))))}case`Ping`:case`Ack`:case`Interrupt`:return e(n,a);case`Eof`:return o||u(n),e(n,a);case`Pong`:case`Exit`:case`Chunk`:case`ClientProtocolError`:case`Defect`:{let e=a._tag===`Exit`?c9(a.requestId):void 0,r=o?t.resolveRequest(n,ua(iw().context,EN).headers):void 0,i=(e===void 0?void 0:l.get(e))?.find(e=>o?e.profile===r?.negotiatedProfile:e.clientId===n);if(a._tag===`Exit`&&i===void 0)return F;i!==void 0&&e!==void 0&&f(e,i);let c=i?.clientId??n,u=s.get(c),d=u?.protocol??t.protocols[0],p=i?.profile??u?.profile??{protocolVersion:d.protocolVersion,clientCapabilities:{},clientInfo:{name:`unknown`,version:`unknown`}};return AE(y,new l9({clientId:c,profile:p})).pipe(R(({write:e})=>e(a)),pm)}}}))});o&&(yield*t.onSessionTerminated(e=>{let t=[];for(let[n,r]of c)for(let{prepared:i,requestId:a}of r.values())i.binding===e&&h(n,a)&&t.push(_(n,{_tag:`Interrupt`,requestId:a}));return vp(t,{discard:!0})}));let{notificationDelivery:S,notifications:C}=n9.get(i);yield*hm(P(()=>{S.consumers++}),()=>P(()=>{S.consumers--}));let w=/* @__PURE__ */ new Map;return yield*pT(C).pipe(R(B(function*(e){let{delivered:n,notification:r,targetClientId:i,requestContext:c,requestHeaders:l}=e;W8(r)&&(yield*kw(p,{notification:r,targetClientId:i}));let u=yield*x.clientIds;for(let e of s.keys())u.has(e)||(s.delete(e),t.disconnect(e));let d=r._tag===`LoggingMessage`||r._tag===`Progress`,f=d&&c!==void 0?[c.clientId]:i===void 0?o?s.keys():t.deliveryClientIds():[i],m=[],h=!1;for(let e of f){if(i!==void 0&&e!==i)continue;if(!u.has(e)){t.disconnect(e);continue}if(!x.supportsNotifications)continue;let o=d&&c!==void 0?t.selectProtocol(c.protocolVersion):s.get(e)?.protocol;if(!o)continue;let f=w.get(e),p=e===(i??c?.clientId);h||=p;let g=p?n:nf();w.set(e,g);let _=I(function*(){f!==void 0&&(yield*af(f));let n=yield*o.projectNotification(r);if(n===void 0||r._tag===`Progress`&&o.runtime._tag===`Stateless`&&c?.requestMetadata?.progressToken!==r.progressToken)return;if(r._tag===`LoggingMessage`&&o.runtime._tag===`Stateless`){let t=c?.requestMetadata,n=A(t,`io.modelcontextprotocol/logLevel`)?t[`io.modelcontextprotocol/logLevel`]:void 0;if(c?.clientId!==e||!r9(n)||k8.literals.indexOf(r.level)<k8.literals.indexOf(n))return}else if(!t.canDeliver(e,(c?.clientId===e?l:void 0)??s.get(e)?.sessionHeaders??Kg,r,a))return;let i=o.serverNotificationRpcs.requests.get(n.tag);if(!i)return;let u=yield*o.payloadCodecs(i).encode(n.payload);yield*x.send(e,{_tag:`Request`,id:``,tag:n.tag,payload:u,headers:[],isNotification:!0})}).pipe(Yp,_m(P(()=>{ff(g,qd),w.get(e)===g&&w.delete(e)})));m.push(_)}h||(yield*df(n,void 0)),yield*vp(m,{concurrency:`unbounded`,discard:!0}).pipe(Im({startImmediately:!0}))})),Yp,Om,Im),yield*cce(t.clientRpcs,{spanPrefix:`McpServer`,disableFatalDefects:!0}).pipe(dm(xP,x),dm(N8,b),am(v))},pm),zbe=(e,t)=>qf(I(function*(){let n=yield*n5;yield*Im(Rbe(e,n,t))})).pipe(ep(a9.layer)),Bbe=e=>{let t=Jve(e.protocols);return zbe(e,`http`).pipe($f(Vbe(e)),$f(t),$f(Qse()))},Vbe=e=>Wf(xP)(I(function*(){let t=yield*n5,{httpEffect:n,protocol:r}=yield*lce().pipe(dm(fP,Hbe)),i=yield*IN,a=e.allowSessionTermination===!0&&t.protocols.some(e=>e.runtime._tag===`Stateful`),o=N(eM({status:403})),s=t=>n=>d9(n,e.allowedOrigins)?t(n):o,c=N(eM({status:405,headers:{allow:a?`POST, DELETE`:`POST`}})),l=s(()=>c);for(let t of[`GET`,`PUT`,`PATCH`,`OPTIONS`])yield*i.add(t,e.path,l);return yield*i.add(`DELETE`,e.path,a?s(e=>t.terminateHttpSession(e.headers)):l),yield*i.add(`POST`,e.path,r=>{if(!d9(r,e.allowedOrigins))return N(eM({status:403}));if(f9(r.headers[`content-type`])[0]!==`application/json`)return N(eM({status:415}));let i=f9(r.headers.accept);return!i.includes(`application/json`)||!i.includes(`text/event-stream`)?N(eM({status:406})):I(function*(){let e=yield*Fp(R(r.text,dS(TC))),i=t.admitHttp(r.headers,e);if(i._tag===`Rejected`)return i.response;let a=z(n,e=>{let t=e.body._tag===`Uint8Array`&&e.body.body.subarray(0,-1).includes(10);return i.isSubscription||e.body._tag===`Stream`||t?Gbe(e,i.isSubscription):e});return yield*i.acknowledge?Vp(a,()=>N(eM({status:202}))):a})}),r})),Hbe=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Wbe();return fP.of({contentType:e.contentType,includesFraming:!0,codecFor:e.codecFor,makeUnsafe:()=>{let t=e.makeUnsafe();return{decode:t.decode,encode:e=>{let n=t.encode(e);return typeof n==`string`?`${n}\n`:n}}}})})(),Ube=/*#__PURE__*/ lS(/*#__PURE__*/ XS(`Cause`,{data:/*#__PURE__*/ zS([/*#__PURE__*/ XS(`Fail`,{error:/*#__PURE__*/ SS(g8)})])})),u9=e=>Array.isArray(e)?e.map(u9):!Yt(e)||!A(e,`error`)?e:Ube(e.error)?{...e,error:e.error.data[0].error}:e;function Wbe(e){let t=pP(e);return fP.of({...t,makeUnsafe:()=>{let e=t.makeUnsafe(),n=/* @__PURE__ */ new Set;return{decode:e.decode,encode:t=>{if(Yt(t)){let e=s9.get(t);e!==void 0&&(s9.delete(t),n.add(e))}let r=e.encode(t);if(typeof r!=`string`||n.size===0&&!r.includes(`"_tag":"Cause"`))return r;let i=JSON.parse(r);if(n.size>0){let e=e=>!(Yt(e)&&!A(e,`method`)&&(typeof e.id==`string`||typeof e.id==`number`)&&n.delete(e.id));if(Array.isArray(i)){let t=i.filter(e);if(t.length===0)return;i=t}else if(!e(i))return}return JSON.stringify(u9(i))}}}})}const Gbe=(e,t)=>{let n=new TextEncoder,r=new TextDecoder,i=e=>n.encode(r.decode(e).trimEnd().split(`
|
|
532
532
|
`).map(e=>`data: ${e}\n\n`).join(``)),a={status:e.status,statusText:e.statusText,headers:Qg(e.headers,`content-type`),cookies:e.cookies,contentType:`text/event-stream`};if(e.body._tag===`Stream`){let r=e.body.stream.pipe(qE(i));if(!t)return lM(r,a);let o=hoe(`15 seconds`).pipe(koe(1),qE(()=>n.encode(`: keepalive
|
|
533
533
|
|
|
534
|
-
`)));return lM(YE(r,o,{haltStrategy:`left`}),a)}return e.body._tag===`Uint8Array`?nM(i(e.body.body),a):uM(e,`content-type`,`text/event-stream`)},d9=(e,t)=>{let n=e.headers.origin;return n===void 0||(t??[]).includes(n)},f9=e=>e===void 0?[]:e.split(`,`).flatMap(e=>{let[t,...n]=e.split(`;`),r=n.map(e=>e.trim().toLowerCase()).find(e=>e.startsWith(`q=`));if(r!==void 0){let e=Number(r.slice(2));if(!Number.isFinite(e)||e<=0||e>1)return[]}return[t.trim().toLowerCase()]}),Kbe=()=>{let e=Uj({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},qbe=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,Jbe=Fbe,Ybe=lS(wY),Xbe=lS(W(wY)),p9=e=>ly(e)?p9(e.thunk()):e,m9=e=>EY(p9(e)),h9=e=>{let t=p9(e),n=EY(t);if(n!==void 0)return{kind:n,many:!1};if(!oy(t)||t.encoding!==void 0)return;let[r,...i]=new Set([...t.elements,...t.rest].map(m9));return r===void 0||i.length>0?void 0:{kind:r,many:!0}},Zbe=e=>{let t=e.context?.isOptional===!0,n=p9(e);if(t&&cy(n)&&n.types.length===2){let[e,...t]=n.types.filter(e=>!gre(e)),r=e===void 0||t.length>0?void 0:m9(e);return r===void 0?void 0:{kind:r,many:!1}}let r=h9(n);return r===void 0||t&&r.many?void 0:r},Qbe=e=>{let t=p9(e.ast),n=h9(t);if(n!==void 0)return{fields:[{name:void 0,...n}],rest:void 0};if(!sy(t)||t.encoding!==void 0)return{fields:[],rest:e};let r=t.propertySignatures.flatMap(({name:e,type:t})=>{let n=Zbe(t);return n===void 0?[]:[{name:String(e),...n}]});if(r.length===0)return{fields:r,rest:e};let i=new Set(r.map(({name:e})=>e)),a=t.propertySignatures.filter(({name:e})=>!i.has(e)),{identifier:o,...s}=t.annotations??{};return{fields:r,rest:a.length===0&&t.indexSignatures.length===0?void 0:_S(new Iy(a,t.indexSignatures,s))}},$be=e=>[...ny(e)?e.typeParameters:[],...oy(e)?[...e.elements,...e.rest]:[],...sy(e)?[...e.propertySignatures,...e.indexSignatures].map(({type:e})=>e):[],...cy(e)?e.types:[],...ly(e)?[e.thunk()]:[],...(e.encoding??[]).map(({to:e})=>e)],exe=e=>{let t=/* @__PURE__ */ new Set,n=[e];for(let e=n.pop();e!==void 0;e=n.pop())if(!t.has(e)){if(t.add(e),TY(e))return!0;n.push(...$be(e))}return!1},txe=(e,{rest:t})=>[e.input,...e.error,...t===void 0?[]:[t]].some(({ast:e})=>exe(e)),nxe=(e,t)=>e.fields.flatMap(({name:e,kind:n,many:r})=>{let i=e===void 0?t:A(t,e)?t[e]:void 0;return(r?Xbe(i)?i:[]:Ybe(i)?[i]:[]).map(t=>({kind:n,field:e,value:t}))}),g9=(e,t,n)=>n===void 0?e:e.annotate(t,n),rxe=(e,{readOnly:t,mcp:n})=>{let r=n.destructiveHint??(!t&&void 0),i=n._meta===void 0?void 0:{...n._meta},a=g9(g9(g9(e.annotate(H6,t),U6,r),W6,n.idempotentHint),G6,n.openWorldHint);return g9(g9(a,B6,n.title),V6,i)},ixe=e=>Y_e(e.name,{description:e.description,parameters:KC(e.input),success:KC(e.success),failure:KC(G(nY(e))),failureMode:`return`}),axe=(e,t)=>{sY(t.label,e.flatMap(e=>e.actions));let n=ive(...e.flatMap(e=>e.actions.map(n=>rxe(t.tool(ixe(n),n,e),n))));return{toolkit:n,layer:n.toLayer(z(xY(e),e=>Object.fromEntries(e.map(([e,n])=>[e.name,t.handler?.(n,e)??n]))))}},_9={label:`MCP tool`,tool:e=>e.annotate(K6,!0)},oxe=lS(w8),v9=(e,t)=>{let n=xae(e,{onExcessProperty:t?`error`:`ignore`}),[r,i]=It(n.schema.$ref)?Cx(n.schema.$ref)??[]:[],a=r===`$defs`&&i!==void 0?n.definitions[i]:n.schema;return a===void 0||Object.keys(n.definitions).length===0?a:{...a,$defs:n.definitions}},sxe=e=>{let t=e.map(([e])=>e).filter(e=>!oxe(v9(KC(e.input),!0))).map(({name:e})=>e);if(t.length>0)throw Error(`MCP tool input must be one object with keys, such as a struct: ${t.join(`, `)}`);let n=e.filter(([e,t])=>txe(e,t)).map(([{name:e}])=>e);if(n.length>0)throw Error(`MCP media must be the success or an array of it, or a top-level field of a struct success, one, optional or a required array: ${n.join(`, `)}`)},cxe=e=>new D8({isError:!0,content:[{type:`text`,text:e}]}),y9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],lxe=({kind:e,field:t,value:n})=>({type:e,data:n.data,mimeType:n.mimeType,...t===void 0?{}:{_meta:{"effect-actions/field":t}}}),uxe=e=>K_e(e)&&Zt(e.reason,`ToolParameterValidationError`)?e.reason:void 0,b9=va(j8,M8,EN,mf),dxe=B(function*(e,t){let n=yield*a9,r=yield*e.pipe(um(t=>ga(t,_a(...Object.values(e.tools).flatMap(e=>{let n=j(e.id);return Ree(ha(t,n)).map(e=>ia(n,{...e,context:b9(e.context)}))}))))),i=b9(yield*rm()),a=e=>{let t=Td(e);return Ea(t)&&!Dd(e)?Dp(t.failure):Km(e).pipe(Np(om(nO(e),i)),Lp(cxe(`Tool execution failed due to an internal server error.`)))},o=e=>{let t=Td(e);if(Da(t)){let{error:e}=t.success,n=da(zd(t.success),J6)===`parameters`?uxe(e):void 0;if(n!==void 0)return L(new m8({message:n.message}))}return a(e)},s=yield*yp(Object.entries(r.tools),([e,n])=>I(function*(){let a=Z_e(n)===!0,s={onExcessProperty:a?`error`:`ignore`,errors:`all`},c=t.get(e),l=c===void 0||c.fields.length===0?void 0:c,u=l===void 0?n.successSchema:l.rest===void 0?void 0:KC(l.rest),d=u===void 0?void 0:yield*uS(T8)(v9(u,!1)).pipe(Gp),f=yield*uS(w8)(v9(n.parametersSchema,a)).pipe(Gp),p=new Set(l?.fields.map(({name:e})=>e)),m=({encodedResult:e,result:t})=>{if(l===void 0)return new D8({isError:!1,structuredContent:e,content:y9(e)});let n=nxe(l,t).map(lxe);if(u===void 0)return new D8({isError:!1,content:n});let r=Jt(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!p.has(e))):e;return new D8({isError:!1,structuredContent:r,content:[...y9(r),...n]})};return{tool:new E8({name:e,description:X_e(n),inputSchema:f,outputSchema:d,annotations:{...ha(n.annotations,B6).pipe(zi(e=>({title:e})),Li),readOnlyHint:da(n.annotations,H6),destructiveHint:da(n.annotations,U6),idempotentHint:da(n.annotations,W6),openWorldHint:da(n.annotations,G6)},_meta:ca(n.annotations,V6)}),annotations:n.annotations,handle:t=>r.handle(e,t??{},void 0,s).pipe(KE,Loe,R(rre),R(e=>e.isFailure?e.failureOrigin===`handler`?N(new D8({isError:!0,content:y9(e.encodedResult)})):Dp(Rd(_d(e.result),ia(J6,e.failureOrigin??`result`))):N(m(e))),Vp(o),om(i))}}));for(let e of s)yield*n.addTool(e)}),fxe=(e,t,n=Uf,r)=>{let i=axe(e,r===void 0?_9:{..._9,handler:(e,t)=>n=>t.caller===rY?e(n):h$(LY(r,e(n)))}),a=e.flatMap(e=>e.actions.map(e=>[e,Qbe(e.success)]));sxe(a);let o=new Map(a.map(([{name:e},t])=>[e,t])),s=I(function*(){let e=yield*a9,t=e.tools.flatMap(({tool:e})=>o.has(e.name)?[e.name]:[]);if(t.length>0)return yield*kp(/* @__PURE__ */ Error(`Duplicate MCP tool: ${t.join(`, `)}, claimed by an action and a native feature`));let n=yield*zf(i.layer);yield*dxe(i.toolkit,o).pipe(sm(aa(n,a9,e)))});return qf(s).pipe($f(n),$f(t),Bne,bY(e))},pxe=/* @__PURE__ */ new Set([`server/discover`,`tools/list`,`notifications/cancelled`]),mxe=e=>{let t=new Set(e.filter(({caller:e})=>e===rY).map(({name:e})=>e));return e=>{if(t.size===0)return!0;let n=e[`mcp-method`];if(n===void 0)return!0;if(pxe.has(n))return!1;if(n!==`tools/call`)return!0;let r=e[`mcp-name`];return r===void 0||!t.has(r)}};function hxe(e,{actions:t,features:n,path:r,authentication:i,...a}){let o=yY(_Y(e),t),s=o.flatMap(e=>e.actions);IY(s,i);let c=fxe(o,Bbe({...a,path:r??`/mcp`,protocols:[Jbe]}),n,i);if(i===void 0)return c;let l=mxe(s),u=GN(z(i[`~provider`],e=>t=>R(EN,n=>e.http(t,!l(n.headers)))));return c.pipe($f(u.layer))}var gxe=`0.14.0`,x9=class extends Bo(`Unauthorized`){constructor(e={}){super({message:e.message??`Authentication required`}),Object.defineProperty(this,"cause",{value:e.cause})}},S9=class extends GC()(`ProviderUnavailable`,{operation:H},{httpApiStatus:503}){constructor(e){super({operation:e.operation}),Object.defineProperty(this,"cause",{value:e.cause})}},C9=class extends Bo(`InsufficientScope`){},_xe=class extends GC()(`ConfigurationError`,{message:H}){};const w9=`key-list+jwt`,vxe=U({keys:W(U({id:H,sealed:H}))}),T9=wC(U({keyId:vC,ownerId:vC,scopes:W(vC),expiresAt:US(rC)})),E9=new TextEncoder,yxe=async e=>new Uint8Array(await crypto.subtle.digest(`SHA-256`,E9.encode(e))),D9=async(e,t)=>{let n=await crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),r=new Uint8Array(await crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:/* @__PURE__ */ new Uint8Array,info:E9.encode(`clankerauth key list\0${t}`)},n,512));return{id:sR(r.subarray(0,32)),key:await crypto.subtle.importKey(`raw`,r.subarray(32),`AES-GCM`,!1,[`encrypt`,`decrypt`])}},bxe=async(e,t,n)=>{let{id:r,key:i}=await D9(e,t),a=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)),o=await crypto.subtle.encrypt({name:`AES-GCM`,iv:a},i,E9.encode(gS(T9)(n))),s=new Uint8Array(a.length+o.byteLength);return s.set(a),s.set(new Uint8Array(o),a.length),{id:r,sealed:sR(s)}},xxe=async(e,t,n)=>{let r=await D9(await yxe(e),t),i=n.get(r.id);if(i===void 0)return;let a=new Uint8Array(oR(i)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:a.subarray(0,12)},r.key,a.subarray(12));return fS(T9)(new TextDecoder().decode(o))},O9=yo(1),k9=(e,t)=>im(n=>sj(e).execute(t).pipe(dm(IP,{...ca(n,IP),redirect:`error`}),Wp(e=>new S9({operation:`http.request`,cause:e})))),Sxe=U({keys:W(U({kty:H,crv:yS(H),x:yS(H),kid:yS(H),alg:yS(H),use:yS(H),key_ops:yS(W(H))}))}),Cxe=U({sub:vC,client_id:vC,scope:H,iat:rC,exp:rC}),wxe=U({list:H}),Txe=vxe.pipe(FS({exp:rC})),A9=e=>new x9({cause:e}),j9=vo(5),M9=V(`Verifier.make`)(function*(e){let t=yield*ej,n=yield*Ap({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,keyList:new URL(`/api/keyList`,e.issuer).href}),catch:()=>new _xe({message:`Invalid issuer URL`})}),r=V(`Verifier.jwks`)(function*(){let e=yield*k9(t,SA(n.jwks));return e.status===200?HB({keys:(yield*LA(Sxe)(e).pipe(Wp(e=>new S9({operation:`jwks.decode`,cause:e})))).keys.map(({key_ops:e,...t})=>e?{...t,key_ops:[...e]}:t)}):yield*new S9({operation:`jwks.fetch`,cause:{status:e.status}})},pm),i=yield*Sm(r(),e=>Jd(e)?`1 minute`:j9),a=V(`Verifier.signingKey`)(function*(e){let t=yield*i;return yield*Sp({try:()=>t({alg:`EdDSA`,kid:e}),catch:A9})}),o=V(`Verifier.signed`)(function*(t,n){let r=yield*Ap({try:()=>QB(t),catch:A9});if(r.alg!==`EdDSA`||r.kid===void 0)return yield*A9();let i=yield*a(r.kid),o=yield*np,{payload:s}=yield*Sp({try:()=>DB(t,i,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:n,currentDate:new Date(o)}),catch:A9});return s}),s=V(`Verifier.jwt`)(function*(e){let t=yield*o(e,`at+jwt`);if(t.cnf!==void 0)return yield*A9();let n=yield*uS(Cxe)(t).pipe(Wp(A9));return{subject:n.sub,scopes:n.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:n.client_id},expiresAt:n.exp*1e3}}),c=V(`Verifier.keyList`)(function*(){let r=CA(n.keyList).pipe(PA({resource:e.resource})),i=yield*k9(t,r);if(i.status!==200)return yield*new S9({operation:`key-list.fetch`,cause:{status:i.status}});let{list:a}=yield*LA(wxe)(i).pipe(Wp(e=>new S9({operation:`key-list.decode`,cause:e}))),s=e=>new S9({operation:`key-list.verify`,cause:e}),c=yield*o(a,w9).pipe(Bp(`Unauthorized`,e=>L(s(e)))),l=yield*uS(Txe)(c).pipe(Wp(s));return{readAt:yield*np,expiresAt:l.exp*1e3,entries:new Map(l.keys.map(e=>[e.id,e.sealed]))}},pm),l=yield*IO(!1),u=yield*Sm(c().pipe(Xp({duration:`3 seconds`,orElse:()=>L(new S9({operation:`key-list.timeout`}))}),Kp(({operation:e})=>R(zO(l,!0),t=>t?F:Gm(`clankerauth key list reads are failing; a held list decides until it expires`,{operation:e}))),Pp(()=>R(zO(l,!1),e=>e?qm(`clankerauth key list reads have recovered`):F))),j9),d=yield*IO(void 0),f=I(function*(){let e=yield*Fp(u);Da(e)&&(yield*RO(d,e.success));let t=yield*LO(d);return t!==void 0&&t.expiresAt>(yield*np)?t:yield*Ea(e)?e.failure:new S9({operation:`key-list.expired`})}),p=V(`Verifier.apiKey`)(function*(t){let n=n=>Sp({try:()=>xxe(t,e.resource,n.entries),catch:A9}),r=yield*np,i=yield*LO(d),a=i!==void 0&&r-i.readAt<bo(O9)&&i.expiresAt>r?i:yield*f,o=(yield*n(a))??(yield*R(f,e=>e===a?N(void 0):n(e)));return o===void 0||o.expiresAt!==null&&o.expiresAt<=(yield*np)?yield*A9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:o.expiresAt??void 0}});return{verifyToken:V(`Verifier.verifyToken`)(function*(t){let n=yield*t.startsWith(`clankerauth_`)?e.apiKeys===!1?L(A9()):p(t):s(t),r=e.requiredScopes?.find(e=>!n.scopes.includes(e));return r===void 0?n:yield*new C9({scope:r,actor:n.actor})})}}),Exe=V(`AdministrationResource.make`)(function*(){let e=yield*C6,t=`${e.settings.baseURL}/api/auth`,n=y1(e.settings.baseURL);return{protectedResource:{resource:n,authorizationServers:[t],scopesSupported:[v1.read,v1.write,`offline_access`],scopesRequired:[v1.read,v1.write]},verifier:yield*M9({issuer:t,resource:n,apiKeys:!1}).pipe(am(LP.pipe($f(Vf(FP,(t,n)=>{let r=new Request(t,n);return r.headers.set(`x-clankerauth-peer`,`127.0.0.1`),e.auth.handler(r)})))))}}),Dxe=uS(Y$),Oxe=uS(U({id:H,key:H,referenceId:H,expiresAt:US(IC),permissions:US(wC(Y$))})),N9=B(function*(e){return{keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:yield*Dxe(e.permissions??{}).pipe(zp(()=>Lp(Gm(`An API key's stored permissions do not decode; it is listed with none`,{keyId:e.id}),{}))),expiresAt:e.expiresAt?Wh(e.expiresAt):null,createdAt:Wh(e.createdAt)}}),P9=z(C6,e=>{let t=V(`MachineKeys.validate`)(function*(t){if(t!==void 0)for(let[n,r]of Object.entries(t)){if(n===y1(e.settings.baseURL))return yield*s1([`permissions`,n],`Administration requires OAuth access tokens, not API keys`);let t=yield*e.resources.get(n);if(!t||r.some(e=>!t.scopes.includes(e)))return yield*s1([`permissions`,n],`Select explicitly granted, currently available Resource scopes`)}});return{list:V(`MachineKeys.list`)(function*(){let{providerHeaders:t}=yield*R$,n=yield*t,r=yield*c1(()=>e.auth.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}));return{keys:yield*yp(r.apiKeys,N9)}}),create:V(`MachineKeys.create`)(function*(n){let r=yield*R$;yield*t(n.permissions);let i=n.expiresAt===null?null:(Jh(n.expiresAt)-(yield*np))/1e3;if(i!==null&&i<1)return yield*s1([`expiresAt`],`Expiry must be in the future`);let a=yield*c1(()=>e.auth.api.createApiKey({body:{userId:r.userId,name:n.name.trim(),permissions:Object.fromEntries(Object.entries(n.permissions).map(([e,t])=>[e,[...t]])),expiresIn:i}}));return{...yield*N9(a),key:a.key}}),update:V(`MachineKeys.update`)(function*(n){let r=yield*R$;return yield*t(n.permissions),yield*N9(yield*c1(()=>e.auth.api.updateApiKey({body:{userId:r.userId,keyId:n.keyId,name:n.name?.trim(),enabled:n.enabled,permissions:n.permissions?Object.fromEntries(Object.entries(n.permissions).map(([e,t])=>[e,[...t]])):void 0}})))}),delete:V(`MachineKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*c1(()=>e.auth.api.deleteApiKey({headers:r,body:{keyId:t}})),{deleted:!0}}),keyList:V(`MachineKeys.keyList`)(function*(t){let n=yield*np,r=yield*e.resources.get(t),i=r===void 0||t===y1(e.settings.baseURL)?[]:r.scopes,a=i.length?yield*e.sql`
|
|
534
|
+
`)));return lM(YE(r,o,{haltStrategy:`left`}),a)}return e.body._tag===`Uint8Array`?nM(i(e.body.body),a):uM(e,`content-type`,`text/event-stream`)},d9=(e,t)=>{let n=e.headers.origin;return n===void 0||(t??[]).includes(n)},f9=e=>e===void 0?[]:e.split(`,`).flatMap(e=>{let[t,...n]=e.split(`;`),r=n.map(e=>e.trim().toLowerCase()).find(e=>e.startsWith(`q=`));if(r!==void 0){let e=Number(r.slice(2));if(!Number.isFinite(e)||e<=0||e>1)return[]}return[t.trim().toLowerCase()]}),Kbe=()=>{let e=Uj({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},qbe=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,Jbe=Fbe,Ybe=lS(wY),Xbe=lS(W(wY)),p9=e=>ly(e)?p9(e.thunk()):e,m9=e=>EY(p9(e)),h9=e=>{let t=p9(e),n=EY(t);if(n!==void 0)return{kind:n,many:!1};if(!oy(t)||t.encoding!==void 0)return;let[r,...i]=new Set([...t.elements,...t.rest].map(m9));return r===void 0||i.length>0?void 0:{kind:r,many:!0}},Zbe=e=>{let t=e.context?.isOptional===!0,n=p9(e);if(t&&cy(n)&&n.types.length===2){let[e,...t]=n.types.filter(e=>!gre(e)),r=e===void 0||t.length>0?void 0:m9(e);return r===void 0?void 0:{kind:r,many:!1}}let r=h9(n);return r===void 0||t&&r.many?void 0:r},Qbe=e=>{let t=p9(e.ast),n=h9(t);if(n!==void 0)return{fields:[{name:void 0,...n}],rest:void 0};if(!sy(t)||t.encoding!==void 0)return{fields:[],rest:e};let r=t.propertySignatures.flatMap(({name:e,type:t})=>{let n=Zbe(t);return n===void 0?[]:[{name:String(e),...n}]});if(r.length===0)return{fields:r,rest:e};let i=new Set(r.map(({name:e})=>e)),a=t.propertySignatures.filter(({name:e})=>!i.has(e)),{identifier:o,...s}=t.annotations??{};return{fields:r,rest:a.length===0&&t.indexSignatures.length===0?void 0:_S(new Iy(a,t.indexSignatures,s))}},$be=e=>[...ny(e)?e.typeParameters:[],...oy(e)?[...e.elements,...e.rest]:[],...sy(e)?[...e.propertySignatures,...e.indexSignatures].map(({type:e})=>e):[],...cy(e)?e.types:[],...ly(e)?[e.thunk()]:[],...(e.encoding??[]).map(({to:e})=>e)],exe=e=>{let t=/* @__PURE__ */ new Set,n=[e];for(let e=n.pop();e!==void 0;e=n.pop())if(!t.has(e)){if(t.add(e),TY(e))return!0;n.push(...$be(e))}return!1},txe=(e,{rest:t})=>[e.input,...e.error,...t===void 0?[]:[t]].some(({ast:e})=>exe(e)),nxe=(e,t)=>e.fields.flatMap(({name:e,kind:n,many:r})=>{let i=e===void 0?t:A(t,e)?t[e]:void 0;return(r?Xbe(i)?i:[]:Ybe(i)?[i]:[]).map(t=>({kind:n,field:e,value:t}))}),g9=(e,t,n)=>n===void 0?e:e.annotate(t,n),rxe=(e,{readOnly:t,mcp:n})=>{let r=n.destructiveHint??(!t&&void 0),i=n._meta===void 0?void 0:{...n._meta},a=g9(g9(g9(e.annotate(H6,t),U6,r),W6,n.idempotentHint),G6,n.openWorldHint);return g9(g9(a,B6,n.title),V6,i)},ixe=e=>Y_e(e.name,{description:e.description,parameters:KC(e.input),success:KC(e.success),failure:KC(G(nY(e))),failureMode:`return`}),axe=(e,t)=>{sY(t.label,e.flatMap(e=>e.actions));let n=ive(...e.flatMap(e=>e.actions.map(n=>rxe(t.tool(ixe(n),n,e),n))));return{toolkit:n,layer:n.toLayer(z(xY(e),e=>Object.fromEntries(e.map(([e,n])=>[e.name,t.handler?.(n,e)??n]))))}},_9={label:`MCP tool`,tool:e=>e.annotate(K6,!0)},oxe=lS(w8),v9=(e,t)=>{let n=xae(e,{onExcessProperty:t?`error`:`ignore`}),[r,i]=It(n.schema.$ref)?Cx(n.schema.$ref)??[]:[],a=r===`$defs`&&i!==void 0?n.definitions[i]:n.schema;return a===void 0||Object.keys(n.definitions).length===0?a:{...a,$defs:n.definitions}},sxe=e=>{let t=e.map(([e])=>e).filter(e=>!oxe(v9(KC(e.input),!0))).map(({name:e})=>e);if(t.length>0)throw Error(`MCP tool input must be one object with keys, such as a struct: ${t.join(`, `)}`);let n=e.filter(([e,t])=>txe(e,t)).map(([{name:e}])=>e);if(n.length>0)throw Error(`MCP media must be the success or an array of it, or a top-level field of a struct success, one, optional or a required array: ${n.join(`, `)}`)},cxe=e=>new D8({isError:!0,content:[{type:`text`,text:e}]}),y9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],lxe=({kind:e,field:t,value:n})=>({type:e,data:n.data,mimeType:n.mimeType,...t===void 0?{}:{_meta:{"effect-actions/field":t}}}),uxe=e=>K_e(e)&&Zt(e.reason,`ToolParameterValidationError`)?e.reason:void 0,b9=va(j8,M8,EN,mf),dxe=B(function*(e,t){let n=yield*a9,r=yield*e.pipe(um(t=>ga(t,_a(...Object.values(e.tools).flatMap(e=>{let n=j(e.id);return Ree(ha(t,n)).map(e=>ia(n,{...e,context:b9(e.context)}))}))))),i=b9(yield*rm()),a=e=>{let t=Td(e);return Ea(t)&&!Dd(e)?Dp(t.failure):Km(e).pipe(Np(om(nO(e),i)),Lp(cxe(`Tool execution failed due to an internal server error.`)))},o=e=>{let t=Td(e);if(Da(t)){let{error:e}=t.success,n=da(zd(t.success),J6)===`parameters`?uxe(e):void 0;if(n!==void 0)return L(new m8({message:n.message}))}return a(e)},s=yield*yp(Object.entries(r.tools),([e,n])=>I(function*(){let a=Z_e(n)===!0,s={onExcessProperty:a?`error`:`ignore`,errors:`all`},c=t.get(e),l=c===void 0||c.fields.length===0?void 0:c,u=l===void 0?n.successSchema:l.rest===void 0?void 0:KC(l.rest),d=u===void 0?void 0:yield*uS(T8)(v9(u,!1)).pipe(Gp),f=yield*uS(w8)(v9(n.parametersSchema,a)).pipe(Gp),p=new Set(l?.fields.map(({name:e})=>e)),m=({encodedResult:e,result:t})=>{if(l===void 0)return new D8({isError:!1,structuredContent:e,content:y9(e)});let n=nxe(l,t).map(lxe);if(u===void 0)return new D8({isError:!1,content:n});let r=Jt(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!p.has(e))):e;return new D8({isError:!1,structuredContent:r,content:[...y9(r),...n]})};return{tool:new E8({name:e,description:X_e(n),inputSchema:f,outputSchema:d,annotations:{...ha(n.annotations,B6).pipe(zi(e=>({title:e})),Li),readOnlyHint:da(n.annotations,H6),destructiveHint:da(n.annotations,U6),idempotentHint:da(n.annotations,W6),openWorldHint:da(n.annotations,G6)},_meta:ca(n.annotations,V6)}),annotations:n.annotations,handle:t=>r.handle(e,t??{},void 0,s).pipe(KE,Loe,R(rre),R(e=>e.isFailure?e.failureOrigin===`handler`?N(new D8({isError:!0,content:y9(e.encodedResult)})):Dp(Rd(_d(e.result),ia(J6,e.failureOrigin??`result`))):N(m(e))),Vp(o),om(i))}}));for(let e of s)yield*n.addTool(e)}),fxe=(e,t,n=Uf,r)=>{let i=axe(e,r===void 0?_9:{..._9,handler:(e,t)=>n=>t.caller===rY?e(n):h$(LY(r,e(n)))}),a=e.flatMap(e=>e.actions.map(e=>[e,Qbe(e.success)]));sxe(a);let o=new Map(a.map(([{name:e},t])=>[e,t])),s=I(function*(){let e=yield*a9,t=e.tools.flatMap(({tool:e})=>o.has(e.name)?[e.name]:[]);if(t.length>0)return yield*kp(/* @__PURE__ */ Error(`Duplicate MCP tool: ${t.join(`, `)}, claimed by an action and a native feature`));let n=yield*zf(i.layer);yield*dxe(i.toolkit,o).pipe(sm(aa(n,a9,e)))});return qf(s).pipe($f(n),$f(t),Bne,bY(e))},pxe=/* @__PURE__ */ new Set([`server/discover`,`tools/list`,`notifications/cancelled`]),mxe=e=>{let t=new Set(e.filter(({caller:e})=>e===rY).map(({name:e})=>e));return e=>{if(t.size===0)return!0;let n=e[`mcp-method`];if(n===void 0)return!0;if(pxe.has(n))return!1;if(n!==`tools/call`)return!0;let r=e[`mcp-name`];return r===void 0||!t.has(r)}};function hxe(e,{actions:t,features:n,path:r,authentication:i,...a}){let o=yY(_Y(e),t),s=o.flatMap(e=>e.actions);IY(s,i);let c=fxe(o,Bbe({...a,path:r??`/mcp`,protocols:[Jbe]}),n,i);if(i===void 0)return c;let l=mxe(s),u=GN(z(i[`~provider`],e=>t=>R(EN,n=>e.http(t,!l(n.headers)))));return c.pipe($f(u.layer))}var gxe=`0.15.0`,x9=class extends Bo(`Unauthorized`){constructor(e={}){super({message:e.message??`Authentication required`}),Object.defineProperty(this,"cause",{value:e.cause})}},S9=class extends GC()(`ProviderUnavailable`,{operation:H},{httpApiStatus:503}){constructor(e){super({operation:e.operation}),Object.defineProperty(this,"cause",{value:e.cause})}},C9=class extends Bo(`InsufficientScope`){},_xe=class extends GC()(`ConfigurationError`,{message:H}){};const w9=`key-list+jwt`,vxe=U({keys:W(U({id:H,sealed:H}))}),T9=wC(U({keyId:vC,ownerId:vC,scopes:W(vC),expiresAt:US(rC)})),E9=new TextEncoder,yxe=async e=>new Uint8Array(await crypto.subtle.digest(`SHA-256`,E9.encode(e))),D9=async(e,t)=>{let n=await crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),r=new Uint8Array(await crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:/* @__PURE__ */ new Uint8Array,info:E9.encode(`clankerauth key list\0${t}`)},n,512));return{id:sR(r.subarray(0,32)),key:await crypto.subtle.importKey(`raw`,r.subarray(32),`AES-GCM`,!1,[`encrypt`,`decrypt`])}},bxe=async(e,t,n)=>{let{id:r,key:i}=await D9(e,t),a=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(12)),o=await crypto.subtle.encrypt({name:`AES-GCM`,iv:a},i,E9.encode(gS(T9)(n))),s=new Uint8Array(a.length+o.byteLength);return s.set(a),s.set(new Uint8Array(o),a.length),{id:r,sealed:sR(s)}},xxe=async(e,t,n)=>{let r=await D9(await yxe(e),t),i=n.get(r.id);if(i===void 0)return;let a=new Uint8Array(oR(i)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:a.subarray(0,12)},r.key,a.subarray(12));return fS(T9)(new TextDecoder().decode(o))},O9=yo(1),k9=(e,t)=>im(n=>sj(e).execute(t).pipe(dm(IP,{...ca(n,IP),redirect:`error`}),Wp(e=>new S9({operation:`http.request`,cause:e})))),Sxe=U({keys:W(U({kty:H,crv:yS(H),x:yS(H),kid:yS(H),alg:yS(H),use:yS(H),key_ops:yS(W(H))}))}),Cxe=U({sub:vC,client_id:vC,scope:H,iat:rC,exp:rC}),wxe=U({list:H}),Txe=vxe.pipe(FS({exp:rC})),A9=e=>new x9({cause:e}),j9=vo(5),M9=V(`Verifier.make`)(function*(e){let t=yield*ej,n=yield*Ap({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,keyList:new URL(`/api/keyList`,e.issuer).href}),catch:()=>new _xe({message:`Invalid issuer URL`})}),r=V(`Verifier.jwks`)(function*(){let e=yield*k9(t,SA(n.jwks));return e.status===200?HB({keys:(yield*LA(Sxe)(e).pipe(Wp(e=>new S9({operation:`jwks.decode`,cause:e})))).keys.map(({key_ops:e,...t})=>e?{...t,key_ops:[...e]}:t)}):yield*new S9({operation:`jwks.fetch`,cause:{status:e.status}})},pm),i=yield*Sm(r(),e=>Jd(e)?`1 minute`:j9),a=V(`Verifier.signingKey`)(function*(e){let t=yield*i;return yield*Sp({try:()=>t({alg:`EdDSA`,kid:e}),catch:A9})}),o=V(`Verifier.signed`)(function*(t,n){let r=yield*Ap({try:()=>QB(t),catch:A9});if(r.alg!==`EdDSA`||r.kid===void 0)return yield*A9();let i=yield*a(r.kid),o=yield*np,{payload:s}=yield*Sp({try:()=>DB(t,i,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:n,currentDate:new Date(o)}),catch:A9});return s}),s=V(`Verifier.jwt`)(function*(e){let t=yield*o(e,`at+jwt`);if(t.cnf!==void 0)return yield*A9();let n=yield*uS(Cxe)(t).pipe(Wp(A9));return{subject:n.sub,scopes:n.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:n.client_id},expiresAt:n.exp*1e3}}),c=V(`Verifier.keyList`)(function*(){let r=CA(n.keyList).pipe(PA({resource:e.resource})),i=yield*k9(t,r);if(i.status!==200)return yield*new S9({operation:`key-list.fetch`,cause:{status:i.status}});let{list:a}=yield*LA(wxe)(i).pipe(Wp(e=>new S9({operation:`key-list.decode`,cause:e}))),s=e=>new S9({operation:`key-list.verify`,cause:e}),c=yield*o(a,w9).pipe(Bp(`Unauthorized`,e=>L(s(e)))),l=yield*uS(Txe)(c).pipe(Wp(s));return{readAt:yield*np,expiresAt:l.exp*1e3,entries:new Map(l.keys.map(e=>[e.id,e.sealed]))}},pm),l=yield*IO(!1),u=yield*Sm(c().pipe(Xp({duration:`3 seconds`,orElse:()=>L(new S9({operation:`key-list.timeout`}))}),Kp(({operation:e})=>R(zO(l,!0),t=>t?F:Gm(`clankerauth key list reads are failing; a held list decides until it expires`,{operation:e}))),Pp(()=>R(zO(l,!1),e=>e?qm(`clankerauth key list reads have recovered`):F))),j9),d=yield*IO(void 0),f=I(function*(){let e=yield*Fp(u);Da(e)&&(yield*RO(d,e.success));let t=yield*LO(d);return t!==void 0&&t.expiresAt>(yield*np)?t:yield*Ea(e)?e.failure:new S9({operation:`key-list.expired`})}),p=V(`Verifier.apiKey`)(function*(t){let n=n=>Sp({try:()=>xxe(t,e.resource,n.entries),catch:A9}),r=yield*np,i=yield*LO(d),a=i!==void 0&&r-i.readAt<bo(O9)&&i.expiresAt>r?i:yield*f,o=(yield*n(a))??(yield*R(f,e=>e===a?N(void 0):n(e)));return o===void 0||o.expiresAt!==null&&o.expiresAt<=(yield*np)?yield*A9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:o.expiresAt??void 0}});return{verifyToken:V(`Verifier.verifyToken`)(function*(t){let n=yield*t.startsWith(`clankerauth_`)?e.apiKeys===!1?L(A9()):p(t):s(t),r=e.requiredScopes?.find(e=>!n.scopes.includes(e));return r===void 0?n:yield*new C9({scope:r,actor:n.actor})})}}),Exe=V(`AdministrationResource.make`)(function*(){let e=yield*C6,t=`${e.settings.baseURL}/api/auth`,n=y1(e.settings.baseURL);return{protectedResource:{resource:n,authorizationServers:[t],scopesSupported:[v1.read,v1.write,`offline_access`],scopesRequired:[v1.read,v1.write]},verifier:yield*M9({issuer:t,resource:n,apiKeys:!1}).pipe(am(LP.pipe($f(Vf(FP,(t,n)=>{let r=new Request(t,n);return r.headers.set(`x-clankerauth-peer`,`127.0.0.1`),e.auth.handler(r)})))))}}),Dxe=uS(Y$),Oxe=uS(U({id:H,key:H,referenceId:H,expiresAt:US(IC),permissions:US(wC(Y$))})),N9=B(function*(e){return{keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:yield*Dxe(e.permissions??{}).pipe(zp(()=>Lp(Gm(`An API key's stored permissions do not decode; it is listed with none`,{keyId:e.id}),{}))),expiresAt:e.expiresAt?Wh(e.expiresAt):null,createdAt:Wh(e.createdAt)}}),P9=z(C6,e=>{let t=V(`MachineKeys.validate`)(function*(t){if(t!==void 0)for(let[n,r]of Object.entries(t)){if(n===y1(e.settings.baseURL))return yield*s1([`permissions`,n],`Administration requires OAuth access tokens, not API keys`);let t=yield*e.resources.get(n);if(!t||r.some(e=>!t.scopes.includes(e)))return yield*s1([`permissions`,n],`Select explicitly granted, currently available Resource scopes`)}});return{list:V(`MachineKeys.list`)(function*(){let{providerHeaders:t}=yield*R$,n=yield*t,r=yield*c1(()=>e.auth.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}));return{keys:yield*yp(r.apiKeys,N9)}}),create:V(`MachineKeys.create`)(function*(n){let r=yield*R$;yield*t(n.permissions);let i=n.expiresAt===null?null:(Jh(n.expiresAt)-(yield*np))/1e3;if(i!==null&&i<1)return yield*s1([`expiresAt`],`Expiry must be in the future`);let a=yield*c1(()=>e.auth.api.createApiKey({body:{userId:r.userId,name:n.name.trim(),permissions:Object.fromEntries(Object.entries(n.permissions).map(([e,t])=>[e,[...t]])),expiresIn:i}}));return{...yield*N9(a),key:a.key}}),update:V(`MachineKeys.update`)(function*(n){let r=yield*R$;return yield*t(n.permissions),yield*N9(yield*c1(()=>e.auth.api.updateApiKey({body:{userId:r.userId,keyId:n.keyId,name:n.name?.trim(),enabled:n.enabled,permissions:n.permissions?Object.fromEntries(Object.entries(n.permissions).map(([e,t])=>[e,[...t]])):void 0}})))}),delete:V(`MachineKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*R$,r=yield*n;return yield*c1(()=>e.auth.api.deleteApiKey({headers:r,body:{keyId:t}})),{deleted:!0}}),keyList:V(`MachineKeys.keyList`)(function*(t){let n=yield*np,r=yield*e.resources.get(t),i=r===void 0||t===y1(e.settings.baseURL)?[]:r.scopes,a=i.length?yield*e.sql`
|
|
535
535
|
SELECT id, key, referenceId, expiresAt, permissions FROM apikey
|
|
536
536
|
WHERE enabled = 1 AND (expiresAt IS NULL OR expiresAt > ${new Date(n).toISOString()})
|
|
537
537
|
`:[],o=yield*yp(a,e=>I(function*(){let n=yield*Oxe(e),r=(n.permissions?.[t]??[]).filter(e=>i.includes(e));return r.length?[yield*Sp(()=>bxe(new Uint8Array(Buffer.from(n.key,`base64url`)),t,{keyId:n.id,ownerId:n.referenceId,scopes:r,expiresAt:n.expiresAt===null?null:Jh(n.expiresAt)}))]:[]}).pipe(zp(()=>Lp(Gm(`An API key row cannot be listed; it is left out of key lists`,{keyId:e.id}),[])))),s=Math.floor(n/1e3),{token:c}=yield*c1(()=>e.auth.api.signDocument({body:{typ:w9,payload:{aud:t,iat:s,exp:s+86400,keys:o.flat()}}}));return{list:c}})}}),F9=(e,t)=>{let n=`Requires ${e}.`;return t.kind===`client`?new ZJ({message:n,scopes:[e]}):new ZJ({message:n})},kxe=(e,t)=>t===void 0||e.scopes.includes(t)?void 0:F9(t,e.actor),I9=e=>e instanceof x9?new JJ({message:e.message}):e instanceof C9?F9(e.scope,e.actor):e,L9=(e,t)=>Wp(e.verifyToken(Bg(t)),I9);V(`Resource.layer`)(function*(e,{scopes:t,required:n},r){let i=new URL(`/`,r.publicUrl).href,a={resource:i,authorizationServers:[r.issuer],scopesSupported:t,scopesRequired:[n]},o=r.discovery===!1?void 0:a,s=yield*M9({issuer:r.issuer,resource:i,requiredScopes:[n],apiKeys:r.apiKeys}),c=e=>Xp(e,{duration:`5 seconds`,orElse:()=>L(new S9({operation:`verify.timeout`}))}),l={verifyToken:e=>c(s.verifyToken(e))},u=V(`Resource.principal`)(function*(e,t){let n=v$(e);if(ji(n))return yield*new JJ({message:`A bearer token is required.`});let r=yield*L9(l,n.value),i=kxe(r,t);return i===void 0?r:yield*i}),d=V(`Resource.admit`)(function*(t,n){let r=yield*Fp(u(t,n));if(Da(r))return{ok:!0,principal:r.success};let i=vM(Vue(r.failure,{authentication:e,protectedResource:o,authorization:t}));return{ok:!1,refusal:{status:i.status,headers:Object.fromEntries(i.headers),body:yield*xp(()=>i.text())}}});return{resource:i,issuer:r.issuer,protectedResource:o,verifier:l,admit:d,watch:(e,t)=>Om(I(function*(){let n=yield*u(e,t),r=yield*np,i=Math.max(0,(n.expiresAt??1/0)-r);return n.actor.kind===`key`?yield*Zp(Math.min(i,bo(O9))):(yield*Zp(i),yield*I9(new x9))}))}});const R9=V(`Administration.providerSession`)(function*(e,t){let{context:n}=e,r=new Date((yield*np)+6e4),i=yield*hm(c1(()=>n.internalAdapter.createSession(t,!0,{expiresAt:r},!0)),e=>xp(()=>n.internalAdapter.deleteSession(e.token))),a=yield*c1(async()=>(await Promise.all([rF(n.authCookies.sessionToken.name,i.token,n.secret),rF(n.authCookies.dontRememberToken.name,`true`,n.secret)])).map(e=>e.split(`;`)[0]).join(`; `));return new Headers({origin:e.settings.baseURL,cookie:a})}),Axe=e=>k$(e,z(C6,e=>()=>I(function*(){let t=yield*EN,n=new Headers(t.headers),r=yield*c1(()=>e.auth.api.getSession({headers:n}));return r?{providerHeaders:N(n),userId:r.user.id,email:r.user.email,writable:!0}:yield*new JJ({message:`Owner session required`})}))),jxe=d1(U({id:H,email:H})),Mxe=e=>k$(B$,z(C6,t=>{let n=()=>new JJ({message:`Owner authorization required`});return r=>I(function*(){let i=yield*L9(e.verifier,r).pipe(Bp(`ProviderUnavailable`,()=>L(new F$({error:`Request could not be completed`}))));if(i.actor.kind!==`client`)return yield*n();let a=i.scopes.includes(v1.write);if(!a&&!i.scopes.includes(v1.read))return yield*new ZJ({message:`Insufficient scope`,scopes:[v1.read]});let o=yield*t.sql`SELECT u.id, u.email FROM user u
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjermundgaraba/clankerauth-dev",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Disposable local clankerauth issuer for application development",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@clankerauth/admin-api": "0.1.0",
|
|
31
|
-
"@clankerauth/server": "0.
|
|
31
|
+
"@clankerauth/server": "0.15.0",
|
|
32
32
|
"@clankerauth/web": "0.1.0",
|
|
33
33
|
"@effect/platform-node": "4.0.2",
|
|
34
34
|
"@opentelemetry/api": "1.9.1",
|