@gjermundgaraba/clankerauth-dev 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -408,7 +408,7 @@ To resolve this, you can:
408
408
  1. Use only one of the conflicting plugins
409
409
  2. Configure the plugins to use different paths (if supported)
410
410
  3. Ensure plugins use different HTTP methods for the same path
411
- `)}}function FU(e,t){let n=Se(t),r=t.plugins?.reduce((e,t)=>({...e,...t.endpoints}),{})??{},i=t.plugins?.map(t=>t.middlewares?.map(r=>{let i=(async i=>{let a=await e;return n(`middleware ${r.path} ${t.id}`,{"better_auth.hook.type":`middleware`,"http.route":r.path,"better_auth.context":`plugin:${t.id}`},()=>r.middleware({...i,context:{...a,...i.context}}))});return i.options=r.middleware.options,{path:r.path,middleware:i}})).filter(e=>e!==void 0).flat()||[];return{api:NU({signInSocial:sU(),callbackOAuth:qH,getSession:dL(),signOut:dU,signUpEmail:pU(),signInEmail:cU(),resetPassword:iU,verifyPassword:aU,verifyEmail:Rz,sendVerificationEmail:Lz,changeEmail:SU,changePassword:vU,setPassword:yU,updateSession:hU(),updateUser:_U(),deleteUser:bU,requestPasswordReset:nU,requestPasswordResetCallback:rU,listSessions:vL(),revokeSession:yL,revokeSessions:bL,revokeOtherSessions:xL,linkSocialAccount:FH,listUserAccounts:PH,deleteUserCallback:xU,unlinkAccount:IH,refreshToken:UH,getAccessToken:HH,accountInfo:WH,...r,ok:ZH,error:XH},e),middlewares:i}}const IU=(e,t)=>{let n=Se(t),{api:r,middlewares:i}=FU(e,t),a=new URL(e.baseURL).pathname;return wce(r,{routerContext:e,openapi:{disabled:!0},basePath:a,routerMiddleware:[{path:`/**`,middleware:qce},...i],allowedMediaTypes:[`application/json`],skipTrailingSlashes:t.advanced?.skipTrailingSlashes??!1,async onRequest(t){let r=e.options.disabledPaths||[],i=tP(t.url,a);if(r.includes(i))return new Response(`Not Found`,{status:404});let o=e.checkSchema?.();o&&await o;let s=t,c=await dle(s,e);if(c)return c;for(let t of e.options.plugins||[])if(t.onRequest){let r=await n(`onRequest ${t.id}`,{[kL]:`onRequest`,[AL]:`plugin:${t.id}`},()=>t.onRequest(s,e));if(r&&`response`in r)return r.response;r&&`request`in r&&(s=r.request)}return s},async onResponse(t,r){for(let r of e.options.plugins||[])if(r.onResponse){let i=await n(`onResponse ${r.id}`,{[kL]:`onResponse`,[AL]:`plugin:${r.id}`,[me]:t.status},()=>r.onResponse(t,e));if(i)return i.response}return t},onError(n){if(AN(n)&&n.status===`FOUND`)return;if(t.onAPIError?.throw)throw n;if(t.onAPIError?.onError){t.onAPIError.onError(n,e);return}let r=t.logger?.level,i=r===`error`||r===`warn`||r===`debug`?be:void 0;if(t.logger?.disabled!==!0){if(n&&typeof n==`object`&&`message`in n&&typeof n.message==`string`&&(n.message.includes(`no column`)||n.message.includes(`column`)||n.message.includes(`relation`)||n.message.includes(`table`)||n.message.includes(`does not exist`))){e.logger?.error(n.message);return}AN(n)?(n.status===`INTERNAL_SERVER_ERROR`&&e.logger.error(n.status,n),i?.error(n.message)):e.logger?.error(n&&typeof n==`object`&&`name`in n?n.name:``,n)}}})},LU=(e,t)=>[...e.errors,...(t??[]).filter(t=>!e.errors.includes(t))],RU=/^[A-Za-z0-9_-]+$/,zU=(e,t)=>{if(!RU.test(t)||t===`then`)throw Error(`Invalid ${e}: ${t}`)},BU=(e,t)=>{let n=/* @__PURE__ */ new Set;for(let r of t){if(n.has(r))throw Error(`Duplicate ${e}: ${r}`);n.add(r)}},VU=rT(V,Xw);function HU(e,t){zU(`action name`,e);let{access:n}=t,r=t.mcp===!1?!1:t.mcp?.readOnly??n===`read`,i=t.mcp!==!1&&{name:t.mcp?.name??e,readOnly:r,destructive:t.mcp?.destructive??!r,idempotent:t.mcp?.idempotent??!1,openWorld:t.mcp?.openWorld??!0};if(i!==!1&&i.name.length>128)throw Error(`Invalid MCP name: ${i.name}`);return i!==!1&&zU(`MCP name`,i.name),{name:e,description:t.description,input:t.input??VU,success:t.success,errors:t.errors??[],access:n,http:t.http!==!1,mcp:i}}var UU=class e{group;#e;constructor(e,t){this.group=e,this.#e=t}get build(){return this.#e}static make(t,n){return new e(t,n)}};const WU=(e,t,n,r)=>{let i=n[t.name];if(i===void 0)throw Error(`Missing handler: ${t.name}`);return n=>{let a=$h(Rm(()=>i(n)),`${e.name}.${t.name}`,{captureStackTrace:!1});return r===void 0?a:I(r(t),()=>a)}};function GU(e,...t){let{name:n}=e;zU(`action group name`,n);let r=t.map(t=>({...t,errors:[...t.errors,...e.errors??[]]}));BU(`action`,r.map(e=>e.name)),BU(`MCP tool`,r.flatMap(e=>e.mcp===!1?[]:[e.mcp.name]));let i={name:n,actions:r,schemaError:e.schemaError,implement:e=>{let t=Am(e)?e:M(e);return UU.make(i,t)}};return i}const KU={write(e){switch(e._tag){case`Event`:{let t=``;return e.id!==void 0&&(t+=`id: ${e.id}\n`),e.event!==`message`&&(t+=`event: ${e.event}\n`),t+=`data: ${e.data.replace(/\n/g,`
411
+ `)}}function FU(e,t){let n=Se(t),r=t.plugins?.reduce((e,t)=>({...e,...t.endpoints}),{})??{},i=t.plugins?.map(t=>t.middlewares?.map(r=>{let i=(async i=>{let a=await e;return n(`middleware ${r.path} ${t.id}`,{"better_auth.hook.type":`middleware`,"http.route":r.path,"better_auth.context":`plugin:${t.id}`},()=>r.middleware({...i,context:{...a,...i.context}}))});return i.options=r.middleware.options,{path:r.path,middleware:i}})).filter(e=>e!==void 0).flat()||[];return{api:NU({signInSocial:sU(),callbackOAuth:qH,getSession:dL(),signOut:dU,signUpEmail:pU(),signInEmail:cU(),resetPassword:iU,verifyPassword:aU,verifyEmail:Rz,sendVerificationEmail:Lz,changeEmail:SU,changePassword:vU,setPassword:yU,updateSession:hU(),updateUser:_U(),deleteUser:bU,requestPasswordReset:nU,requestPasswordResetCallback:rU,listSessions:vL(),revokeSession:yL,revokeSessions:bL,revokeOtherSessions:xL,linkSocialAccount:FH,listUserAccounts:PH,deleteUserCallback:xU,unlinkAccount:IH,refreshToken:UH,getAccessToken:HH,accountInfo:WH,...r,ok:ZH,error:XH},e),middlewares:i}}const IU=(e,t)=>{let n=Se(t),{api:r,middlewares:i}=FU(e,t),a=new URL(e.baseURL).pathname;return wce(r,{routerContext:e,openapi:{disabled:!0},basePath:a,routerMiddleware:[{path:`/**`,middleware:qce},...i],allowedMediaTypes:[`application/json`],skipTrailingSlashes:t.advanced?.skipTrailingSlashes??!1,async onRequest(t){let r=e.options.disabledPaths||[],i=tP(t.url,a);if(r.includes(i))return new Response(`Not Found`,{status:404});let o=e.checkSchema?.();o&&await o;let s=t,c=await dle(s,e);if(c)return c;for(let t of e.options.plugins||[])if(t.onRequest){let r=await n(`onRequest ${t.id}`,{[kL]:`onRequest`,[AL]:`plugin:${t.id}`},()=>t.onRequest(s,e));if(r&&`response`in r)return r.response;r&&`request`in r&&(s=r.request)}return s},async onResponse(t,r){for(let r of e.options.plugins||[])if(r.onResponse){let i=await n(`onResponse ${r.id}`,{[kL]:`onResponse`,[AL]:`plugin:${r.id}`,[me]:t.status},()=>r.onResponse(t,e));if(i)return i.response}return t},onError(n){if(AN(n)&&n.status===`FOUND`)return;if(t.onAPIError?.throw)throw n;if(t.onAPIError?.onError){t.onAPIError.onError(n,e);return}let r=t.logger?.level,i=r===`error`||r===`warn`||r===`debug`?be:void 0;if(t.logger?.disabled!==!0){if(n&&typeof n==`object`&&`message`in n&&typeof n.message==`string`&&(n.message.includes(`no column`)||n.message.includes(`column`)||n.message.includes(`relation`)||n.message.includes(`table`)||n.message.includes(`does not exist`))){e.logger?.error(n.message);return}AN(n)?(n.status===`INTERNAL_SERVER_ERROR`&&e.logger.error(n.status,n),i?.error(n.message)):e.logger?.error(n&&typeof n==`object`&&`name`in n?n.name:``,n)}}})},LU=(e,t)=>[...e.errors,...(t??[]).filter(t=>!e.errors.includes(t))],RU=/^[A-Za-z0-9_-]+$/,zU=(e,t)=>{if(!RU.test(t)||t===`then`)throw Error(`Invalid ${e}: ${t}`)},BU=(e,t)=>{let n=/* @__PURE__ */ new Set;for(let r of t){if(n.has(r))throw Error(`Duplicate ${e}: ${r}`);n.add(r)}},VU=rT(V,Xw);function HU(e,t){zU(`action name`,e);let{access:n}=t;if(n!==`read`&&n!==`write`)throw Error(`Invalid access: ${String(n)}`);let r=t.mcp===!1?!1:t.mcp?.readOnly??n===`read`,i=t.mcp!==!1&&{name:t.mcp?.name??e,readOnly:r,destructive:t.mcp?.destructive??!r,idempotent:t.mcp?.idempotent??!1,openWorld:t.mcp?.openWorld??!0};if(i!==!1&&i.name.length>128)throw Error(`Invalid MCP name: ${i.name}`);return i!==!1&&zU(`MCP name`,i.name),{name:e,description:t.description,input:t.input??VU,success:t.success,errors:t.errors??[],access:n,http:t.http!==!1,mcp:i}}var UU=class e{group;#e;constructor(e,t){this.group=e,this.#e=t}get build(){return this.#e}static make(t,n){return new e(t,n)}};const WU=(e,t,n,r)=>{let i=n[t.name];if(i===void 0)throw Error(`Missing handler: ${t.name}`);return n=>{let a=$h(Rm(()=>i(n)),`${e.name}.${t.name}`,{captureStackTrace:!1});return r===void 0?a:I(r(t),()=>a)}};function GU(e,...t){let{name:n}=e;zU(`action group name`,n);let r=t.map(t=>({...t,errors:[...t.errors,...e.errors??[]]}));BU(`action`,r.map(e=>e.name)),BU(`MCP tool`,r.flatMap(e=>e.mcp===!1?[]:[e.mcp.name]));let i={name:n,actions:r,schemaError:e.schemaError,implement:e=>{let t=Am(e)?e:M(e);return UU.make(i,t)}};return i}const KU={write(e){switch(e._tag){case`Event`:{let t=``;return e.id!==void 0&&(t+=`id: ${e.id}\n`),e.event!==`message`&&(t+=`event: ${e.event}\n`),t+=`data: ${e.data.replace(/\n/g,`
412
412
  data: `)}\n`,t+`
413
413
  `}case`Retry`:return`retry: ${ac(e.duration)}\n\n`}}};function qU(e){let t=typeof e==`string`?Jse(e):e;return e=>e.annotate({httpApiStatus:t})}const JU=/*#__PURE__*/ (e=>eT.pipe(qU(e)))(204),YU=e=>Gw(e)&&A(e,`~effect/httpapi/HttpApiSchema/Stream`),XU=e=>YU(e)&&e._tag===`StreamSse`,ZU=e=>YU(e)&&e._tag===`StreamUint8Array`,QU=`~effect/httpapi/HttpApiSchema/WithHeaders`,$U=e=>A(e,`~effect/httpapi/HttpApiSchema/WithHeadersValue`),eW=e=>Gw(e)&&A(e,`~effect/httpapi/HttpApiSchema/WithHeaders`);function tW(e,t,n){return Ww(e.ast,{[QU]:QU,schema:t,headers:n})}function nW(e,t){return e.annotate({"~httpApiEncoding":{_tag:t._tag,contentType:t.contentType??rW(t._tag)}})}function rW(e){switch(e){case`Multipart`:return`multipart/form-data`;case`Json`:return`application/json`;case`FormUrlEncoded`:return`application/x-www-form-urlencoded`;case`Uint8Array`:return`application/octet-stream`;case`Text`:return`text/plain`}}function iW(e){return t=>nW(t,{_tag:`FormUrlEncoded`,...e})}const aW=e=>{if(Sv(e))return!0;let t=qy(e);if(Sv(t))return!0;let n=e.encoding?.[0].to;return n!==void 0&&Sv(n)},oW=/*#__PURE__*/ ob(`~httpApiEncoding`),sW=/*#__PURE__*/ ob(`~httpApiWithHeaders`),cW=/*#__PURE__*/ ob(`httpApiStatus`),lW={_tag:`Json`,contentType:`application/json`},uW={_tag:`FormUrlEncoded`,contentType:`application/x-www-form-urlencoded`};function dW(e){return oW(e)??lW}function fW(e,t){return oW(e)||(Sk(t)?lW:uW)}function pW(e){let t=dW(e);if(t._tag===`Multipart`)throw Error(`Multipart is not supported in response`);return t}function mW(e){return cW(e)??200}function hW(e){return eW(e)?cW(e.ast)??mW(e.schema.ast):mW(e.ast)}function gW(e){return eW(e)&&oW(e.ast)===void 0?pW(e.schema.ast):pW(e.ast)}function _W(e){return cW(e)??500}function vW(e){return eW(e)?cW(e.ast)??_W(e.schema.ast):_W(e.ast)}function yW(e){let t=e.toLowerCase().trim(),n=t.indexOf(`;`);return n===-1?t:t.slice(0,n).trim()}const bW=`~effect/httpapi/HttpApiEndpoint`;function xW(e){let t=[];for(let{schemas:n}of e.payload.values())t.push(...n);return t}function SW(e){let t=Array.from(e.success);return oo(t)?t:[JU]}function CW(e){let t=new Set(e.error),n=e.disableCodecs?k:MW;for(let r of e.middlewares){let e=r;for(let r of e.error)t.add(n(r))}return Array.from(t)}const wW={[bW]:bW,pipe(){return Tn(this,arguments)},prefix(e){return EW({...TW(this),path:HM(this.path,e)})},middleware(e){return EW({...TW(this),middlewares:/* @__PURE__ */ new Set([...this.middlewares,e])})},annotate(e,t){return EW({...TW(this),annotations:ls(this.annotations,e,t)})},annotateMerge(e){return EW({...TW(this),annotations:bs(this.annotations,e)})}},TW=e=>({identifier:e.identifier,path:e.path,method:e.method,params:e.params,query:e.query,headers:e.headers,payload:e.payload,success:e.success,error:e.error,annotations:e.annotations,middlewares:e.middlewares,disableCodecs:e.disableCodecs});function EW(e){function t(){}return Object.setPrototypeOf(t,wW),Object.assign(t,e)}const DW=e=>(t,n,r)=>{let i=r?.disableCodecs??!1,a=i?k:VT;return EW({identifier:t,path:n,method:e,params:OW(r?.params,a),query:OW(r?.query,a),headers:OW(r?.headers,a),payload:kW(r?.payload,e,i),success:jW(r?.success,e,i),error:NW(r?.error,i),annotations:os(),middlewares:/* @__PURE__ */ new Set,disableCodecs:i})};function OW(e,t){if(e!==void 0)return Gw(e)?t(e):t(U(e))}function kW(e,t,n){let r=/* @__PURE__ */ new Map;if(e===void 0)return r;let i=Array.isArray(e)?e:Gw(e)?[e]:[U(e).pipe(iW())],a=n?k:UW;for(let e of i){let n=fW(e.ast,t),i=yW(n.contentType),o=r.get(i);if(o){if(o.encoding._tag!==n._tag)throw Error(`Multiple payload encodings for content-type: ${n.contentType}`);if(o.encoding._tag===`Multipart`)throw Error(`Multiple multipart payloads for content-type: ${n.contentType}`);o.schemas.push(a(e,t))}else r.set(i,{encoding:n,schemas:[a(e,t)]})}return r}const AW=`effect/httpapi/stream/failure`;function jW(e,t,n){if(e===void 0)return/* @__PURE__ */ new Set;let r=io(e);return PW(r,t),new Set(n?r:r.map(MW))}const MW=/*#__PURE__*/ Fn(e=>YU(e)?e:eW(e)?tW(e,YU(e.schema)?e.schema:HW(e.schema,gW(e)),VT(e.headers)):VW(e));function NW(e,t){if(e===void 0)return/* @__PURE__ */ new Set;let n=io(e);for(let e of n){let t=eW(e)?e.schema:e;if(YU(t))throw Error(`Streaming schemas are not supported in error responses`)}return IW(n,vW),new Set(t?n:n.map(MW))}function PW(e,t){let n=!1,r=/* @__PURE__ */ new Map;for(let i of e){let e=eW(i)?i.schema:i,a=hW(i);if(YU(e)){if(LW(e,t),n)throw Error(`Multiple streaming success responses are not supported`);n=!0;let i=FW(r,a);if(i.noContent)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);if(i.bufferedContentTypes.has(yW(e.contentType)))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`);r.set(a,{...i,stream:e})}else{let t=FW(r,a),n=aW(e.ast);if(t.stream!==void 0){if(n)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);let e=gW(i);if(yW(e.contentType)===yW(t.stream.contentType))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`)}n||t.bufferedContentTypes.add(yW(gW(i).contentType)),t.noContent=t.noContent||n}}IW(e,hW)}function FW(e,t){let n=e.get(t);return n===void 0&&(n={bufferedContentTypes:/* @__PURE__ */ new Set,noContent:!1},e.set(t,n)),n}function IW(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r),i=sW(r.ast),a=eW(r)?r.schema:i?.body??r,o=aW(a.ast)?``:yW(YU(a)?a.contentType:gW(r).contentType),s=n.get(e);s===void 0&&(s={headerContentType:void 0,plainContentTypes:/* @__PURE__ */ new Set},n.set(e,s));let c=()=>/* @__PURE__ */ Error(`Cannot combine a response with headers with another response for status ${e} and content-type: ${o||`<no content>`}`);if(eW(r)||i!==void 0){if(s.headerContentType!==void 0)throw Error(`Cannot declare multiple responses with headers for status ${e}`);if(s.plainContentTypes.has(o))throw c();s.headerContentType=o}else{if(s.headerContentType===o)throw c();s.plainContentTypes.add(o)}}}function LW(e,t){if(t===`HEAD`)throw Error(`HEAD endpoints cannot declare streaming success responses`);if(XU(e)&&RW(e.events.ast))throw Error(`SSE event name is reserved: ${AW}`)}function RW(e){return zW(qy(e),/* @__PURE__ */ new Set)}function zW(e,t){if(t.has(e))return!1;if(t.add(e),Dv(e))return e.types.some(e=>zW(e,t));if(Ov(e))return zW(e.thunk(),t);if(!Ev(e))return!1;let n=e.propertySignatures.find(e=>e.name===`event`);return n!==void 0&&BW(n.type,t)}function BW(e,t){if(t.has(e))return!1;t.add(e);let n=qy(e);return n===e?Cv(e)?e.literal===AW:Dv(e)?e.types.some(e=>BW(e,t)):Ov(e)?BW(e.thunk(),t):!1:BW(n,t)}function VW(e){let t=pW(e.ast),n=sW(e.ast);if(n===void 0)return HW(e,t);let r=Jw(n.headers);return U({body:HW(Jw(n.body),t),headers:r}).pipe(fT(e)).annotate({"~httpApiWithHeaders":{...n,headersCodec:VT(r)}})}function HW(e,t){switch(t._tag){case`Json`:return BT(e);case`FormUrlEncoded`:return VT(e);case`Text`:case`Uint8Array`:return e}}function UW(e,t){switch(fW(e.ast,t)._tag){case`Json`:return BT(e);case`FormUrlEncoded`:return VT(e);case`Text`:case`Uint8Array`:case`Multipart`:return e}}const WW=/*#__PURE__*/ DW(`POST`),GW=`~effect/httpapi/HttpApi`,KW={[GW]:GW,pipe(){return Tn(this,arguments)},add(...e){let t={...this.groups};for(let n of e)Hr(t,n.identifier,n);return JW({...qW(this),groups:t})},addHttpApi(e){let t={...this.groups};for(let n of Object.keys(e.groups)){let r=e.groups[n];Hr(t,n,r.annotateMerge(bs(e.annotations,r.annotations)))}return JW({...qW(this),groups:t})},prefix(e){return JW({...qW(this),groups:Xa(this.groups,t=>t.prefix(e))})},middleware(e){return JW({...qW(this),groups:Xa(this.groups,t=>t.middleware(e))})},annotate(e,t){return JW({...qW(this),annotations:ls(this.annotations,e,t)})},annotateMerge(e){return JW({...qW(this),annotations:bs(this.annotations,e)})}},qW=e=>({identifier:e.identifier,groups:e.groups,annotations:e.annotations}),JW=e=>{function t(){}return Object.setPrototypeOf(t,KW),Object.assign(t,e)},YW=e=>JW({identifier:e,groups:{},annotations:os()}),XW=(e,t)=>{let n=Object.values(e.groups);for(let r of n){let n=bs(e.annotations,r.annotations);t.onGroup({group:r,mergedAnnotations:n});let i=Object.values(r.endpoints);for(let e of i)(!t.predicate||t.predicate({endpoint:e,group:r}))&&t.onEndpoint({group:r,endpoint:e,middleware:e.middlewares,mergedAnnotations:bs(n,e.annotations),successes:ZW(SW(e),hW),errors:ZW(CW(e),vW)})}},ZW=(e,t)=>{let n=/* @__PURE__ */ new Map;return e.forEach(r),n;function r(e){let r=eW(e)?e.schema:e;if(YU(r))return;let i=t(e),a=n.get(i);a===void 0?n.set(i,[e]):a.push(e)}};var QW=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/HttpApi/AdditionalSchemas`)){},$W=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/HttpApi/ParseOptions`)){};const eG=/*#__PURE__*/ sj({status:400}),tG=`~effect/httpapi/HttpApiError/HttpApiSchemaError`;var nG=class e extends (/*#__PURE__*/ tte(`HttpApiSchemaError`)){[tG]=tG;static is(e){return A(e,tG)}static wrap(t,n){return vg(n,n=>new e({kind:t,cause:n}))}name=`HttpApiSchemaError`;message=this.kind;[zj](){return M(eG)}};const rG=`~effect/httpapi/HttpApiMiddleware`,iG=`~effect/httpapi/HttpApiMiddleware/Security`,aG=e=>A(e,iG),oG=()=>(e,t)=>{let n=ii(),r;n!==0&&(ai(2),r=new globalThis.Error,ai(n));class i extends Wo()(e){}let a=i;if(Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[rG]=rG,a.error=sG(t?.error),a.requiredForClient=t?.requiredForClient??!1,t?.security!==void 0){if(Object.keys(t.security).length===0)throw Error(`HttpApiMiddleware.Service: security object must not be empty`);a[iG]=iG,a.security=t.security}return a};function sG(e){return e===void 0?/* @__PURE__ */ new Set:new Set(Array.isArray(e)?e:[e])}const cG=(e,t)=>zp(e,(e,n)=>ih(e,e=>nG.is(e)?t(e,n):F(e))),lG=/*#__PURE__*/ new Set;function uG(e){if(e===void 0)return lG;let t=jy(e.ast);return Ev(t)&&t.indexSignatures.length===0?new Set(t.propertySignatures.map(e=>String(e.name))):void 0}function dG(e,t){if(t===void 0||!e.includes(`:`))return e;let n=uG(t);if(n===void 0)return e;let r=``,i=0,a=-1;for(let t=0;t<e.length;t++){let o=e[t];if(i>0||t===a){r+=o,o===`\\`?r+=e[++t]??``:o===`(`?i++:o===`)`&&i--;continue}if(o!==`:`){r+=o;continue}if(e[t+1]===`:`){r+=`::`,t++;continue}let s=/^:(\w+)/.exec(e.slice(t));if(s!==null&&n.has(s[1])){r+=s[0],t+=s[0].length-1;let n=e[t+1];n===`(`?a=t+1:n!==void 0&&!`/.-?`.includes(n)&&(r+=`(.*?)`)}else r+=`::`}return r}var fG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Identifier`)){},pG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Title`)){},mG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Version`)){},hG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Description`)){},gG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/License`)){},_G=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/ExternalDocs`)){},vG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Servers`)){},yG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Format`)){},bG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Summary`)){},xG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Deprecated`)){},SG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Override`)){};const CG=/*#__PURE__*/ Cs(`effect/httpapi/OpenApi/Exclude`,{defaultValue:An});var wG=class extends (/*#__PURE__*/ Wo()(`effect/httpapi/OpenApi/Transform`)){};const TG={},EG=/*#__PURE__*/ new WeakMap,DG=e=>{if(Array.isArray(e))return e.map(DG);if(typeof e==`object`&&e&&!Object.isFrozen(e)){let t={};for(let n of Object.keys(e))Hr(t,n,DG(e[n]));return t}return e};function OG(e,t,n){let r=ys(e,t);Aa(r)&&n(r.value)}function kG(e,t){let n=t??TG,r=EG.get(n);r===void 0&&(r=/* @__PURE__ */ new WeakMap,EG.set(n,r));let i=r.get(e);if(i!==void 0)return DG(i);let a=AG(e,n);return r.set(e,DG(a)),a}function AG(e,t){let n={openapi:`3.1.0`,info:{title:`Api`,version:`0.0.1`},paths:{},components:{schemas:{},securitySchemes:{}},security:[],tags:[]},r=[],i=/* @__PURE__ */ new Set,a=/* @__PURE__ */ new Set,o=[];OG(e.annotations,pG,e=>{n.info.title=e}),OG(e.annotations,mG,e=>{n.info.version=e}),OG(e.annotations,hG,e=>{n.info.description=e}),OG(e.annotations,gG,e=>{n.info.license=e}),OG(e.annotations,bG,e=>{n.info.summary=e}),OG(e.annotations,vG,e=>{n.servers=[...e]}),XW(e,{onGroup({group:e}){if(hs(e.annotations,CG))return;let t={name:ds(e.annotations,pG,()=>e.identifier)};OG(e.annotations,hG,e=>{t.description=e}),OG(e.annotations,_G,e=>{t.externalDocs=e}),OG(e.annotations,SG,e=>{for(let[n,r]of Object.entries(e))Hr(t,n,r)}),OG(e.annotations,wG,e=>{t=e(t)}),n.tags.push(t)},onEndpoint({endpoint:e,group:t,mergedAnnotations:s,middleware:c}){if(hs(s,CG))return;let l={tags:[ds(t.annotations,pG,()=>t.identifier)],operationId:ds(e.annotations,fG,()=>t.topLevel?e.identifier:`${t.identifier}.${e.identifier}`),parameters:[],security:[],responses:{}},u=uG(e.params),d=e.path.replace(/:(\w+)\??/g,(e,t)=>u===void 0||u.has(t)?`{${t}}`:e),f=e.method.toLowerCase(),p=f===`query`,m=p?`QUERY`:f,h=p?[`paths`,d,`x-oai-additionalOperations`,m]:[`paths`,d,m];function g(e,t){for(let[n,{content:i,descriptions:a,headers:o,streamContent:s}]of e){let e=a.size>0?Array.from(a).join(` | `):t();Hr(l.responses,n,{description:e});for(let e of o){let t=jy(e.ast);if(Ev(t))for(let e of t.propertySignatures){let t=String(e.name).toLowerCase();t!==`content-type`&&(l.responses[n].headers??={},Hr(l.responses[n].headers,t,{schema:{},required:!Wy(e.type)}),r.push({_tag:`parameter`,ast:e.type,path:[...h,`responses`,String(n),`headers`,t,`schema`]}))}}i!==void 0&&i.forEach((e,t)=>{e.forEach((e,i)=>{let a=Array.from(e,sy),o=a.length===1?a[0]:new gy(a);r.push({_tag:`schema`,ast:IG(o,t),path:[...h,`responses`,String(n),`content`,i,`schema`]}),l.responses[n].content??={},Hr(l.responses[n].content,i,{schema:{}})})}),s!==void 0&&s.forEach((e,t)=>{l.responses[n].content??={},XU(e)?(r.push({_tag:`schema`,ast:sy(e.events),path:[...h,`responses`,String(n),`content`,t,`schema`]}),r.push({_tag:`schema`,ast:sy(BT(AT(e.error,TT()))),path:[...h,`responses`,String(n),`content`,t,`x-effect-stream`,`causeSchema`]}),r.push({_tag:`schema`,ast:sy(e.error),path:[...h,`responses`,String(n),`content`,t,`x-effect-stream`,`errorSchema`]}),Hr(l.responses[n].content,t,{schema:{},"x-effect-stream":{encoding:`sse`,causeSchema:{},errorSchema:{},failureEvent:jG}})):Hr(l.responses[n].content,t,{schema:{type:`string`,format:`binary`},"x-effect-stream":{encoding:`uint8array`}})})}}function _(e,t){if(e){let n=jy(e.ast);if(Ev(n))for(let e of n.propertySignatures)l.parameters.push({name:String(e.name),in:t,schema:{},required:t===`path`||!Wy(e.type)}),r.push({_tag:`parameter`,ast:e.type,path:[...h,`parameters`,String(l.parameters.length-1),`schema`]})}}OG(e.annotations,hG,e=>{l.description=e}),OG(e.annotations,bG,e=>{l.summary=e}),OG(e.annotations,xG,e=>{l.deprecated=e}),OG(e.annotations,_G,e=>{l.externalDocs=e}),c.forEach(e=>{if(aG(e))for(let[t,n]of Object.entries(e.security))v(t,n),l.security.push({[t]:[]})});function v(e,t){let r=RG(t);if(!Object.hasOwn(n.components.securitySchemes,e)){Hr(n.components.securitySchemes,e,r);return}if(!yr(zG(n.components.securitySchemes[e]),zG(r)))throw new globalThis.Error(`Conflicting OpenAPI security scheme: ${e}`)}let y=Sk(e.method);if(y){let t=/* @__PURE__ */ new Map;for(let n of xW(e)){if(aW(n.ast))continue;let r=fW(n.ast,e.method),i=t.get(r.contentType);i===void 0?t.set(r.contentType,{encoding:r,schemas:[n]}):i.schemas.push(n)}if(t.size>0){let e={};for(let[n,{encoding:i,schemas:a}]of t){let t=a.map(sy),o=t.length===1?t[0]:new gy(t);r.push({_tag:`schema`,ast:IG(o,i._tag),path:[...h,`requestBody`,`content`,n,`schema`]}),Hr(e,n,{schema:{}})}l.requestBody={content:e,required:!0}}}if(_(e.params,`path`),!y&&e.payload.size===1){let t=e.payload.values().next().value;_(t.schemas[0],`query`)}_(e.headers,`header`),_(e.query,`query`),g(MG(e),()=>`Success`),g(NG(CW(e),vW,PG),()=>`Error`);let b=`${f} ${d.replace(/\{[^}]+\}/g,`{}`)}`;if(i.has(b))throw new globalThis.Error(`Duplicate OpenAPI operation for ${e.method} ${d}`);i.add(b),Object.hasOwn(n.paths,d)||Hr(n.paths,d,{});let x=()=>{let e=n.paths[d];return p?e[`x-oai-additionalOperations`]??={}:e};x()[m]=l,o.push(()=>{let t=x(),n=t[m];OG(e.annotations,SG,e=>{for(let[t,r]of Object.entries(e))Hr(n,t,r)}),OG(e.annotations,wG,e=>{n=e(n)});let r=n.operationId;if(r!==void 0){if(a.has(r))throw new globalThis.Error(`Duplicate OpenAPI operationId: ${r}`);a.add(r)}t[m]=n})}}),OG(e.annotations,QW,e=>{e.forEach(e=>{let t=sb(e.ast);if(t!==void 0){if(Object.hasOwn(n.components.schemas,t))throw new globalThis.Error(`Duplicate component schema identifier: ${t}`);Hr(n.components.schemas,t,{}),r.push({_tag:`schema`,ast:e.ast,path:[`components`,`schemas`,t]})}})});function s(e){return`/`+e.map(hS).join(`/`)}if(oo(r)){let e=SS(QS(nC(go(r,e=>MS(e.ast)),t),{onExcessProperty:`error`})),i=r.map((t,n)=>({op:`replace`,path:s(t.path),value:e.schemas[n]}));Object.entries(e.definitions).forEach(([e,t])=>{i.push({op:`add`,path:s([`components`,`schemas`,e]),value:t})}),n=rC(i,n)}for(let e of o)e();return Object.keys(n.components.schemas).forEach(e=>{if(!CS.test(e))throw new globalThis.Error(`Invalid component schema key: ${e}`)}),OG(e.annotations,SG,e=>{for(let[t,r]of Object.entries(e))Hr(n,t,r)}),OG(e.annotations,wG,e=>{n=e(n)}),n}const jG=`effect/httpapi/stream/failure`;function MG(e){return NG(SW(e),hW,PG)}function NG(e,t,n){let r=/* @__PURE__ */ new Map;return e.forEach(i),r;function i(e){let i=sW(e.ast),c=eW(e)?e.schema:i?.body??e,l=eW(e)?e.headers:i?.headersCodec,u=t(e),d=c.ast;YU(c)?s(c,u):aW(d)?a(u,n(e.ast)??n(d)??`<No Content>`):o(c,u,gW(e),n(e.ast)??n(d)),l!==void 0&&r.get(u).headers.push(l)}function a(e,t){let n=r.get(e);n===void 0?r.set(e,{descriptions:/* @__PURE__ */ new Set([t]),content:void 0,headers:[],streamContent:void 0}):t!==void 0&&n.descriptions.add(t)}function o(e,t,n,i){let a=r.get(t),{_tag:o,contentType:s}=n;if(a===void 0)r.set(t,{descriptions:new Set(i===void 0?[]:[i]),content:/* @__PURE__ */ new Map([[o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]])]]),headers:[],streamContent:void 0});else if(i!==void 0&&a.descriptions.add(i),a.content===void 0)a.content=/* @__PURE__ */ new Map([[o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]])]]);else{let t=a.content.get(o);if(t===void 0)a.content.set(o,/* @__PURE__ */ new Map([[s,/* @__PURE__ */ new Set([e])]]));else{let n=t.get(s);n===void 0?t.set(s,/* @__PURE__ */ new Set([e])):n.add(e)}}}function s(e,t){let n=r.get(t);n===void 0?r.set(t,{descriptions:/* @__PURE__ */ new Set,content:void 0,headers:[],streamContent:/* @__PURE__ */ new Map([[e.contentType,e]])}):n.streamContent===void 0?n.streamContent=/* @__PURE__ */ new Map([[e.contentType,e]]):n.streamContent.set(e.contentType,e)}}function PG(e){return cb(e)??sb(e)}const FG=/*#__PURE__*/ V.annotate({format:`binary`});function IG(e,t){switch(t){case`Uint8Array`:return FG.ast;case`Text`:return V.ast;case`FormUrlEncoded`:case`Json`:return e;case`Multipart`:return LG(e)}}function LG(e){return xv(e)&&e.annotations?.representation?.id===`effect/http/PersistedFile`?FG.ast:typeof e?.recur==`function`?e.recur(LG):e}const RG=e=>{let t={};switch(OG(e.annotations,hG,e=>{t.description=e}),e._tag){case`Basic`:return{...t,type:`http`,scheme:`basic`};case`Http`:{let n=ys(e.annotations,yG).pipe(La(e=>({bearerFormat:e})),Fa);return{...t,type:`http`,scheme:e.scheme,...n}}case`ApiKey`:return{...t,type:`apiKey`,name:e.key,in:e.in}}},zG=e=>e.type===`http`?{...e,scheme:e.scheme.toLowerCase()}:e.in===`header`?{...e,name:e.name.toLowerCase()}:e,BG=(e,t)=>IM(z(function*(n){let r=yield*Th(),i=[],a=Array.from(r.mapUnsafe.keys()).filter(e=>e.startsWith(`effect/httpapi/HttpApiGroup/`)),o=Object.values(e.groups);for(let e of o){let t=r.mapUnsafe.get(e.key)?.routes;if(t===void 0){let t=a.length===0?`none`:a.join(`, `);return yield*Wm(`HttpApiGroup "${e.identifier}" not found (key: "${e.key}"). Did you forget to provide HttpApiBuilder.group(api, "${e.identifier}", ...)? Available groups: ${t}`)}i.push(...t)}if(yield*n.addAll(i),t?.openapiPath){let r=Fn(e=>pj(kG(e)));yield*n.add(`GET`,t.openapiPath,N(()=>r(e)))}})),VG=(e,t,n)=>Wp(Vm(function*(){let r=(yield*Th()).pipe(Ss(xp)),i=e.groups[t],a=n(JG(i)),o=Am(a)?yield*a:a,s=[];for(let t of o.handlers.values())s.push(QG(e,i,t,r));return ts(/* @__PURE__ */ new Map([[i.key,{routes:s,handlers:o.handlers}]]))})),HG=`~effect/httpapi/HttpApiBuilder/Handlers`,UG=e=>{switch(e._tag){case`Http`:return L(wM,t=>xC(GG(t.headers.authorization,e.scheme)??``));case`ApiKey`:{let t=e.in===`header`?e.key.toLowerCase():e.key,n=U({[t]:V}),r=e.in===`query`?Ase(n):e.in===`cookie`?Ose(n):kse(n);return xh(r,{onFailure:()=>xC(``),onSuccess:e=>xC(e[t])})}case`Basic`:{let e={username:``,password:xC(``)};return L(wM,t=>{let n=GG(t.headers.authorization,WG);if(n===void 0)return e;let r=ete(rte(n));if(r===void 0)return e;let i=r.indexOf(`:`);return i===-1?e:{username:r.slice(0,i),password:xC(r.slice(i+1))}})}}},WG=`Basic`;function GG(e,t){let n=t.length;if(e===void 0||e.length<=n||e.charCodeAt(n)!==32||e.slice(0,n).toLowerCase()!==t.toLowerCase())return;let r=n+1;for(;e.charCodeAt(r)===32;)r++;return r===e.length?void 0:e.slice(r)}const KG=(e,t,n,r,i)=>{if(!Object.hasOwn(e.group.endpoints,t))throw Error(`HttpApiEndpoint "${t}" not found in HttpApiGroup "${e.group.identifier}"`);if(e.handlers.has(t))throw Error(`Handler for HttpApiEndpoint "${t}" is already registered in HttpApiGroup "${e.group.identifier}"`);let a=e.group.endpoints[t];return e.handlers.set(t,{endpoint:a,handler:n,isRaw:r,uninterruptible:i?.uninterruptible??!1}),e},qG={[HG]:HG,pipe(){return Tn(this,arguments)},handle(e,t,n){return KG(this,e,t,!1,n)},handleAll(e){for(let[t,n]of Object.entries(e)){let e=typeof n==`function`?n:n.handler,r=typeof n==`function`?void 0:n.options;KG(this,t,e,!1,r)}return this},handleRaw(e,t,n){return KG(this,e,t,!0,n)}},JG=e=>{let t=Object.create(qG);return t.group=e,t.handlers=/* @__PURE__ */ new Map,t};function YG(e,t){let n=/* @__PURE__ */ new Map;return e.forEach(({encoding:e,schemas:r},i)=>{let a=Pw(G(r),t);e._tag===`Multipart`?n.set(i,{_tag:`Multipart`,mode:e.mode,limits:e.limits,decode:a}):n.set(i,{_tag:e._tag,decode:a,nullOnEmpty:r.some(e=>_re(qy(e.ast)))})}),n}function XG(e,t,n){let r=Sk(t.method),i=r?yW(t.headers[`content-type`]??`application/json`):`application/x-www-form-urlencoded`,a=e.get(i);if(!a)return dj(`Unsupported content-type: ${i}`,{status:415});let{_tag:o,decode:s}=a;switch(o){case`Multipart`:if(a.mode===`buffered`){let e=lh(t.multipart);return a.limits&&(e=Oh(e,vM(a.limits))),I(e,s)}return M(a.limits?BE(t.multipartStream,vM(a.limits)):t.multipartStream);case`Json`:return I(lh(t.text),e=>{if(e===``)return s(a.nullOnEmpty?null:void 0);try{return s(JSON.parse(e))}catch{return F(new Dw(new Qg({message:`Expected a valid JSON body`})))}});case`Text`:return I(lh(t.text),s);case`FormUrlEncoded`:{let e=r?L(lh(t.urlParamsBody),Cw):M(n);return I(e,s)}case`Uint8Array`:return I(L(lh(t.arrayBuffer),e=>new Uint8Array(e)),s)}}function ZG(e,t,n,r,i,a){let o=bs(bs(e.annotations,t.annotations),n.annotations),s=fs(o,$W),c=e=>Pw(e,s),l=Bw(vK(n),s),u=Bw(yK(n),s),d=FO(n.params,c),f=FO(n.headers,c),p=FO(n.query,e=>c(joe(e))),m=sK(n,s),h=oK(n,s),g=n.payload.size>0&&!a?YG(n.payload,s):void 0;return $G(t,n,r,Vm(function*(){let e=Sb().context,r=ms(e,wM),a=ms(e,FM),o=ms(e,TM),s={request:r,endpoint:n,group:t};if(d&&(s.params=yield*nG.wrap(`Params`,d(a.params))),f&&(s.headers=yield*nG.wrap(`Headers`,f(r.headers))),p&&(s.query=yield*nG.wrap(`Query`,p(o))),g){let e=XG(g,r,o);if(oj(e))return e;e!==void 0&&(s.payload=yield*nG.wrap(`Payload`,e))}let c=yield*i(s);if(oj(c))return c;let u;h!==void 0&&$U(c)&&(u=c.headers,c=c.body);let _=yield*nG.wrap(`Body`,m?.(c,e)??(u===void 0?l(c):h.encodeBody(c)));if(h===void 0||u===void 0)return _;let v=yield*nG.wrap(`ResponseHeaders`,h.encodeHeaders.get(_.status)(u));return yj(_,v)})).pipe(mh,ih(e=>nG.is(e)?Wm(e):lh(u(e))),Oh(r))}function QG(e,t,n,r){let i=n.endpoint;return BM(i.method,dG(i.path,i.params),ZG(e,t,i,r,n.handler,n.isRaw),{uninterruptible:n.uninterruptible})}const $G=(e,t,n,r)=>{let i={group:e,endpoint:t};for(let e of t.middlewares){let t=e,a=ms(n,t);r=(aG(t)?tK(t,a):a)(r,i)}return r},eK=/*#__PURE__*/ new WeakMap,tK=(e,t)=>{let n=eK.get(t);if(n!==void 0)return n;let r=Object.entries(e.security).map(([e,n])=>({decode:UG(n),middleware:t[e]}));if(r.length===0)return k;let i=z(function*(e,t){e=R(e,e=>new rK(e));let n;for(let i=0;i<r.length;i++){let{decode:a,middleware:o}=r[i],s=yield*$m(I(a,n=>o(e,{credential:n,endpoint:t.endpoint,group:t.group})));if(Ha(s)){if(iK(s.failure))return yield*F(s.failure.error);n=s;continue}return s.success}return yield*Jm(n)});return eK.set(t,i),i},nK=`~effect/httpapi/HttpApiBuilder/HandlerError`;var rK=class{[nK]=nK;error;constructor(e){this.error=e}};const iK=e=>A(e,nK),aK=/*#__PURE__*/ Ew(oj);function oK(e,t){let n=/* @__PURE__ */ new Map,r=[];for(let i of e.success)eW(i)&&(n.set(hW(i),Bw(i.headers,t)),YU(i.schema)||r.push(hK(i)));return n.size===0?void 0:{encodeBody:Bw(r.length===0?Xw:r.length===1?r[0]:G(r),t),encodeHeaders:n}}function sK(e,t){let n=cK(e);if(n===void 0)return;let r=n.body,i=lK(e),a=hW(n.schema),o=r.contentType;if(ZU(r))return(e,t)=>oE(e)?M(gj(BE(e,t),{status:a,contentType:o})):i?void 0:new Dw(new Qg({message:`Expected a streaming response`}));let s=uK(r,t);return(e,t)=>oE(e)?M(gj(BE(dK(e,s),t),{status:a,contentType:o})):i?void 0:new Dw(new Qg({message:`Expected a streaming response`}))}function cK(e){for(let t of e.success){let e=eW(t)?t.schema:t;if(YU(e))return{schema:t,body:e}}}function lK(e){for(let t of e.success){let e=eW(t)?t.schema:t;if(Gw(e)&&!YU(e))return!0}return e.success.size===0}function uK(e,t){let n=BT(AT(e.error,TT()));return{sseMode:e.sseMode,encodeEvents:Bw(W(e.events),t),encodeCause:Bw(ET(n),t)}}function dK(e,t){return e.pipe(t.sseMode===`data`?SE(e=>({id:void 0,event:`message`,data:e})):k,wE(e=>lh(t.encodeEvents(e))),kE(e=>cE(fK(e,t))),SE(mK),IE)}function fK(e,t){return t.encodeCause(e).pipe(lh,L(e=>({id:void 0,event:pK,data:e})))}const pK=`effect/httpapi/stream/failure`;function mK(e){return KU.write({_tag:`Event`,event:e.event,id:e.id,data:e.data})}const hK=/*#__PURE__*/ bK(hW),gK=/*#__PURE__*/ bK(vW);function _K(e){if(!eW(e))return gK(e);let t=Bw(e.schema),n=Bw(e.headers),r=CK(vW(e),gW(e),aW(e.schema.ast)),i=SK((e,n)=>t(e,n).pipe(R(e=>e.issue),I(e=>r(e,n))),n);return aK.pipe(fT(e,i))}function vK(e){let t=SW(e).map(hK);return t.length===1?t[0]:G(t)}function yK(e){let t=CW(e).map(_K);return t.length===0?Xw:t.length===1?t[0]:G(t)}function bK(e){let t=/* @__PURE__ */ new WeakMap;return n=>{let r=eW(n)?n:n.ast,i=t.get(r);if(i!==void 0)return i;let a=eW(n)?n.schema:n,o=aK.pipe(fT(a,xK(e,n)));return t.set(r,o),o}}function xK(e,t){let n=sW(t.ast);if(n!==void 0)return SK(CK(e(n.body),pW(n.body.ast),aW(n.body.ast)),Bw(n.headersCodec));let r=eW(t)?t.schema:t;return pv({decode:(e,t)=>F(new e_({message:`Encode only schema`},e,t)),encode:CK(e(t),gW(t),aW(r.ast))})}function SK(e,t){return pv({decode:(e,t)=>F(new e_({message:`Encode only schema`},e,t)),encode:(n,r)=>{let i=n;return I(e(i.body,r),e=>L(t(i.headers,r).pipe(R(e=>e.issue)),t=>yj(e,t)))}})}function CK(e,t,n){switch(t._tag){case`Json`:return(r,i)=>{if(r===void 0||n)return M(sj({status:e}));try{let n=JSON.stringify(r);return M(dj(n,{status:e,contentType:t.contentType}))}catch{return F(new Qg({expected:`a JSON-serializable response body`},r,i))}};case`Text`:return n=>M(dj(n,{status:e,contentType:t.contentType}));case`Uint8Array`:return n=>M(lj(n,{status:e,contentType:t.contentType}));case`FormUrlEncoded`:return n=>M(mj(n,{status:e}).pipe(_j(`content-type`,t.contentType)))}}const wK=`~effect/httpapi/HttpApiGroup`,TK={[wK]:wK,add(...e){let t={...this.endpoints};for(let n of e)Hr(t,n.identifier,n);return DK({...EK(this),endpoints:t})},prefix(e){return DK({...EK(this),endpoints:Xa(this.endpoints,t=>t.prefix(e))})},middleware(e){return DK({...EK(this),endpoints:Xa(this.endpoints,t=>t.middleware(e))})},annotateMerge(e){return DK({...EK(this),annotations:bs(this.annotations,e)})},annotate(e,t){return DK({...EK(this),annotations:ls(this.annotations,e,t)})},annotateEndpointsMerge(e){return DK({...EK(this),endpoints:Xa(this.endpoints,t=>t.annotateMerge(e))})},annotateEndpoints(e,t){return DK({...EK(this),endpoints:Xa(this.endpoints,n=>n.annotate(e,t))})},pipe(){return Tn(this,arguments)}},EK=e=>({identifier:e.identifier,topLevel:e.topLevel,endpoints:e.endpoints,annotations:e.annotations}),DK=e=>{function t(){}return Object.setPrototypeOf(t,TK),t.key=`effect/httpapi/HttpApiGroup/${e.identifier}`,Object.assign(t,e)},OK=(e,t)=>DK({identifier:e,topLevel:t?.topLevel??!1,endpoints:{},annotations:os()}),kK=e=>e.actions.filter(e=>e.http),AK=(e,t,n)=>WW(n.name,`${e.apiPath}/${t.name}/${n.name}`,{payload:n.input,success:n.success,error:LU(n,e.errors)}).annotate(hG,n.description),jK=(e,t)=>{class n extends oG()(`effect-actions/http/SchemaErrors/${e}`,{error:t.errors}){}return{SchemaErrors:n,layer:cG(n,e=>F(t.map(e)))}},MK=e=>{class t extends oG()(`effect-actions/http/Admission/${e}`){}let n=(e,t)=>{if(t===void 0)return e=>e;let n=new Map(kK(e).map(e=>[e.name,e]));return(e,{endpoint:r})=>{let i=n.get(r.identifier);if(i===void 0)throw Error(`Missing action: ${r.identifier}`);return I(t(i),()=>e)}};return{Admission:t,layer:(e,r)=>zp(t,n(e,r))}};function NK(e,t){let[n,...r]=kK(t).map(n=>AK(e,t,n));if(n===void 0)return;let i=OK(t.name).add(n,...r),a=MK(t.name);if(t.schemaError===void 0)return{native:i.middleware(a.Admission),middleware:e=>a.layer(t,e)};let o=jK(t.name,t.schemaError);return{native:i.middleware(o.SchemaErrors).middleware(a.Admission),middleware:e=>Xp(o.layer,a.layer(t,e))}}function PK(e){let[t,...n]=e,r=YW(`actions`).annotate($W,{errors:`all`});return t===void 0?r:r.add(t,...n)}const FK=e=>e,IK=(e,t,n)=>{let r=e=>Object.fromEntries(kK(t.group).map(n=>[n.name,r=>WU(t.group,n,e,void 0)(r.payload)]));return qp(L(t.build,n=>VG(e,t.group.name,e=>e.handleAll(r(FK(n)))))).pipe(Qp(n))},LK=UM(e=>MM(e,(e,t)=>M(t.status<400?t:_j(t,`cache-control`,`no-store`))));function RK(e,...t){BU(`action group`,t.map(e=>e.name));let n=new Map(t.flatMap(t=>{let n=NK(e,t);return n===void 0?[]:[[t,n]]})),r=(e,...r)=>{BU(`implementation group`,r.map(e=>e.group.name));for(let e of r)if(!t.includes(e.group))throw Error(`Implementation of group "${e.group.name}" is not served by this adapter`);let i=r.flatMap(e=>{let t=n.get(e.group);return t===void 0?[]:[{app:e,...t}]}),a=PK(i.map(({native:e})=>e)),o=e.before;return i.reduce((e,{app:t,middleware:n})=>e.pipe(Qp(IK(a,t,n(o)))),BG(a)).pipe(Qp(LK.layer))};return{groups:t,api:PK([...n.values()].map(({native:e})=>e)),layer:r}}var zK=class extends RT()(`BadRequest`,{error:V},{httpApiStatus:400}){},BK=class extends RT()(`Unauthorized`,{error:V},{httpApiStatus:401}){},VK=class extends RT()(`Forbidden`,{error:V},{httpApiStatus:403}){},HK=class extends RT()(`NotFound`,{error:V},{httpApiStatus:404}){},UK=class extends RT()(`Conflict`,{error:V},{httpApiStatus:409}){},WK=class extends RT()(`TooManyRequests`,{error:V},{httpApiStatus:429}){},GK=class extends RT()(`InternalServerError`,{error:V},{httpApiStatus:500}){},KK=class extends RT()(`ServiceUnavailable`,{error:V},{httpApiStatus:503}){};const qK=[zK,BK,VK,HK,UK,WK,GK,KK],JK=U({email:V,password:V}),YK=lT([`none`,`client_secret_basic`,`client_secret_post`]),XK=lT([`web`,`native`]),ZK=U({client_name:V,redirect_uris:W(V),resources:W(V),token_endpoint_auth_method:YK,application_type:XK}),QK=U({client_id:V,client_name:V,redirect_uris:W(V),application_type:XK}),$K=U({client_id:V}),eq=U({client_id:V,blocked:H}),tq=U({onboarding:qw(lT([`managed`,`dcr`,`cimd`])),blocked:qw(H),client_id:V,client_name:qw(V),redirect_uris:W(V),token_endpoint_auth_method:qw(V),application_type:qw(uT(V)),scope:qw(V),grant_types:qw(W(V))}),nq=tq.pipe(nT({client_secret:qw(V),client_secret_expires_at:qw($w)})),rq=U({identifier:V,name:V,scopes:W(V)}),iq=rq.pipe(nT({builtIn:H})),aq=U({identifier:V}),oq=U({client_id:V,resource:V}),sq=U({client_id:V,resources:W(V)}),cq=U({clientAccess:W(oq)}),lq=rT(V,W(V)),uq=U({name:V,permissions:lq,expiresAt:uT(V)}),dq=U({keyId:V}),fq=U({keyId:V,name:qw(V),permissions:qw(lq),enabled:qw(H)}),pq=U({keyId:V,name:V,enabled:H,permissions:lq,expiresAt:uT(V),createdAt:V}),mq={errors:[zK,GK],map:e=>e.kind===`Body`||e.kind===`ResponseHeaders`?new GK({error:`Request could not be completed`}):new zK({error:`Invalid request`})},hq=GU({name:`issuer`,errors:qK,schemaError:mq},HU(`setupStatus`,{description:`Check whether the issuer needs its first owner account.`,access:`read`,success:U({required:H}),mcp:!1}),HU(`setupOwner`,{description:`Create the first owner account.`,access:`write`,input:JK,success:U({created:H}).pipe(qU(201)),mcp:!1}),HU(`verifyApiKey`,{description:`Verify the bearer API key against one resource and return its granted scopes.`,access:`read`,input:U({resource:V}),success:U({keyId:V,ownerId:V,resource:V,scopes:W(V),expiresAt:uT(V)}),mcp:!1})),gq=U({clients:W(tq),resources:W(iq),clientAccess:W(oq),email:V,issuer:V}),_q=GU({name:`administration`,errors:qK,schemaError:mq},HU(`listClients`,{description:`List clients, resources and access grants.`,access:`read`,success:gq}),HU(`createClient`,{description:`Register a first-party OAuth client. Returns its secret once when confidential.`,access:`write`,input:ZK,success:nq.pipe(qU(201))}),HU(`updateClient`,{description:`Rename a first-party client or change its redirect URIs and application type.`,access:`write`,input:QK,success:tq}),HU(`deleteClient`,{description:`Delete a first-party OAuth client.`,access:`write`,input:$K,success:U({deleted:H})}),HU(`revokeClient`,{description:`Revoke a client’s authorization grants.`,access:`write`,input:$K,success:U({revoked:H})}),HU(`blockClient`,{description:`Block or unblock OAuth authorization for a client.`,access:`write`,input:eq,success:U({blocked:H})}),HU(`rotateClientSecret`,{description:`Rotate a confidential client secret. Returns the new secret once.`,access:`write`,input:$K,success:nq}),HU(`setClientAccess`,{description:`Set the resources a client may request.`,access:`write`,input:sq,success:cq}),HU(`createResource`,{description:`Create an OAuth resource and its scopes.`,access:`write`,input:rq,success:rq.pipe(qU(201))}),HU(`updateResource`,{description:`Update an OAuth resource and its scopes.`,access:`write`,input:rq,success:rq}),HU(`deleteResource`,{description:`Delete a resource and its client-resource links. Stored authorization grants and API-key permissions are retained; recreating the resource can restore access.`,access:`write`,input:aq,success:U({deleted:H})}),HU(`listApiKeys`,{description:`List API key metadata without secret values.`,access:`read`,success:U({keys:W(pq)})}),HU(`createApiKey`,{description:`Create a scoped API key. Returns its secret once.`,access:`write`,input:uq,success:pq.pipe(nT({key:V}),qU(201))}),HU(`updateApiKey`,{description:`Update an API key’s name, permissions or enabled state.`,access:`write`,input:fq,success:pq}),HU(`deleteApiKey`,{description:`Delete an API key.`,access:`write`,input:dq,success:U({deleted:H})})),vq=RK({apiPath:`/api`},_q,hq);vq.api;const yq=e=>qK.some(t=>Nw(t)(e)),bq=Iw(U({message:Kw(V),error_description:Kw(V)}));function xq(e){if(yq(e))return e;if(AN(e)){let t={error:Ma(Ra(bq(e.body),e=>Na(e.message??e.error_description)),()=>`Request could not be completed`)};switch(e.statusCode){case 400:case 422:return new zK(t);case 401:case 403:return new VK(t);case 404:return new HK(t);case 409:return new UK(t);case 429:return new WK(t);case 503:return new KK(t)}}return new GK({error:`Request could not be completed`})}const Sq=e=>Fm({try:e,catch:xq}),Cq=fj(G(qK)),wq=(e,t={})=>{let n=qK.find(t=>Nw(t)(e));return n===void 0?Wm(/* @__PURE__ */ Error(`Undeclared API error`)):Cq(e,{status:ob(`httpApiStatus`)(n.ast)??500,headers:t}).pipe(lh)};var Tq=/* @__PURE__ */ $t({NodeSqliteDialect:()=>Mq}),Eq=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},Dq=class{#e;#t=new kq;#n;#r;constructor(e){this.#e={...e}}async init(){this.#n=this.#e.database,this.#r=new Oq(this.#n),this.#e.onCreateConnection&&await this.#e.onCreateConnection(this.#r)}async acquireConnection(){return await this.#t.lock(),this.#r}async beginTransaction(e){await e.executeQuery(Qt.raw(`begin`))}async commitTransaction(e){await e.executeQuery(Qt.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(Qt.raw(`rollback`))}async releaseConnection(){this.#t.unlock()}async destroy(){this.#n?.close()}},Oq=class{#e;constructor(e){this.#e=e}executeQuery(e){let{sql:t,parameters:n}=e,r=this.#e.prepare(t),i=n;if(r.columns().length>0)return Promise.resolve({rows:r.all(...i)});let{changes:a,lastInsertRowid:o}=r.run(...i);return Promise.resolve({rows:[],numAffectedRows:BigInt(a),insertId:typeof o==`bigint`?o:BigInt(o)})}async*streamQuery(){throw Error(`Streaming query is not supported by SQLite driver.`)}},kq=class{#e;#t;async lock(){for(;this.#e!==void 0;)await this.#e;this.#e=new Promise(e=>{this.#t=e})}unlock(){let e=this.#t;this.#e=void 0,this.#t=void 0,e?.()}},Aq=class{#e;constructor(e){this.#e=e}async getSchemas(){return[]}async getTables(e={withInternalKyselyTables:!1}){let t=this.#e.selectFrom(`sqlite_schema`).where(`type`,`=`,`table`).where(`name`,`not like`,`sqlite_%`).select(`name`).$castTo();e.withInternalKyselyTables||(t=t.where(`name`,`!=`,Vt).where(`name`,`!=`,Ht));let n=await t.execute();return Promise.all(n.map(({name:e})=>this.#t(e)))}async getMetadata(e){return{tables:await this.getTables(e)}}async#t(e){let t=this.#e,n=(await t.selectFrom(`sqlite_master`).where(`name`,`=`,e).select(`sql`).$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(e=>e.toLowerCase().includes(`autoincrement`))?.split(/\s+/)?.[0]?.replace(/["`]/g,``);return{name:e,columns:(await t.selectFrom(Zt`pragma_table_info(${e})`.as(`table_info`)).select([`name`,`type`,`notnull`,`dflt_value`]).execute()).map(e=>({name:e.name,dataType:e.type,isNullable:!e.notnull,isAutoIncrementing:e.name===n,hasDefaultValue:e.dflt_value!=null})),isView:!1}}},jq=class extends Ut{getCurrentParameterPlaceholder(){return`?`}getLeftIdentifierWrapper(){return`"`}getRightIdentifierWrapper(){return`"`}getAutoIncrement(){return`autoincrement`}},Mq=class{#e;constructor(e){this.#e={...e}}createDriver(){return new Dq(this.#e)}createQueryCompiler(){return new jq}createAdapter(){return new Eq}createIntrospector(e){return new Aq(e)}};const Nq=e=>e instanceof Error?e:Error(String(e));function Pq(e){return(t,...n)=>Fm({try:async()=>(await Zt(t,...n).execute(e)).rows,catch:Nq})}const Fq=ug(`Database.transaction`)(function*(e,t){let n=yield*Fm({try:()=>e.startTransaction().execute(),catch:Nq}),r=yield*th(t(Pq(n))),i=fh(Fm({try:()=>n.rollback().execute(),catch:Nq})),a=Fm({try:()=>n.commit().execute(),catch:Nq}).pipe(uh(()=>i));return yield*cp(r)?a:i,yield*r},Kh);async function Iq(e){let t=new See(e);try{t.exec(`PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;`);let e=new Wt({dialect:new Mq({database:t})});return await Zt`SELECT 1`.execute(e),{kysely:e,sql:Pq(e),close:()=>e.destroy()}}catch(e){throw t.close(),e}}const Lq=`admin`,Rq=e=>`${e}/mcp`,zq=[`offline_access`],Bq=e=>`resource:${e}`,Vq=Pw(ET(W(V))),Hq=Pw(U({identifier:V,name:V,allowedScopes:V})),Uq=Pw(W(oq)),Wq=Pw(W(U({clientId:V}))),Gq=e=>Fm({try:e,catch:Nq}),Kq=e=>({identifier:encodeURIComponent(e)}),qq=(e,t)=>({...Kq(t),client_id:encodeURIComponent(e)});function Jq(e,t,n,r){let i=ug(`Resources.decode`)(function*(e){let t=yield*Hq(e),n=yield*Vq(t.allowedScopes);return{identifier:t.identifier,name:t.name,scopes:n.filter(e=>!zq.includes(e))}}),a=ug(`Resources.list`)(function*(){let t=yield*e`SELECT identifier, name, allowedScopes FROM oauthResource ORDER BY createdAt, identifier`;return yield*Mm(t,i)}),o=ug(`Resources.get`)(function*(t){let n=yield*e`SELECT identifier, name, allowedScopes FROM oauthResource WHERE identifier = ${t}`;return n[0]?yield*i(n[0]):void 0}),c=ug(`Resources.access`)(function*(){return yield*Uq(yield*e`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource ORDER BY clientId, resourceId`)}),l=ug(`Resources.accessForClient`)(function*(t){return yield*Uq(yield*e`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource WHERE clientId = ${t} ORDER BY resourceId`)}),u=ug(`Resources.accessForResource`)(function*(t){return yield*Uq(yield*e`SELECT clientId AS client_id, resourceId AS resource FROM oauthClientResource WHERE resourceId = ${t} ORDER BY clientId`)}),d=ug(`Resources.validateSelection`)(function*(e){return new Set(e).size===e.length?yield*Mm(e,e=>Vm(function*(){return(yield*o(e))||(yield*F(new s(`BAD_REQUEST`,{message:`Unknown Resource`})))})):yield*F(new s(`BAD_REQUEST`,{message:`Choose unique Resources`}))}),f=ug(`Resources.scopesFor`)(function*(e){let t=yield*d(e);return[.../* @__PURE__ */ new Set([...zq,...t.flatMap(e=>e.scopes)])]}),p=e=>{try{return new URL(e).href===e}catch{return!1}},m=e=>{let t=e.identifier.trim(),n=e.name.trim(),r=[...new Set(e.scopes.map(e=>e.trim()))];if(!p(t))throw new s(`BAD_REQUEST`,{message:`Resource identifiers must be absolute URIs in canonical form`});if(!n||r.some(e=>!/^[\x21\x23-\x5B\x5D-\x7E]+$/.test(e)||zq.includes(e)))throw new s(`BAD_REQUEST`,{message:`Resources require a name and well-formed custom scopes`});return{identifier:t,name:n,scopes:r}},h=e=>Gm({try:()=>m(e),catch:e=>e instanceof s?e:new s(`BAD_REQUEST`,{message:`Invalid Resource`})}),g=ug(`Resources.syncClient`)(function*(n,r){let i=yield*l(n),a=yield*f(i.map(e=>e.resource));(yield*e`SELECT 1 FROM oauthClient WHERE clientId = ${n} AND userId IS NULL`).length?yield*e`UPDATE oauthClient SET scopes = ${JSON.stringify(a)}, updatedAt = ${yield*rm} WHERE clientId = ${n}`:yield*Gq(()=>t().api.updateOAuthClient({headers:r,body:{client_id:n,update:{scope:a.join(` `)}}}))}),_=e=>n([.../* @__PURE__ */ new Set([...zq,...e.flatMap(e=>e.scopes)])],e.map(e=>e.identifier)),v=ug(`Resources.synchronize`)(function*(){_(yield*a())});return{list:a,get:o,access:c,hasAccess:ug(`Resources.hasAccess`)(function*(t,n){return(yield*e`SELECT 1 FROM oauthClientResource WHERE clientId = ${t} AND resourceId = ${n} LIMIT 1`).length>0}),scopesFor:f,synchronize:v,create:ug(`Resources.create`)(function*(n,r){let i=yield*h(n);yield*Gq(()=>t().api.adminCreateOAuthResource({headers:r,body:{identifier:i.identifier,name:i.name,allowedScopes:[...zq,...i.scopes]}})),yield*v();let a=yield*Wq(yield*e`SELECT clientId FROM oauthClient WHERE userId IS NULL ORDER BY clientId`);for(let e of a)yield*Gq(()=>t().api.adminLinkClientResource({headers:r,params:qq(e.clientId,i.identifier)})),yield*g(e.clientId,r);return i}),update:ug(`Resources.update`)(function*(e,n){let i=yield*h(e),a=i.identifier===r;if(a&&(i.scopes.length!==1||i.scopes[0]!==`admin`))return yield*F(new s(`BAD_REQUEST`,{message:`The administration Resource scopes are reserved`}));if(yield*Gq(()=>t().api.adminUpdateOAuthResource({headers:n,params:Kq(i.identifier),body:a?{name:i.name}:{name:i.name,allowedScopes:[...zq,...i.scopes]}})),a)return i;yield*v();for(let e of yield*u(i.identifier))yield*g(e.client_id,n);return i}),delete:ug(`Resources.delete`)(function*(e,n){if(e===r)return yield*F(new s(`BAD_REQUEST`,{message:`The administration Resource is reserved`}));let i=yield*u(e);yield*Gq(()=>t().api.adminDeleteOAuthResource({headers:n,params:Kq(e)})),yield*v();for(let e of i)yield*g(e.client_id,n);return{deleted:!0}}),setAccess:ug(`Resources.setAccess`)(function*(n,r,i){if(!(yield*e`SELECT id FROM oauthClient WHERE clientId = ${n}`).length)return yield*F(new s(`NOT_FOUND`,{message:`Client not found`}));yield*d(r);let a=(yield*l(n)).map(e=>e.resource);for(let e of a.filter(e=>!r.includes(e)))yield*Gq(()=>t().api.adminUnlinkClientResource({headers:i,params:qq(n,e)}));for(let e of r.filter(e=>!a.includes(e)))yield*Gq(()=>t().api.adminLinkClientResource({headers:i,params:qq(n,e)}));return yield*g(n,i),yield*l(n)})}}const Yq=(e,t)=>UM()(n=>t.pipe(wh({onFailure:M,onSuccess:t=>jh(n,e,t)}),MM((e,t)=>M(_j(t,`cache-control`,`no-store`))))),Xq=e=>`"${e.replace(/["\\]/g,`\\$&`)}"`,Zq=e=>{let t=new URL(e.resource),n=`/.well-known/oauth-protected-resource${t.pathname===`/`?``:t.pathname}`,r=new URL(t);r.pathname=n;let i=r.href,a=i.slice(r.origin.length),o=pj({resource:e.resource,authorization_servers:e.authorizationServers,bearer_methods_supported:[`header`],scopes_supported:e.scopesSupported,resource_name:e.resourceName});return{layer:UM(e=>Vm(function*(){let n=yield*wM,r=new URL(n.url,t.origin);return(n.method===`GET`||n.method===`HEAD`)&&r.href.slice(r.origin.length)===a?o:yield*e}),{global:!0}),metadataUrl:i,challenge:(e={})=>`Bearer ${[[`resource_metadata`,i],[`error`,e.error],[`error_description`,e.errorDescription],[`scope`,e.scope]].flatMap(([e,t])=>t===void 0?[]:[`${e}=${Xq(t)}`]).join(`, `)}`}},Qq=ug(`Administration.providerSession`)(function*(e,t){yield*Fh(Gm({try:e.retain,catch:xq}),e=>N(e));let n=yield*Sq(()=>e.auth.$context),r=new Date((yield*rm)+6e4),i=yield*Fh(Sq(()=>n.internalAdapter.createSession(t,!0,{expiresAt:r},!0)),e=>Pm(()=>n.internalAdapter.deleteSession(e.token))),a=yield*Sq(async()=>(await Promise.all([rN(n.authCookies.sessionToken.name,i.token,n.secret),rN(n.authCookies.dontRememberToken.name,`true`,n.secret)])).map(e=>e.split(`;`)[0]).join(`; `));return new Headers({origin:e.settings.baseURL,cookie:a})});var $q=class extends Wo()(`ClankerAuth/CurrentOwner`){};const eJ=e=>I(wq(e),F),tJ=e=>Yq($q,Vm(function*(){let t=yield*wM,n=new Headers(t.headers),r=yield*Sq(()=>e.auth.api.getSession({headers:n}));return r?{providerHeaders:M(n),userId:r.user.id,email:r.user.email}:yield*F(new BK({error:`Owner session required`}))}).pipe(ih(eJ))),nJ=U({id:V,email:V}),rJ=(e,t)=>{let n=()=>({error:new BK({error:`Owner authorization required`}),headers:{"www-authenticate":t.challenge(!0)}}),r=e=>({error:xq(e),headers:{}});return Yq($q,Vm(function*(){let i=yield*wM,a=i.headers.authorization!==void 0,o=yield*t.verifier.verify(i.headers.authorization).pipe(R(e=>t.refuse(e,a)));if(o.actor.kind!==`client`)return yield*F(n());let s=yield*e.sql`SELECT u.id, u.email FROM user u
414
414
  JOIN oauthClient c ON c.clientId = ${o.actor.clientId}
@@ -514,4 +514,4 @@ Most of the features of Better Auth will not work correctly.`);let u=t.secrets??
514
514
  `.pipe(R(xq)),i=(yield*ape(r).pipe(R(xq))).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*jm({resources:e.resources.list(),clientAccess:e.resources.access()}).pipe(R(xq));return{clients:i,resources:a.resources.map(e=>({...e,builtIn:e.identifier===Rq(n.baseURL)})),clientAccess:a.clientAccess,email:t,issuer:`${n.baseURL}/api/auth`}}),create:ug(`Administration.create`)(function*(n){let{providerHeaders:r}=yield*$q,i=yield*e.resources.scopesFor(n.resources).pipe(R(xq)),a=yield*r,o=yield*Sq(()=>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,a).pipe(R(xq),uh(()=>Sq(()=>t.api.deleteOAuthClient({headers:a,body:{client_id:o.client_id}})))),o}),update:ug(`Administration.update`)(function*(e){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*Sq(()=>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:ug(`Administration.access`)(function*(t){let{providerHeaders:n}=yield*$q,r=yield*n;return{clientAccess:yield*e.resources.setAccess(t.client_id,t.resources,r).pipe(R(xq))}}),createResource:ug(`Administration.createResource`)(function*(t){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*e.resources.create(t,r).pipe(R(xq))}),updateResource:ug(`Administration.updateResource`)(function*(t){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*e.resources.update(t,r).pipe(R(xq))}),deleteResource:ug(`Administration.deleteResource`)(function*(t){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*e.resources.delete(t.identifier,r).pipe(R(xq))}),delete:ug(`Administration.delete`)(function*(e){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*Sq(()=>t.api.deleteOAuthClient({headers:r,body:e})),{deleted:!0}}),revoke:ug(`Administration.revoke`)(function*(t){return yield*$q,yield*e.clients.revoke(t.client_id).pipe(R(xq))}),block:ug(`Administration.block`)(function*(t){return yield*$q,yield*e.clients.block(t.client_id,t.blocked).pipe(R(xq))}),rotate:ug(`Administration.rotate`)(function*(e){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*Sq(()=>t.api.rotateClientSecret({headers:r,body:e}))})}}const ope=/*#__PURE__*/ mb(),spe=/*#__PURE__*/ mb(),h2=`~effect/process/ChildProcessSpawner/ChildProcessHandle`,cpe={[h2]:h2,...ni,toJSON(){return{_id:`ChildProcessHandle`,pid:this.pid}}},g2=e=>Object.setPrototypeOf({...e},cpe),lpe=e=>{let t=(t,n)=>e(t).pipe(L(e=>FE(n?.includeStderr===!0?e.all:e.stdout)),xE),n=(e,n)=>LE(t(e,n));return _2.of({spawn:e,exitCode:t=>Nh(I(e(t),e=>e.exitCode)),streamString:t,streamLines:n,lines:(e,t)=>HE(n(e,t)),string:(e,n)=>KE(t(e,n))})};var _2=class extends (/*#__PURE__*/ Wo()(`effect/process/ChildProcessSpawner`)){};const v2=`~effect/process/ChildProcess`,upe={.../*#__PURE__*/ Ho({label:`Command`,evaluate(e){return ms(e.context,_2).spawn(this)}}),[v2]:v2},y2=(e,t,n)=>Object.assign(Object.create(upe),{_tag:`StandardCommand`,command:e,args:t,options:n}),b2=function(...e){if(x2(e[0])){let[t,...n]=e,r=C2(t,n);return y2(r[0]??``,r.slice(1),{})}if(typeof e[0]==`object`&&!Array.isArray(e[0])&&!x2(e[0])){let t=e[0];return function(e,...n){let r=C2(e,n);return y2(r[0]??``,r.slice(1),t)}}if(typeof e[0]==`string`&&!Array.isArray(e[1])){let[t,n={}]=e;return y2(t,[],n)}let[t,n=[],r={}]=e;return y2(t,n,r)},x2=e=>Array.isArray(e)&&`raw`in e&&Array.isArray(e.raw),S2=e=>{let t=/^fd(\d+)$/.exec(e);if(t===null)return;let n=parseInt(t[1],10);return n>=3?n:void 0},dpe=e=>`fd${e}`,C2=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=fpe(e,t,n,i,r);return n},fpe=(e,t,n,r,i)=>{let a=e.raw[i];if(a===void 0)throw Error(`Invalid backslash sequence: ${e.raw[i]}`);let{hasLeadingWhitespace:o,hasTrailingWhitespace:s,tokens:c}=mpe(r,a),l=E2(n,c,o);if(i===t.length)return l;let u=t[i],d=Array.isArray(u)?u.map(e=>w2(e)):[w2(u)];return E2(l,d,s)},w2=e=>typeof e==`string`?e:String(e),T2=/*#__PURE__*/ new Set([` `,` `,`\r`,`
515
515
  `]),ppe={x:3,u:5},mpe=(e,t)=>{if(t.length===0)return{tokens:[],hasLeadingWhitespace:!1,hasTrailingWhitespace:!1};let n=T2.has(t[0]),r=[],i=0;for(let n=0,a=0;n<e.length;n+=1,a+=1){let o=t[a];if(T2.has(o))i!==n&&r.push(e.slice(i,n)),i=n+1;else if(o===`\\`){let e=t[a+1];if(e===`
516
516
  `)--n,a+=1;else if(e===`u`&&t[a+2]===`{`){let e=t.indexOf(`}`,a+3);parseInt(t.slice(a+3,e),16)>65535&&(n+=1),a=e}else a+=ppe[e]??1}}let a=i===e.length;return a||r.push(e.slice(i)),{tokens:r,hasLeadingWhitespace:n,hasTrailingWhitespace:a}},E2=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t.at(0)}`,...t.slice(1)],hpe=(e,t,n)=>{let r=e.detached??n!==`win32`;return{...t,detached:r,shell:e.shell,windowsHide:e.windowsHide??!r}},D2=(e,t)=>(n,[r])=>{let i=`Unknown`;switch(n.code){case`ENOENT`:i=`NotFound`;break;case`EACCES`:i=`PermissionDenied`;break;case`EEXIST`:i=`AlreadyExists`;break;case`EISDIR`:i=`BadResource`;break;case`ENOTDIR`:i=`BadResource`;break;case`EBUSY`:i=`Busy`;break;case`ELOOP`:i=`BadResource`}return KT({_tag:i,module:e,method:t,pathOrDescriptor:r,syscall:n.syscall,cause:n})},O2=e=>QT(hae(gpe(e),e=>[e])),gpe=e=>lx(t=>{let n=e.evaluate();return M(k2({...e,writable:n,pull:t}))}),k2=e=>e.pull.pipe(I(t=>{let n=0;return zm(r=>{let i=!1,a=()=>{for(;n<t.length;){if(i)return;if(!e.writable.write(t[n++],e.encoding)){i||e.writable.once(`drain`,a);return}}i||r(P)};return a(),N(()=>{i=!0,e.writable.off(`drain`,a)})})}),Yh({disableYield:!0}),e.endOnDone===!1?k:xm(t=>`closed`in e.writable&&e.writable.closed?Zf(t):zm(n=>{let r=()=>n(Zf(t));return e.writable.once(`finish`,r),e.writable.end(),N(()=>{e.writable.off(`finish`,r)})})),yh(zm(t=>{let n=n=>t(F(e.onError(n)));return e.writable.once(`error`,n),N(()=>{e.writable.off(`error`,n)})}))),A2=e=>sE(_pe(e)),_pe=e=>lx((t,n)=>M2({scope:n,readable:e.evaluate(),onError:e.onError??N2,chunkSize:e.chunkSize,closeOnDone:e.closeOnDone})),vpe=e=>lx((t,n)=>{let r=e.evaluate(),i=Eb(void 0),a=wb(!1);return k2({pull:t,writable:r,onError:e.onError??N2,endOnDone:e.endOnDone,encoding:e.encoding}).pipe(sh(e=>Sm(e)?P:(i.current=rp(e),a.openUnsafe(),P)),ng(n),I(()=>M2({scope:n,exit:i,latch:a,readable:r,onError:e.onError??N2,chunkSize:e.chunkSize})))}),ype=/*#__PURE__*/ O(2,(e,t)=>PE(e,vpe(t))),j2=(e,t)=>{let n=xpe(t?.maxBytes),r=t?.onError??N2;return zm(t=>{let i=e(),a=[],o=0;return i.once(`error`,e=>{`closed`in i&&!i.closed&&i.destroy(),t(F(r(e)))}),i.once(`end`,()=>{let e=a.length===1?a[0]:Buffer.concat(a);if(e.byteOffset===0&&e.buffer.byteLength===e.byteLength)return t(M(e.buffer));t(M(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)))}),i.on(`data`,e=>{a.push(e),o+=e.length,n!==void 0&&o>n&&(`closed`in i&&!i.closed&&i.destroy(),t(F(r(/* @__PURE__ */ Error(`maxBytes exceeded`)))))}),N(()=>{`closed`in i&&!i.closed&&i.destroy()})})},bpe=(e,t)=>L(j2(e,t),e=>new Uint8Array(e)),M2=e=>{let t=e.readable,n=e.closeOnDone??!0,r=e.exit??Eb(void 0),i=e.latch??wb(!1);function a(){i.openUnsafe()}function o(t){r.current=ip(e.onError(t)),i.openUnsafe()}function s(){r.current=ip(Xf()),i.openUnsafe()}t.on(`readable`,a),t.once(`error`,o),t.once(`end`,s);let c=Rm(function n(){let a=e.readable.read(e.chunkSize);if(a===null)return r.current?r.current:t.readableEnded?F(Xf()):(i.closeUnsafe(),I(i.await,n));let o=ho(a);for(;a=e.readable.read(e.chunkSize),a!==null;)o.push(a);return M(o)});return nh(Tp(e.scope,N(()=>{t.off(`readable`,a),t.off(`error`,o),t.off(`end`,s),n&&`closed`in e.readable&&!e.readable.closed&&e.readable.destroy()})),c)},N2=e=>new Yne(e),xpe=e=>e===void 0||e===1/0?void 0:Number(iv(e)),P2=e=>e instanceof globalThis.Error?e:new globalThis.Error(String(e)),F2=(e,t,n)=>{let{commands:r}=z2(n),i=r.reduce((e,t)=>{let n=`${t.command} ${t.args.join(` `)}`;return e.length===0?n:`${e} | ${n}`},``);return D2(`ChildProcess`,e)(t,[i])},I2=1e3,L2=(e,t)=>{if(!_p(t))return!0;if(globalThis.process.platform===`win32`)return!1;try{return globalThis.process.kill(-e.pid,0),!0}catch{return!1}},R2=(e,t=()=>{})=>bn.execFile(`taskkill`,[`/pid`,String(e.pid),`/T`,`/F`],{windowsHide:!0},t),Spe=/*#__PURE__*/ Hp(_2,/* @__PURE__ */ Vm(function*(){let e=yield*XE,t=yield*tD,n=z(function*(n){if(!Un(n.cwd))return yield*e.access(n.cwd),t.resolve(n.cwd)}),r=e=>e.extendEnv?{...globalThis.process.env,...e.env}:e.env,i=e=>oE(e)?`pipe`:e,a=e=>ZT(e)?`pipe`:e,o=e=>{let t={stream:`pipe`,encoding:`utf-8`,endOnDone:!0};return Un(e.stdin)?t:typeof e.stdin==`string`||oE(e.stdin)?{...t,stream:e.stdin}:{stream:e.stdin.stream,encoding:e.stdin.encoding??t.encoding,endOnDone:e.stdin.endOnDone??t.endOnDone}},s=(e,t)=>{let n=e[t];return Un(n)?{stream:`pipe`}:typeof n==`string`||ZT(n)?{stream:n}:{stream:n.stream}},c=e=>{if(Un(e.additionalFds))return[];let t=[];for(let[n,r]of Object.entries(e.additionalFds)){let e=S2(n);Wn(e)&&t.push({fd:e,config:r})}return t.sort((e,t)=>e.fd-t.fd)},l=(e,t,n,r)=>{let o=[i(e.stream),a(t.stream),a(n.stream)];if(r.length===0)return o;let s=r.reduce((e,{fd:t})=>Math.max(e,t),2);for(let e=3;e<=s;e++)o[e]=`ignore`;for(let{fd:e}of r)o[e]=`pipe`;return o},u=z(function*(e,t,n){if(n.length===0)return{getInputFd:()=>eE,getOutputFd:()=>pE};let r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;for(let{config:a,fd:o}of n){let n=t.stdio[o];switch(a.type){case`input`:{let t=eE;n&&`write`in n&&(t=O2({evaluate:()=>n,onError:t=>F2(`fromWritable(fd${o})`,P2(t),e)})),a.stream&&(yield*rg(VE(a.stream,t))),r.set(o,t);break}case`output`:{let t=pE;if(n&&`read`in n){let r=new vn;n.on(`error`,e=>r.destroy(e)),n.pipe(r),t=A2({evaluate:()=>r,onError:t=>F2(`fromReadable(fd${o})`,P2(t),e)})}a.sink&&(t=NE(t,a.sink)),i.set(o,t);break}}}return{getInputFd:e=>r.get(e)??eE,getOutputFd:e=>i.get(e)??pE}}),d=(e,t,n)=>Rm(()=>{let r=eE;return Gn(t.stdin)&&(r=O2({evaluate:()=>t.stdin,onError:t=>F2(`fromWritable(stdin)`,P2(t),e),endOnDone:n.endOnDone,encoding:n.encoding})),oE(n.stream)?nh(rg(VE(n.stream,r)),r):M(r)}),f=(e,t,n,r)=>{let i=t.stdout?(()=>{let n=new vn;return t.stdout.on(`error`,e=>n.destroy(e)),t.stdout.pipe(n),A2({evaluate:()=>n,onError:t=>F2(`fromReadable(stdout)`,P2(t),e)})})():pE,a=t.stderr?(()=>{let n=new vn;return t.stderr.on(`error`,e=>n.destroy(e)),t.stderr.pipe(n),A2({evaluate:()=>n,onError:t=>F2(`fromReadable(stderr)`,P2(t),e)})})():pE;ZT(n.stream)&&(i=NE(i,n.stream)),ZT(r.stream)&&(a=NE(a,r.stream));let o=OE(i,a);return{stdout:i,stderr:a,all:o}},p=(e,t)=>zm(n=>{let r=fp(),i=bn.spawn(e.command,e.args,t);return i.on(`error`,t=>{n(F(F2(`spawn`,t,e)))}),i.on(`exit`,(...e)=>{yp(r,np(e))}),i.on(`spawn`,()=>{n(M([i,r]))}),N(()=>{i.kill(`SIGTERM`)})}),m=(e,t,n)=>globalThis.process.platform===`win32`?zm(n=>{R2(t,t=>{n(t?F(F2(`kill`,P2(t),e)):P)})}):Gm({try:()=>{globalThis.process.kill(-t.pid,n)},catch:t=>F2(`kill`,P2(t),e)}),h=(e,t)=>{if(globalThis.process.platform===`win32`){R2(e);return}try{globalThis.process.kill(-e.pid,t)}catch{}},g=(e,t,n)=>Rm(()=>{if(!t.kill(n)){let t=new globalThis.Error(`Failed to kill child process`);return F(F2(`kill`,t,e))}return P}),_=(e,t,n)=>zm(r=>{let i=Date.now()+n,a,o=()=>{clearTimeout(a),e.removeListener(`exit`,s)},s=()=>{if(clearTimeout(a),Date.now()>=i||!L2(e,t)){o(),r(P);return}a=setTimeout(s,10)};return e.on(`exit`,s),s(),N(o)}),v=z(function*(e,t,n,r){let i=n=>m(e,t,n).pipe(ih(()=>g(e,t,n)));yield*i(r?.killSignal??`SIGTERM`),Un(r?.forceKillAfter)?yield*_(t,n,I2):(yield*_(t,n,ac(r.forceKillAfter)),L2(t,n)&&(yield*i(`SIGKILL`),yield*_(t,n,I2))),yield*mp(n)}),y=(e,t)=>{let n=t??`stdout`;switch(n){case`stdout`:return e.stdout;case`stderr`:return e.stderr;case`all`:return e.all;default:{let t=S2(n);return Wn(t)?e.getOutputFd(t):e.stdout}}},b=z(function*(e){switch(e._tag){case`StandardCommand`:{let t=o(e.options),i=s(e.options,`stdout`),a=s(e.options,`stderr`),g=c(e.options),_=!0,y=yield*n(e.options),b=r(e.options),x=l(t,i,a,g),[S,C]=yield*Fh(p(e,hpe(e.options,{cwd:y,env:b,stdio:x},process.platform)),z(function*([t,n]){if(yield*gp(n)){let[r]=yield*mp(n);r!==0&&Gn(r)?yield*fh(m(e,t,e.options.killSignal??`SIGTERM`)):_&&process.platform!==`win32`&&e.options.detached!==!1&&(yield*fh(v(e,t,n,e.options)));return}_&&(yield*fh(v(e,t,n,e.options)))})),w=spe(S.pid);S.on(`exit`,t=>{t!==0&&Gn(t)&&h(S,e.options.killSignal??`SIGTERM`)});let ee=N(()=>{_||=(S.ref(),!0)}),te=N(()=>(_&&=(S.unref(),!1),ee)),T=yield*d(e,S,t),{all:ne,stderr:re,stdout:ie}=f(e,S,i,a),{getInputFd:ae,getOutputFd:oe}=yield*u(e,S,g),E=L(gp(C),e=>!e),D=I(mp(C),([t,n])=>{if(Gn(t))return M(ope(t));let r=new globalThis.Error(`Process interrupted due to receipt of signal: '${n}'`);return F(F2(`exitCode`,r,e))});return g2({pid:w,exitCode:D,isRunning:E,kill:t=>v(e,S,C,t),stdin:T,stdout:ie,stderr:re,all:ne,getInputFd:ae,getOutputFd:oe,unref:te})}case`PipedCommand`:{let{commands:t,pipeOptions:n}=z2(e),[r,...i]=t,a=[yield*b(r)];for(let e=0;e<i.length;e++){let t=i[e],r=n[e]??{},s=o(t.options),c=xE(M(y(a[a.length-1],r.from))),l=r.to??`stdin`;if(l===`stdin`)a.push(yield*b(b2(t.command,t.args,{...t.options,stdin:{...s,stream:c}})));else{let e=S2(l);if(Wn(e)){let n=dpe(e),r=t.options.additionalFds??{};a.push(yield*b(b2(t.command,t.args,{...t.options,additionalFds:{...r,[n]:{type:`input`,stream:c}}})))}else a.push(yield*b(b2(t.command,t.args,{...t.options,stdin:{...s,stream:c}})))}}let s=a[a.length-1],c=e=>Mm([...a].reverse(),t=>fh(t.kill(e)),{discard:!0}),l=Vm(function*(){let e=[];for(let t of a)e.push(yield*t.unref);return Mm([...e].reverse(),e=>e,{discard:!0})});return g2({pid:s.pid,exitCode:s.exitCode,isRunning:s.isRunning,kill:c,stdin:a[0].stdin,stdout:s.stdout,stderr:s.stderr,all:s.all,getInputFd:s.getInputFd,getOutputFd:s.getOutputFd,unref:l})}}});return lpe(b)})),z2=e=>{let t=[],n=[],r=e=>{switch(e._tag){case`StandardCommand`:t.push(e);break;case`PipedCommand`:r(e.left),n.push(e.options),r(e.right)}};if(r(e),t.length===0)throw Error(`flattenCommand produced empty commands array`);let[i,...a]=t;return{commands:[i,...a],pipeOptions:n}};var B2=class extends (/*#__PURE__*/ Wo()(`effect/workers/Transferable/Collector`)){};const V2=()=>{let e=[],t=t=>{e.push(...t)},n=()=>e,r=()=>{let t=e;return e=[],t};return B2.of({addAllUnsafe:t,addAll:e=>N(()=>t(e)),readUnsafe:n,read:N(n),clearUnsafe:r,clear:N(r)})},H2=`~effect/rpc/RpcSchema/StreamSchema`;function U2(e){return A(e,H2)}function W2(e){return U2(e)?Oa({success:e.success,error:e.error}):Da()}const Cpe=/*#__PURE__*/ Ew(oE);function wpe(e,t){return Ww(Cpe.ast,{[H2]:H2,success:e,error:t})}var Tpe=class extends (/*#__PURE__*/ Wo()(`effect/rpc/RpcSchema/ClientAbort`)){static annotation=/*#__PURE__*/ this.context(!0).pipe(/*#__PURE__*/ ls(ep,{name:`ClientAbort`,stack:jn,parent:void 0}))};const G2=`~effect/rpc/Rpc`;var K2=class{id;annotations;constructor(e){this.id=e,this.annotations=os()}annotate(e,t){return this.annotations=ls(this.annotations,e,t),this}};const Epe={[G2]:G2,pipe(){return Tn(this,arguments)},setSuccess(e){return q2({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:e,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setError(e){return q2({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:e,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},setPayload(e){return q2({_tag:this._tag,payloadSchema:Gw(e)?e:U(e),successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},middleware(e){return q2({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:/* @__PURE__ */ new Set([...this.middlewares,e])})},prefix(e){return q2({_tag:`${e}${this._tag}`,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,annotations:this.annotations,middlewares:this.middlewares})},annotate(e,t){return q2({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:ls(this.annotations,e,t)})},annotateMerge(e){return q2({_tag:this._tag,payloadSchema:this.payloadSchema,successSchema:this.successSchema,errorSchema:this.errorSchema,defectSchema:this.defectSchema,middlewares:this.middlewares,annotations:bs(this.annotations,e)})}},q2=e=>{function t(){}return Object.setPrototypeOf(t,Epe),Object.assign(t,e),t.key=`effect/rpc/Rpc/${e._tag}`,t},X=(e,t)=>{let n=t?.success??eT,r=t?.error??Xw,i=t?.defect??TT(),a;return a=t?.primaryKey?class extends IT(`effect/rpc/Rpc/${e}`)(t.payload){"~effect/PrimaryKey"(){return t.primaryKey(this)}}:Gw(t?.payload)?t?.payload:t?.payload?U(t?.payload):eT,q2({_tag:e,payloadSchema:a,successSchema:t?.stream?wpe(n,r):n,errorSchema:t?.stream?Xw:r,defectSchema:i,annotations:os(),middlewares:/* @__PURE__ */ new Set})},J2=/*#__PURE__*/ new WeakMap,Y2=e=>{if(J2.has(e))return J2.get(e);let t=e,n=/* @__PURE__ */ new Set([t.errorSchema]),r=W2(t.successSchema);Aa(r)&&n.add(r.value.error);for(let e of t.middlewares)n.add(e.error);let i=Doe(Aa(r)?eT:t.successSchema,G([...n]),t.defectSchema);return J2.set(e,i),i},X2=e=>`~effect/rpc/Rpc/Wrapper`in e,Z2=e=>e,Dpe={_tag:`Eof`},Q2=e=>({_tag:`Defect`,defect:e}),Ope={_tag:`Pong`},kpe=BT;let Ape;const jpe=e=>(Ape??=new TextDecoder).decode(e);var $2=class extends (/*#__PURE__*/ Wo()(`effect/rpc/RpcSerialization`)){};const e4=e=>$2.of({contentType:e?.contentType??`application/json`,includesFraming:!1,codecFor:kpe,makeUnsafe:()=>{let e=/* @__PURE__ */ new Map;return{decode:t=>Mpe(JSON.parse(typeof t==`string`?t:jpe(t)),e),encode:t=>{let n=Npe(t,e);return n&&JSON.stringify(n)}}}});function Mpe(e,t){if(Array.isArray(e)){let n={size:0,responses:/* @__PURE__ */ new Map},r=[];for(let i=0;i<e.length;i++){let a=t4(e[i]);r.push(a),a._tag===`Request`&&!a.isNotification&&(n.size++,t.set(a.id,n))}return r}return[t4(e)]}function t4(e){if(Object.hasOwn(e,`method`)){let t=e;if(Kn(t.id)&&t.method.startsWith(`@effect/rpc/`)){let e=t.method.slice(12),n=t.params?.requestId;return n===void 0?{_tag:e}:{_tag:e,requestId:n}}return{_tag:`Request`,id:t.id??``,tag:t.method,payload:t.params??null,headers:t.headers??[],...A(t,`id`)?{}:{isNotification:!0},...t.spanId?{traceId:t.traceId,spanId:t.spanId,sampled:t.sampled}:{}}}let t=e,n=Object.hasOwn(t,`error`);return n&&t.error&&t.error._tag===`Defect`?{_tag:`Defect`,defect:t.error.data}:Object.hasOwn(t,`chunk`)&&t.chunk===!0?{_tag:`Chunk`,requestId:t.id??``,values:t.result}:{_tag:`Exit`,requestId:t.id??``,exit:n&&t.error!=null?{_tag:`Failure`,cause:t.error._tag===`Cause`?t.error.data:[{_tag:`Fail`,error:t.error}]}:{_tag:`Success`,value:t.result}}}function n4(e,t){if(!(`requestId`in e))return r4(e);let n=t.get(e.requestId);return n?(t.delete(e.requestId),n.responses.set(e.requestId,e),n.size===n.responses.size?Array.from(n.responses.values(),r4):void 0):r4(e)}function Npe(e,t){if(Array.isArray(e)===!1)return n4(e,t);if(e.length===0)return;let n=[];for(let r=0;r<e.length;r++){let i=n4(e[r],t);i!==void 0&&n.push(i)}if(n.length===0)return;if(n.length===1)return n[0];let r=[];for(let e=0;e<n.length;e++){let t=n[e];Array.isArray(t)?r.push(...t):r.push(t)}return r}function r4(e){switch(e._tag){case`Request`:return{jsonrpc:`2.0`,method:e.tag,params:e.payload,...e.isNotification?{}:{id:e.id},...e.headers?.length>0?{headers:e.headers}:{},traceId:e.traceId,spanId:e.spanId,sampled:e.sampled};case`Ping`:case`Pong`:case`Interrupt`:case`Ack`:case`Eof`:return{jsonrpc:`2.0`,method:`@effect/rpc/${e._tag}`,params:`requestId`in e?{requestId:e.requestId}:void 0};case`Chunk`:return{jsonrpc:`2.0`,chunk:!0,id:e.requestId,result:e.values};case`Exit`:{if(e.exit._tag===`Success`)return{jsonrpc:`2.0`,id:e.requestId??void 0,result:e.exit.value};let t=e.exit.cause.find(e=>e._tag===`Fail`),n=t?._tag===`Fail`?t.error:void 0;return{jsonrpc:`2.0`,id:e.requestId??void 0,error:e.exit._tag===`Failure`?{_tag:`Cause`,code:n&&A(n,`code`)?Number(n.code):0,message:n&&A(n,`message`)?n.message:JSON.stringify(e.exit.cause),data:e.exit.cause}:void 0}}case`Defect`:return{jsonrpc:`2.0`,id:Ppe,error:{_tag:`Defect`,code:1,message:`A defect occurred`,data:e.defect}};case`ClientProtocolError`:return{}}}const Ppe=-32603,Fpe=e=>zp($2)(e4(e)),Ipe=()=>e=>Rm(()=>{let t=rx(1),n=[],r=(...e)=>Eh(t=>(n.push([e,t]),P));return L(e((...e)=>r(...e)),e=>({...e,run(e){return t.withPermits(1)(Vm(function*(){let t=r;r=e;for(let[t,r]of n)yield*Oh(Rm(()=>e(...t)),r);return n=[],yield*Bh(Bm,()=>(r=t,P))}))}}))}),Lpe=e=>Rm(()=>{let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Map,i=(e,t)=>Eh(r=>{let i=n.get(e);return i||(i=[],n.set(e,i)),i.push([t,r]),P});return L(e((e,t)=>{let n=r.get(e);return n?n(t):i(e,t)},t),e=>({...e,run(e,i){return Vm(function*(){t.add(e),r.set(e,i);let a=n.get(e);if(a){n.delete(e);for(let[e,t]of a)yield*Oh(Rm(()=>i(e)),t)}return yield*Bh(Bm,()=>(t.delete(e),r.delete(e),P))})}}))});let Rpe=0;const i4=/*#__PURE__*/ z(function*(e,t){let n=t?.spanPrefix??`RpcClient`,r=t?.supportsAck??!0,i=t?.disableTracing??!1,a=t?.generateRequestId??(()=>Rpe++),o=yield*Th(),s=hs(o,xp),c=/* @__PURE__ */ new Map,l=!1;yield*Tp(s,qm(e=>(l=!0,u(op(e.id)))));let u=z(function*(e){for(let[t,n]of c)c.delete(t),n._tag===`Queue`?yield*e._tag===`Success`?Hb(n.queue):Bb(n.queue,e.cause):n.resume(e)}),d=e=>{let r=U2(e.successSchema),a=m(e);return(o,s)=>{let c=s?.headers?nw(s.headers):tw,l=s?.context??os();if(!r){let r=t=>f(e,a,t,e.payloadSchema.make(o),c,l,s?.discard??!1);return i?r(void 0):Qh(`${n}.${e._tag}`,{attributes:t.spanAttributes},r)}let u=p(e,a,e.payloadSchema.make(o),c,s?.streamBufferSize??16,l);return s?.asQueue?u:xE(L(u,yE))}},f=(e,n,r,i,o,s,u)=>qm(d=>{if(l)return Uh;let f=a(),p=n(e=>t.onFromClient({message:e,context:s,discard:u}),{_tag:`Request`,id:f,tag:e._tag,payload:i,...r?{traceId:r.traceId,spanId:r.spanId,sampled:r.sampled}:{},headers:ow(d.getRef(a4),o)});if(u)return p;let m;return Gh(zm(t=>{let n={_tag:`Effect`,rpc:e,context:s,resume(e){t(e),m&&!m.pollUnsafe()&&d.currentDispatcher.scheduleTask(()=>{m.interruptUnsafe(d.id)},0)}};c.set(f,n),m=p.pipe(r?eg(r,{captureStackTrace:!1}):k,ag(d.context)),m.addObserver(e=>{if(e._tag===`Failure`)return t(e)})}),e=>(c.delete(f),Zm(xb(m),h(f,Array.from(e),s))))}),p=z(function*(e,r,o,s,u,d){if(l)return yield*Uh;let f=i?void 0:yield*Zh(`${n}.${e._tag}`,{attributes:t.spanAttributes}),p=Sb(),m=a(),g=ms(p.context,xp);yield*wp(g,e=>c.has(m)?(c.delete(m),h(m,lp(e)?Array.from(Kne(e.cause)):[],d)):P);let _=yield*Lb(u);return c.set(m,{_tag:`Queue`,rpc:e,queue:_,scope:g,context:d}),yield*r(e=>t.onFromClient({message:e,context:d,discard:!1}),{_tag:`Request`,id:m,tag:e._tag,payload:o,...f?{traceId:f.traceId,spanId:f.spanId,sampled:f.sampled}:{},headers:ow(p.getRef(a4),s)}).pipe(f?eg(f,{captureStackTrace:!1}):k,Rh(e=>Bb(_,e)),Wh,ng(g,{startImmediately:!0})),_}),m=e=>{let t=[];for(let n of e.middlewares.values()){let e=ps(o,`${n.key}/Client`);e&&t.push(e)}return t.length===0?(e,t)=>e(t):function n(r,i,a=t.length-1){return a===-1?r(i):t[a]({rpc:e,request:i,next(e){return n(r,e,a-1)}})}},h=(e,n,r)=>zm(i=>{let a=Sb();t.onFromClient({message:{_tag:`Interrupt`,requestId:e,interruptors:n},context:r,discard:!1}).pipe(hh(1e3),ag(a.context)).addObserver(()=>{i(P)})}),g=e=>{switch(e._tag){case`Chunk`:{let n=e.requestId,i=c.get(n);return!i||i._tag!==`Queue`?P:Jie(i.queue,e.values).pipe(r?I(()=>t.onFromClient({message:{_tag:`Ack`,requestId:e.requestId},context:i.context,discard:!1})):k,sh(e=>Bb(i.queue,e)))}case`Exit`:{let t=e.requestId,n=c.get(t);return n?(c.delete(t),n._tag===`Effect`?(n.resume(e.exit),P):e.exit._tag===`Success`?Hb(n.queue):Bb(n.queue,e.exit.cause)):P}case`Defect`:return u(ap(e.defect));case`ClientEnd`:return P}},_;if(t.flatten){let t=/* @__PURE__ */ new Map;_=function(n,r,i){let a=t.get(n);return a||(a=d(e.requests.get(n)),t.set(n,a)),a(r,i)}}else _={},e.requests.forEach(e=>{Hr(_,e._tag,d(e))});return{client:_,write:g}});let zpe=0;const Bpe=/*#__PURE__*/ z(function*(e,t){let n=zpe++,{codecFor:r,run:i,send:a,supportsAck:o,supportsTransferables:s}=yield*o4,c=Vpe(r),l=zw(r(TT())),u=/* @__PURE__ */ new Map,{client:d,write:f}=yield*i4(e,{...t,supportsAck:o,onFromClient({message:t}){switch(t._tag){case`Request`:{let r=e.requests.get(t.tag),i=s?V2():void 0,o=Sb(),l={rpc:r,context:i?ls(o.context,B2,i):o.context,schemas:c(r)};return u.set(t.id,l),l.schemas.encodePayload(t.payload).pipe(Oh(l.context),lh,I(e=>a(n,{...t,id:t.id,payload:e,headers:Object.entries(t.headers)},i&&i.readUnsafe())))}case`Ack`:return u.get(t.requestId)?a(n,{_tag:`Ack`,requestId:t.requestId}):P;case`Interrupt`:return u.get(t.requestId)?(u.delete(t.requestId),a(n,{_tag:`Interrupt`,requestId:t.requestId})):P;case`Eof`:return P}}});return yield*i(n,e=>{switch(e._tag){case`Chunk`:{let t=Z2(e.requestId),n=u.get(t);return!n||ka(n.schemas.decodeChunk)?P:n.schemas.decodeChunk.value(e.values).pipe(Oh(n.context),lh,I(t=>f({_tag:`Chunk`,clientId:0,requestId:Z2(e.requestId),values:t})),Rh(t=>f({_tag:`Exit`,clientId:0,requestId:Z2(e.requestId),exit:rp(t)})))}case`Exit`:{let t=Z2(e.requestId),n=u.get(t);return n?(u.delete(t),n.schemas.decodeExit(e.exit).pipe(Oh(n.context),lh,Ch({onSuccess:e=>f({_tag:`Exit`,clientId:0,requestId:t,exit:e}),onFailure:e=>f({_tag:`Exit`,clientId:0,requestId:t,exit:rp(e)})}))):P}case`Defect`:return f({_tag:`Defect`,clientId:0,defect:l(e.defect)});case`ClientProtocolError`:{let t=ip(e.error);return Mm(u.keys(),e=>f({_tag:`Exit`,clientId:0,requestId:e,exit:t}))}default:return P}}).pipe(sh(pg),Wh,rg),d}),Vpe=e=>{let t=/* @__PURE__ */ new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=W2(n.successSchema);return r={decodeChunk:La(i,t=>Pw(e(sT(t.success)))),encodePayload:Vw(e(n.payloadSchema)),decodeExit:Pw(e(Y2(n)))},t.set(n,r),r}},a4=/*#__PURE__*/ Cs(`effect/rpc/RpcClient/CurrentHeaders`,{defaultValue:()=>tw});var o4=class extends (/*#__PURE__*/ Wo()(`effect/rpc/RpcClient/Protocol`)){static make=Lpe};const Hpe=/*#__PURE__*/ z(function*(e,t){let n=t.disableTracing!==!0,r=t.disableSpanPropagation!==!0,i=t.disableClientAcks!==!0,a=t.spanPrefix??`RpcServer`,o=t.concurrency??`unbounded`,s=t.disableFatalDefects??!1,c=yield*Th(),l=hs(c,xp),u=Cb(Ep(l,`parallel`)),d=o===`unbounded`?void 0:yield*ox(o),f=/* @__PURE__ */ new Map,p=!1,m=wb(!1);yield*Tp(l,qm(e=>{p=!0;for(let t of f.values()){if(t.ended=!0,t.fibers.size===0){u(ag(c)(_(t)));continue}for(let n of t.fibers.values())n.interruptUnsafe(e.id)}return f.size===0?P:m.await}));let h=e=>qm(t=>{let n=f.get(e);if(!n)return P;for(let e of n.fibers.values())e.interruptUnsafe(t.id);return f.delete(e),P}),g=(e,n,r)=>ch(qm(i=>{if(p)return Uh;let a=f.get(e);if(!a)a={id:e,latches:void 0,fibers:/* @__PURE__ */ new Map,ended:!1,serverClient:new K2(e)},f.set(e,a);else if(a.ended&&(n._tag!==`Interrupt`||!a.fibers.has(n.requestId)))return Uh;switch(n._tag){case`Request`:return v(i,a,n,r);case`Ack`:{let e=a.latches?.get(n.requestId);return e?e.open:P}case`Interrupt`:{let r=a.fibers.get(n.requestId);return r?(r.interruptUnsafe(i.id,Tpe.annotation),P):t.onFromServer({_tag:`Exit`,clientId:e,requestId:n.requestId,exit:op()})}case`Eof`:return a.ended=!0,a.fibers.size>0?P:_(a);default:return b(a,`Unknown request tag: ${n._tag}`)}}),t=>b(f.get(e),t)),_=e=>{f.delete(e.id);let n=t.onFromServer({_tag:`ClientEnd`,clientId:e.id});return p&&f.size===0?Zm(n,m.open):n},v=(i,o,l,f)=>{if(o.fibers.has(l.id))return Uh;let p=e.requests.get(l.tag),m=ps(c,p?.key);if(!p||!m){let e=ch(t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:ap(`Unknown request tag: ${l.tag}`)}),e=>b(o,e));return!o.ended||o.fibers.size>0?e:Lh(e,_(o))}let h=U2(p.successSchema),g={rpc:p,client:o.serverClient,requestId:l.id,headers:l.headers,payload:l.payload},v=m.handler(l.payload,g),x=X2(v),S=x&&v.fork,C=x&&v.uninterruptible,w=x?v.value:v,ee=h?y(o,l,w):w,te=p.middlewares.size>0?Wpe(c,ee,g):ee,T=!1,ne=Sp(),re,ie=Bh(te,e=>{T=!0;let n;e._tag===`Success`?Zne(e.value)?(re=e.value,n=P):n=t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e}):n=!s&&qf(e.cause)&&!Jf(e.cause)?b(o,Gf(e.cause)):t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e});let r=Op(ne,e);return e._tag===`Failure`&&Lf(Sb(),e.cause),r?Lh(n,r):n});if(f?.onRequest&&(ie=f.onRequest(ie)),n){let e=fs(i.context,Lc);ie=$h(ie,`${a}.${l.tag}`,{captureStackTrace:!1,attributes:t.spanAttributes,parent:r&&l.spanId?Rc({traceId:l.traceId,spanId:l.spanId,sampled:l.sampled}):void 0,links:r&&e?[{span:e,attributes:{}}]:void 0})}!S&&d&&(ie=d.withPermit(ie));let ae=ag(ls(Upe(m,i.context),xp,ne)),oe=u(ae(ie,C?{uninterruptible:!0}:void 0));return o.fibers.set(l.id,oe),oe.addObserver(function e(n){if(re){let n=u(ae(Bh(mp(re),e=>t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:e}))));o.fibers.set(l.id,n),re=void 0,n.addObserver(e);return}!T&&n._tag===`Failure`&&u(ae(t.onFromServer({_tag:`Exit`,clientId:o.id,requestId:l.id,exit:op()}))),o.fibers.delete(l.id),o.latches?.delete(l.id),o.ended&&o.fibers.size===0&&u(ae(_(o)))}),P},y=(e,n,r)=>{let a;return i&&(e.latches??=/* @__PURE__ */ new Map,a=e.latches.get(n.id),a||(a=wb(!1),e.latches.set(n.id,a))),Am(r)?r.pipe(I(r=>Nm({while:kn,body:On(I(Gb(r),r=>{let i=t.onFromServer({_tag:`Chunk`,clientId:e.id,requestId:n.id,values:r});return a?(a.closeUnsafe(),I(i,()=>a.await)):i})),step:Mn})),xm(()=>P),Nh):GE(r,r=>{let i=t.onFromServer({_tag:`Chunk`,clientId:e.id,requestId:n.id,values:r});return a?(a.closeUnsafe(),Zm(i,a.await)):i})},b=(e,n)=>Rm(()=>{let r=e.ended&&e.fibers.size===0,i=t.onFromServer({_tag:`Defect`,clientId:e.id,defect:n});return r?Zm(i,_(e)):i});return k({write:g,disconnect:h})}),s4=/*#__PURE__*/ new WeakMap,Upe=(e,t)=>{let n=s4.get(e);n===void 0&&(n=/* @__PURE__ */ new WeakMap,s4.set(e,n));let r=n.get(t);return r===void 0&&(r=bs(e.context,t),n.set(t,r)),r},Wpe=(e,t,n)=>{for(let r of n.rpc.middlewares)t=ms(e,r)(t,n);return t},Gpe=/*#__PURE__*/ z(function*(e,t){let{codecFor:n,disconnects:r,end:i,run:a,send:o,supportsAck:s,supportsSpanPropagation:c,supportsTransferables:l}=yield*c4,u=Uw(n(TT())),d=yield*Th(),f=yield*nre(),p=yield*Hpe(e,{...t,disableClientAcks:!s,disableSpanPropagation:!c,onFromServer(e){let t=g.get(e.clientId);if(!t)return P;switch(e._tag){case`Chunk`:{let n=t.schemas.get(e.requestId);return n?v(t,e.requestId,n,n.encodeChunk(e.values),`Chunk`):P}case`Exit`:{let n=t.schemas.get(e.requestId);return n?(t.schemas.delete(e.requestId),v(t,e.requestId,n,n.encodeExit(e.exit),`Exit`)):P}case`Defect`:return b(t,e.defect);case`ClientEnd`:return g.delete(e.clientId),i(e.clientId)}}}).pipe(Cp(f));yield*tg(Nm({while:kn,body:On(I(qb(r),e=>(g.delete(e),p.disconnect(e)))),step:Mn}));let m=/* @__PURE__ */ new WeakMap,h=e=>{let t=m.get(e);if(!t){let r=ps(d,e.key),i=W2(e.successSchema);t={decode:Pw(n(e.payloadSchema)),encodeChunk:Bw(n(sT(Aa(i)?i.value.success:Zw))),encodeExit:Bw(n(Y2(e))),encodeDefect:Bw(n(e.defectSchema)),context:r.context},m.set(e,t)}return t},g=/* @__PURE__ */ new Map,_=(e,t,n)=>t===`Chunk`?{_tag:`Chunk`,requestId:e,values:n}:{_tag:`Exit`,requestId:e,exit:n},v=(e,t,n,r,i)=>{let a=n.collector,s=tp(r)&&cp(r)?o(e.id,_(t,i,r.value),a&&a.clearUnsafe()):I(Oh(a?jh(r,B2,a):r,n.context),n=>o(e.id,_(t,i,n),a&&a.clearUnsafe()));return sh(s,r=>{e.schemas.delete(t);let i=Gf(Wf(r,e=>p_(e.issue)));return Zm(y(e,t,n.encodeDefect,i),p.write(e.id,{_tag:`Interrupt`,requestId:t,interruptors:[]}))})},y=(e,t,n,r)=>sh(I(n(r),n=>o(e.id,{_tag:`Exit`,requestId:t,exit:{_tag:`Failure`,cause:[{_tag:`Die`,defect:n}]}})),t=>b(e,Gf(t))),b=(e,t)=>sh(o(e.id,Q2(u(t))),e=>hg(mg(e),{module:`RpcServer`,method:`sendDefect`})),x=(e,t,n,r,i)=>{e.schemas.set(t,l?{...n,collector:V2()}:n);let a=r;return a.id=t,a.payload=i,a.headers=nw(r.headers),p.write(e.id,a)};return yield*a((t,n)=>{let r=g.get(t);switch(r||(r={id:t,schemas:/* @__PURE__ */ new Map},g.set(t,r)),n._tag){case`Request`:{let t=Object.hasOwn(n,`tag`)?n.tag:``,i;switch(typeof n.id){case`number`:case`string`:i=Z2(n.id);break;default:return b(r,`Invalid request id: ${n.id}`)}let a=e.requests.get(t);if(!a)return y(r,i,e=>M(e),`Unknown request tag: ${t}`);let o=h(a),s=o.decode(n.payload);return tp(s)&&cp(s)?x(r,i,o,n,s.value):wh(Oh(s,o.context),{onFailure:e=>y(r,i,o.encodeDefect,p_(e.issue)),onSuccess:e=>x(r,i,o,n,e)})}case`Ping`:return sh(o(r.id,Ope),e=>b(r,Gf(e)));case`Eof`:return p.write(t,n);case`Ack`:return p.write(t,n);case`Interrupt`:return p.write(t,{...n,requestId:Z2(n.requestId),interruptors:[]});default:return b(r,`Unknown request tag: ${n._tag}`)}}).pipe(dh(e=>fg(`BUG: RpcServer protocol crashed`,e)),Bh(e=>Dp(f,e)))});var c4=class extends (/*#__PURE__*/ Wo()(`effect/rpc/RpcServer/Protocol`)){static make=/*#__PURE__*/ Ipe()};const Kpe=/*#__PURE__*/ z(function*(e={}){let t=yield*$2,n=Uw(t.codecFor(TT())),r=t.includesFraming,i=!t.contentType.includes(`json`),a=yield*Ib(),o,s=0,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Set,u=new TextEncoder,d=Vm(function*(){let d=Sb(),f=ms(d.context,wM),p=ms(d.context,xp),m=Object.entries(f.headers),h=yield*lh(i?L(f.arrayBuffer,e=>new Uint8Array(e)):f.text),g=s++,_=yield*Ib({capacity:r&&e.streamBufferSize!==`unbounded`?e.streamBufferSize??16:void 0}),v=t.makeUnsafe(),y=[],b=e=>typeof e==`string`?Rb(_,u.encode(e)):Rb(_,e),x={write:r?e=>{try{let t=v.encode(e);return t===void 0?P:b(t)}catch(e){return b(v.encode(Q2(n(e))))}}:e=>e._tag===`Request`&&e.isNotification===!0?P:Rb(_,e),end:Hb(_)};yield*wp(p,()=>(c.delete(g),l.delete(g),zb(a,g),_.state._tag===`Done`?P:Zm(Wb(_),Mm(y,e=>o(g,{_tag:`Interrupt`,requestId:e}),{discard:!0})))),c.set(g,x),l.add(g);try{let e=v.decode(h);for(let t=0;t<e.length;t++){let n=e[t];n._tag===`Request`&&(y.push(Z2(n.id)),n.headers=m.concat(n.headers)),yield*o(g,n)}}catch(e){yield*x.write(Q2(n(e)))}if(yield*o(g,Dpe),!r){let e=yield*Xie(_),n=v.encode(e);return dj(n===void 0?``:n,{contentType:t.contentType})}let S=yield*Gb(_);return _.state._tag===`Done`?lj(qpe(S),{contentType:t.contentType}):gj(vE(S).pipe(DE(yE(_))),{contentType:t.contentType})});return{protocol:yield*c4.make(e=>(o=e,M({disconnects:a,send(e,t){let n=c.get(e);return n?n.write(t):P},end(e){let t=c.get(e);return t?t.end:P},clientIds:N(()=>l),initialMessage:Im,supportsAck:!1,supportsTransferables:!1,supportsSpanPropagation:!1,supportsNotifications:r,codecFor:t.codecFor}))),httpEffect:d}}),qpe=e=>{if(e.length===0)return/* @__PURE__ */ new Uint8Array;if(e.length===1)return e[0];let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n},Jpe={add(...e){let t=new Map(this.requests);for(let n of e)t.set(n._tag,n);return l4({requests:t,annotations:this.annotations})},merge(...e){let t=new Map(this.requests),n=new Map(this.annotations.mapUnsafe);for(let r of e){for(let[e,n]of r.requests)t.set(e,n);for(let[e,t]of r.annotations.mapUnsafe)n.set(e,t)}return l4({requests:t,annotations:ts(n)})},omit(...e){let t=new Map(this.requests);for(let n of e)t.delete(n);return l4({requests:t,annotations:this.annotations})},middleware(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of this.requests)t.set(n,r.middleware(e));return l4({requests:t,annotations:this.annotations})},toHandlers(e){let t=this;return Vm(function*(){let n=yield*Th(),r=Am(e)?yield*e:e,i=/* @__PURE__ */ new Map;return t.requests.forEach((e,t)=>{i.set(e.key,{tag:e._tag,handler:r[t],context:n})}),ts(i)})},prefix(e){let t=/* @__PURE__ */ new Map;for(let n of this.requests.values()){let r=n.prefix(e);t.set(r._tag,r)}return l4({requests:t,annotations:this.annotations})},toLayer(e){return Wp(this.toHandlers(e))},of:k,toLayerHandler(e,t){let n=this;return Wp(Vm(function*(){let r=yield*Th(),i=Am(t)?yield*t:t,a=/* @__PURE__ */ new Map,o=n.requests.get(e);return a.set(o.key,{handler:i,context:r}),ts(a)}))},accessHandler(e){return Eh(t=>{let n=this.requests.get(e),{handler:r,context:i}=ps(t,n.key);return M((e,t)=>{t.rpc=n;let a=r(e,t),o=X2(a)?a.value:a;return Am(o)?Dh(o,i):BE(o,i)})})},annotate(e,t){return l4({requests:this.requests,annotations:ls(this.annotations,e,t)})},annotateRpcs(e,t){return this.annotateRpcsMerge(cs(e,t))},annotateMerge(e){return l4({requests:this.requests,annotations:bs(this.annotations,e)})},annotateRpcsMerge(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of this.requests)t.set(n,r.annotateMerge(bs(e,r.annotations)));return l4({requests:t,annotations:this.annotations})}},l4=e=>Object.assign(function(){},Jpe,{requests:e.requests,annotations:e.annotations}),u4=(...e)=>l4({requests:new Map(e.map(e=>[e._tag,e])),annotations:os()}),Ype=e=>{switch(e){case`SHA-1`:return`sha1`;case`SHA-256`:return`sha256`;case`SHA-384`:return`sha384`;case`SHA-512`:return`sha512`}},Xpe=/* @__PURE__ */ zp(eO,/* @__PURE__ */ tO({randomBytes:en.randomBytes,digest:(e,t)=>Gm({try:()=>Uint8Array.from(en.createHash(Ype(e)).update(t).digest()),catch:e=>KT({module:`Crypto`,method:`digest`,_tag:`Unknown`,description:`Could not compute digest`,cause:e})})})),d4=e=>t=>qT({module:`FileSystem`,method:e,description:t.message??String(t)}),f4=(e,t)=>{let n=Number(e);if(!Number.isSafeInteger(n))throw RangeError(`${t} exceeds the safe integer range: ${e}`);return n},p4=e=>Ra(Na(e),Vo),m4=(e,t)=>Gm({try:()=>f4(e,`position`),catch:d4(t)}),Zpe=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.access,/*#__PURE__*/ D2(`FileSystem`,`access`),/*#__PURE__*/ d4(`access`));return(t,n)=>{let r=fn.constants.F_OK;return n?.readable&&(r|=fn.constants.R_OK),n?.writable&&(r|=fn.constants.W_OK),e(t,r)}})(),Qpe=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.cp,/*#__PURE__*/ D2(`FileSystem`,`copy`),/*#__PURE__*/ d4(`copy`));return(t,n,r)=>e(t,n,{force:r?.overwrite??!1,preserveTimestamps:r?.preserveTimestamps??!1,recursive:!0})})(),$pe=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.copyFile,/*#__PURE__*/ D2(`FileSystem`,`copyFile`),/*#__PURE__*/ d4(`copyFile`));return(t,n)=>e(t,n)})(),eme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.chmod,/*#__PURE__*/ D2(`FileSystem`,`chmod`),/*#__PURE__*/ d4(`chmod`));return(t,n)=>e(t,n)})(),tme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.chown,/*#__PURE__*/ D2(`FileSystem`,`chown`),/*#__PURE__*/ d4(`chown`));return(t,n,r)=>e(t,n,r)})(),nme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.glob,/*#__PURE__*/ D2(`FileSystem`,`glob`),/*#__PURE__*/ d4(`glob`));return(t,n)=>e(t,{cwd:n?.root,exclude:n?.exclude})})(),rme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.link,/*#__PURE__*/ D2(`FileSystem`,`link`),/*#__PURE__*/ d4(`link`));return(t,n)=>e(t,n)})(),ime=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.mkdir,/*#__PURE__*/ D2(`FileSystem`,`makeDirectory`),/*#__PURE__*/ d4(`makeDirectory`));return(t,n)=>e(t,{recursive:n?.recursive??!1,mode:n?.mode})})(),h4=e=>{let t=gg(fn.mkdtemp,D2(`FileSystem`,e),d4(e));return e=>Rm(()=>{let n=e?.prefix??``,r=typeof e?.directory==`string`?on.join(e.directory,`.`):yee.tmpdir();return t(n?on.join(r,n):r+`/`)})},ame=/*#__PURE__*/ h4(`makeTempDirectory`),g4=e=>{let t=gg(fn.rm,D2(`FileSystem`,e),d4(e));return(e,n)=>t(e,{recursive:n?.recursive??!1,force:n?.force??!1})},ome=/*#__PURE__*/ g4(`remove`),sme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ h4(`makeTempDirectoryScoped`),t=/*#__PURE__*/ g4(`makeTempDirectoryScoped`);return n=>Fh(e(n),e=>lh(t(e,{recursive:!0})))})(),cme=/*#__PURE__*/ (e=>{let t=gg(fn.open,D2(`FileSystem`,e),d4(e)),n=gg(fn.close,D2(`FileSystem`,e),d4(e));return(e,r)=>Nn(Fh(t(e,r?.flag??`r`,r?.mode),e=>lh(n(e))),L(e=>lme(e,r?.flag?.startsWith(`a`)??!1)))})(`open`),lme=/*#__PURE__*/ (()=>{let e=e=>gg(fn.read,D2(`FileSystem`,e),d4(e)),t=/*#__PURE__*/ e(`read`),n=/*#__PURE__*/ e(`readAlloc`),r=/*#__PURE__*/ gg(fn.fstat,/*#__PURE__*/ D2(`FileSystem`,`stat`),/*#__PURE__*/ d4(`stat`)),i=/*#__PURE__*/ gg(fn.ftruncate,/*#__PURE__*/ D2(`FileSystem`,`truncate`),/*#__PURE__*/ d4(`truncate`)),a=/*#__PURE__*/ gg(fn.fsync,/*#__PURE__*/ D2(`FileSystem`,`sync`),/*#__PURE__*/ d4(`sync`)),o=e=>gg(fn.write,D2(`FileSystem`,e),d4(e)),s=/*#__PURE__*/ o(`write`),c=/*#__PURE__*/ o(`writeAll`);class l{[QE];fd;append;position=/*#__PURE__*/ BigInt(0);constructor(e,t){this[QE]=QE,this.fd=e,this.append=t}get stat(){return I(r(this.fd,{bigint:!0}),v4)}get sync(){return a(this.fd)}seek(e,t){return Rm(()=>{let n=t===`start`?e:this.position+e;return n<BigInt(0)?F(qT({module:`FileSystem`,method:`seek`,description:`Cannot seek before the start of the file`})):(this.position=n,M(n))})}read(e){return Rm(()=>{let n=this.position;return L(t(this.fd,{buffer:e,position:n}),e=>(this.position=n+BigInt(e),e))})}readAlloc(e){return Rm(()=>{try{if(!Number.isInteger(e)||e<0)throw RangeError(`size must be a non-negative integer`);let t=Buffer.allocUnsafeSlow(e),r=this.position;return L(n(this.fd,{buffer:t,position:r}),n=>{if(n===0)return Da();if(this.position=r+BigInt(n),n===e)return Oa(t);let i=Buffer.allocUnsafeSlow(n);return t.copy(i,0,0,n),Oa(i)})}catch(e){return F(d4(`readAlloc`)(e))}})}truncate(e){return L(i(this.fd,e||void 0),()=>{if(!this.append){let t=BigInt(e??0);this.position>t&&(this.position=t)}})}write(e){return Rm(()=>{let t=this.position;return I(this.append?M(void 0):m4(t,`write`),n=>L(s(this.fd,e,void 0,void 0,n),e=>(this.append||(this.position=t+BigInt(e)),e)))})}writeAllChunk(e){return Rm(()=>{let t=this.position;return I(this.append?M(void 0):m4(t,`writeAll`),n=>I(c(this.fd,e,void 0,void 0,n),n=>n===0?F(KT({module:`FileSystem`,method:`writeAll`,_tag:`WriteZero`,pathOrDescriptor:this.fd,description:`write returned 0 bytes written`})):(this.append||(this.position=t+BigInt(n)),n<e.length?this.writeAllChunk(e.subarray(n)):P)))})}writeAll(e){return e.length===0?P:this.writeAllChunk(e)}}return(e,t)=>new l(e,t)})(),_4=e=>{let t=h4(e);return z(function*(e){let n=yield*t(e),r=en.randomBytes(6).toString(`hex`),i=on.join(n,e?.suffix?`${r}${e.suffix}`:r);return yield*b4(i,/* @__PURE__ */ new Uint8Array),i})},ume=/*#__PURE__*/ _4(`makeTempFile`),dme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ _4(`makeTempFileScoped`),t=/*#__PURE__*/ g4(`makeTempFileScoped`);return n=>Fh(e(n),e=>lh(t(on.dirname(e),{recursive:!0})))})(),fme=(e,t)=>Fm({try:()=>fn.promises.readdir(e,t),catch:t=>D2(`FileSystem`,`readDirectory`)(t,[e])}),pme=e=>zm((t,n)=>{try{fn.readFile(e,{signal:n},(n,r)=>{t(n?F(D2(`FileSystem`,`readFile`)(n,[e])):M(r))})}catch(e){t(F(d4(`readFile`)(e)))}}),mme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.readlink,/*#__PURE__*/ D2(`FileSystem`,`readLink`),/*#__PURE__*/ d4(`readLink`));return t=>e(t)})(),hme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.realpath,/*#__PURE__*/ D2(`FileSystem`,`realPath`),/*#__PURE__*/ d4(`realPath`));return t=>e(t)})(),gme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.rename,/*#__PURE__*/ D2(`FileSystem`,`rename`),/*#__PURE__*/ d4(`rename`));return(t,n)=>e(t,n)})(),v4=e=>Gm({try:()=>({type:e.isFile()?`File`:e.isDirectory()?`Directory`:e.isSymbolicLink()?`SymbolicLink`:e.isBlockDevice()?`BlockDevice`:e.isCharacterDevice()?`CharacterDevice`:e.isFIFO()?`FIFO`:e.isSocket()?`Socket`:`Unknown`,mtime:Na(e.mtime),atime:Na(e.atime),birthtime:Na(e.birthtime),dev:f4(e.dev,`dev`),rdev:p4(e.rdev),ino:p4(e.ino),mode:f4(e.mode,`mode`),nlink:p4(e.nlink),uid:p4(e.uid),gid:p4(e.gid),size:ov(e.size),blksize:e.blksize===void 0?Da():Oa(ov(e.blksize)),blocks:p4(e.blocks)}),catch:d4(`stat`)}),y4=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.stat,/*#__PURE__*/ D2(`FileSystem`,`stat`),/*#__PURE__*/ d4(`stat`));return t=>I(e(t,{bigint:!0}),v4)})(),_me=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.symlink,/*#__PURE__*/ D2(`FileSystem`,`symlink`),/*#__PURE__*/ d4(`symlink`));return(t,n)=>e(t,n)})(),vme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.truncate,/*#__PURE__*/ D2(`FileSystem`,`truncate`),/*#__PURE__*/ d4(`truncate`));return(t,n)=>e(t,n)})(),yme=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ gg(fn.utimes,/*#__PURE__*/ D2(`FileSystem`,`utime`),/*#__PURE__*/ d4(`utime`));return(t,n,r)=>e(t,n,r)})(),bme=(e,t,n)=>fE(r=>Fh(N(()=>{let i=t.type===`Directory`?e:on.dirname(e),a=fn.watch(e,{recursive:n?.recursive??!1},(e,t)=>{if(t)switch(e){case`rename`:ig(wh(y4(on.resolve(i,t)),{onSuccess:e=>Rb(r,{_tag:`Create`,path:t}),onFailure:e=>Rb(r,{_tag:`Remove`,path:t})}));return;case`change`:zb(r,{_tag:`Update`,path:t});return}});return a.on(`error`,t=>{Vb(r,Bf(KT({module:`FileSystem`,_tag:`Unknown`,method:`watch`,pathOrDescriptor:e,cause:t})))}),a.on(`close`,()=>{Ub(r)}),a}),e=>N(()=>e.close()))),xme=(e,t,n)=>y4(t).pipe(L(r=>e.pipe(Ra(e=>e.register(t,r,n)),Ma(()=>bme(t,r,n)))),xE),b4=(e,t,n)=>zm((r,i)=>{try{fn.writeFile(e,t,{signal:i,flag:n?.flag,mode:n?.mode},t=>{r(t?F(D2(`FileSystem`,`writeFile`)(t,[e])):P)})}catch(e){r(F(d4(`writeFile`)(e)))}}),Sme=/*#__PURE__*/ L(/*#__PURE__*/ kh($E),e=>ZE({access:Zpe,chmod:eme,chown:tme,copy:Qpe,copyFile:$pe,glob:nme,link:rme,makeDirectory:ime,makeTempDirectory:ame,makeTempDirectoryScoped:sme,makeTempFile:ume,makeTempFileScoped:dme,open:cme,readDirectory:fme,readFile:pme,readLink:mme,realPath:hme,remove:ome,rename:gme,stat:y4,symlink:_me,truncate:vme,utimes:yme,watch(t,n){return xme(e,t,n)},writeFile:b4})),x4=/* @__PURE__ */ Hp(XE)(Sme);var Cme=class extends ri{[Jk];source;onError;remoteAddressOverride;constructor(e,t,n){super(),this[Jk]=Jk,this.source=e,this.onError=t,this.remoteAddressOverride=n}get headers(){return nw(this.source.headers)}get remoteAddress(){return this.remoteAddressOverride??Na(this.source.socket?.remoteAddress)}textEffect;get text(){return this.textEffect||=L(this.arrayBuffer,e=>Buffer.from(e).toString(`utf8`)),this.textEffect}get textUnsafe(){return cg(this.text)}get json(){return I(this.text,e=>Gm({try:()=>e===``?null:JSON.parse(e),catch:this.onError}))}get jsonUnsafe(){return cg(this.json)}get urlParamsBody(){return I(this.text,e=>Gm({try:()=>gw(new URLSearchParams(e)),catch:this.onError}))}get stream(){return A2({evaluate:()=>this.source,onError:this.onError})}arrayBufferEffect;get arrayBuffer(){return this.arrayBufferEffect?this.arrayBufferEffect:(this.arrayBufferEffect=qm(e=>j2(()=>this.source,{onError:this.onError,maxBytes:e.getRef(Xk)})).pipe(Vh,cg),this.textEffect=L(this.arrayBufferEffect,e=>new TextDecoder().decode(e)),this.arrayBufferEffect)}};const wme=/*#__PURE__*/ new Set(typeof Cn.zstdCompress==`function`?[`gzip`,`deflate`,`br`,`zstd`]:[`gzip`,`deflate`,`br`]),S4=(e,t)=>{let n={};return e!==void 0&&(n[Cn.constants.BROTLI_PARAM_QUALITY]=e),t!==void 0&&(n[Cn.constants.BROTLI_PARAM_SIZE_HINT]=t),{params:n}},C4=e=>e===void 0||e===3?void 0:{params:{[Cn.constants.ZSTD_c_compressionLevel]:e}},Tme=(e,t,n)=>zm(r=>{let i=(e,t)=>r(e===null?M(t):Wm(e));switch(t){case`gzip`:Cn.gzip(e,{level:n?.level},i);break;case`deflate`:Cn.deflate(e,{level:n?.level},i);break;case`br`:Cn.brotliCompress(e,S4(n?.level,e.byteLength),i);break;case`zstd`:{let t=C4(n?.level);t===void 0?Cn.zstdCompress(e,i):Cn.zstdCompress(e,t,i);break}}}),Eme=e=>({algorithms:e.algorithms,compressResponse(t,n,r){let i=t.body;return i._tag===`Uint8Array`?L(Tme(i.body,n,r),e=>_j(Sj(t,ik(e,t.headers[`content-type`]??i.contentType)),`content-length`,e.byteLength.toString())):e.compressResponse(t,n,r)}}),w4=(e,t)=>{switch(e){case`gzip`:return Cn.createGzip({level:t?.level,flush:Cn.constants.Z_SYNC_FLUSH});case`deflate`:return Cn.createDeflate({level:t?.level,flush:Cn.constants.Z_SYNC_FLUSH});case`br`:return Cn.createBrotliCompress({...S4(t?.level),flush:Cn.constants.BROTLI_OPERATION_FLUSH});case`zstd`:return Cn.createZstdCompress({...C4(t?.level),flush:Cn.constants.ZSTD_e_flush})}},T4=(e,t)=>vj(Sj(e,t),`content-length`),Dme=/*#__PURE__*/ Fj({platform:`node`,compression:/* @__PURE__ */ Eme({algorithms:wme,compressResponse(e,t,n){let r=e.body;switch(r._tag){case`Stream`:return M(T4(e,pk(ype(r.stream,{evaluate:()=>w4(t,n)}),e.headers[`content-type`]??r.contentType)));case`Raw`:{let i=r.body instanceof yn?r.body:yn.fromWeb(new Response(r.body).body),a=w4(t,n);return i.on(`error`,e=>a.destroy(e)),a.on(`error`,e=>i.destroy(e)),a.on(`close`,()=>i.destroy()),M(T4(e,nk(i.pipe(a),{contentType:e.headers[`content-type`]??r.contentType})))}default:return M(e)}}}),fileResponse(e,t,n,r,i,a,o){let s=o===BigInt(0)?yn.from([]):fn.createReadStream(e,{start:i,end:a===void 0?void 0:a-1});return hj(s,{headers:{...r,"content-type":r[`content-type`]??Ma(Nj(e),()=>`application/octet-stream`),"content-length":o.toString()},status:t,statusText:n})},fileWebResponse(e,t,n,r,i){return hj(yn.fromWeb(e.stream()),{headers:ow(r,rw({"content-type":r[`content-type`]??(e.type===``?Ma(Nj(e.name),()=>`application/octet-stream`):e.type),"content-length":e.size.toString()})),status:t,statusText:n})}}),Ome=/*#__PURE__*/ Nn(/*#__PURE__*/ Hp(Pj)(Dme),/*#__PURE__*/ Qp(x4),/*#__PURE__*/ Qp(JO));var kme=class extends _n{_parser;_canWrite=!0;_writeCallback;constructor(e){super({readableObjectMode:!0});let t,n;this._parser=_se({...e,onField:(e,n)=>{if(t!==void 0)return;let r={_tag:`Field`,info:e,value:n};this.push(r),this.emit(`field`,r)},onFile:e=>{if(t!==void 0)return e=>{};let r=new jme(e,this);return n=r,this.push(r),this.emit(`file`,r),e=>{t===void 0&&(this._canWrite=r.push(e),e===null&&!this._canWrite&&(n=void 0,this._resume()))}},onError:e=>{this.emit(`error`,e),n?.emit(`error`,e),t=e},onDone:()=>{this.push(null)}})}_resume(){if(this._canWrite=!0,this._writeCallback!==void 0){let e=this._writeCallback;this._writeCallback=void 0,e()}}_read(e){}_write(e,t,n){this._parser.write(e instanceof Uint8Array?e:Buffer.from(e,t)),this._canWrite?n():this._writeCallback=n}_final(e){this._parser.end(),e()}};const Ame=e=>new kme(e);var jme=class extends yn{_tag=`File`;filename;info;_parent;constructor(e,t){super(),this.info=e,this._parent=t,this.filename=e.filename}_read(e){this._parent._canWrite===!1&&this._parent._resume()}};const E4=(e,t)=>Cse(t).pipe(L(t=>A2({evaluate(){let n=Ame(t);return e.pipe(n),n},onError:e=>Ime(e)})),xE,SE(Nme)),Mme=(e,t)=>Ese(E4(e,t),(e,t)=>Fm({try:n=>wee.pipeline(t.file,fn.createWriteStream(e),{signal:n}),catch:e=>_M.fromReason(`InternalError`,e)})),Nme=e=>e._tag===`Field`?new Pme(e.info,e.value):new Fme(e);var D4=class extends ri{[hM];constructor(){super(),this[hM]=hM}},Pme=class extends D4{_tag=`Field`;key;contentType;value;constructor(e,t){super(),this.key=e.name,this.contentType=e.contentType,this.value=yse(e,t)}toJSON(){return{_id:`@effect/platform/Multipart/Part`,_tag:`Field`,key:this.key,value:this.value,contentType:this.contentType}}},Fme=class extends D4{_tag=`File`;key;name;contentType;content;contentEffect;file;constructor(e){super(),this.file=e,this.key=e.info.name,this.name=e.filename??e.info.name,this.contentType=e.info.contentType,this.content=A2({evaluate:()=>e,onError:e=>_M.fromReason(`InternalError`,e)}),this.contentEffect=bpe(()=>e,{onError:e=>_M.fromReason(`InternalError`,e)})}toJSON(){return{_id:`@effect/platform/Multipart/Part`,_tag:`File`,key:this.key,name:this.name,contentType:this.contentType}}};function Ime(e){switch(e._tag){case`ReachedLimit`:switch(e.limit){case`MaxParts`:return _M.fromReason(`TooManyParts`,e);case`MaxFieldSize`:return _M.fromReason(`FieldTooLarge`,e);case`MaxPartSize`:return _M.fromReason(`FileTooLarge`,e);case`MaxTotalSize`:return _M.fromReason(`BodyTooLarge`,e)}default:return _M.fromReason(`Parse`,e)}}const O4=e=>({fromFileUrl:t=>Gm({try:()=>un.fileURLToPath(t,{windows:e}),catch:e=>new WT({module:`Path`,method:`fromFileUrl`,cause:e})}),toFileUrl:t=>Gm({try:()=>un.pathToFileURL(t,{windows:e}),catch:e=>new WT({module:`Path`,method:`toFileUrl`,cause:e})})});({...on.posix,.../*#__PURE__*/ O4(!1)}),{...on.win32,.../*#__PURE__*/ O4(!0)};const Lme=/* @__PURE__ */ zp(tD)({[eD]:eD,...on,.../*#__PURE__*/ O4(void 0)}),Rme=/* @__PURE__ */ zp(LO,/*#__PURE__*/ RO({args:/*#__PURE__*/ N(()=>process.argv.slice(2)),stdinIsTerminal:/*#__PURE__*/ N(()=>process.stdin.isTTY===!0),stdoutIsTerminal:/*#__PURE__*/ N(()=>process.stdout.isTTY===!0),stdout:e=>O2({evaluate:()=>process.stdout,onError:e=>KT({module:`Stdio`,method:`stdout`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stderr:e=>O2({evaluate:()=>process.stderr,onError:e=>KT({module:`Stdio`,method:`stderr`,_tag:`Unknown`,cause:e}),endOnDone:e?.endOnDone??!1}),stdin:/*#__PURE__*/ A2({evaluate:()=>process.stdin,onError:e=>KT({module:`Stdio`,method:`stdin`,_tag:`Unknown`,cause:e}),closeOnDone:!1})})),zme=/*#__PURE__*/ Hp(HO,/*#__PURE__*/ (/* @__PURE__ */ z(function*(e=k4){let t=process.stdin,n=process.stdout,r=yield*Ib(),i=t.readableEnded,a=!1,o=()=>{i=!0,a||Ub(r)};t.once(`end`,o),yield*Ih(()=>N(()=>t.off(`end`,o)));let s=yield*Zoe({acquire:Fh(N(()=>{let e=wn.createInterface({input:t,escapeCodeTimeout:50}),n=e=>zb(r,e),i=()=>{a=!1,Ub(r)};return a=!0,wn.emitKeypressEvents(t,e),e.on(`line`,n),e.once(`close`,i),t.isTTY&&t.setRawMode(!0),{rl:e,onClose:i,onLine:n}}),({rl:e,onClose:n,onLine:o})=>N(()=>{a=!1,e.off(`line`,o),e.off(`close`,n),t.isTTY&&t.setRawMode(!1),e.close(),i&&Ub(r)})),idleTimeToLive:`10 millis`}),c=N(()=>n.columns??0),l=N(()=>n.rows??0),u=Vm(function*(){let n=yield*Ib(),r=(t,r)=>{let i={input:Pa(t),key:{name:r.name??``,ctrl:!!r.ctrl,meta:!!r.meta,shift:!!r.shift}};zb(n,i),e(i)&&Ub(n)},a=setInterval(()=>{},2147483647),o=()=>{clearInterval(a),Ub(n)};return yield*Ih(()=>N(()=>{clearInterval(a),t.off(`keypress`,r),t.off(`end`,o)})),t.on(`keypress`,r),i?o():(yield*aE(s),t.once(`end`,o)),n}),d=Rm(()=>Zie(r).pipe(I(ja({onNone:()=>Nh(Zm(aE(s),qb(r))),onSome:M})),R(()=>new VO({}))));return UO({columns:c,rows:l,readInput:u,readLine:d,display:e=>Kh(zm(t=>{n.write(e,e=>Kn(e)?t(P):t(F(qT({module:`Terminal`,method:`display`,description:`Failed to write prompt to stdout`,cause:e}))))}))})}))(k4));function k4(e){return e.key.ctrl&&(e.key.name===`c`||e.key.name===`d`)}const Bme=/*#__PURE__*/ $p(Spe,/*#__PURE__*/ Yp(x4,Xpe,Lme,Rme,zme)),Vme=(e,t)=>{let n=Rse(e,Wme,t.middleware);return qm(e=>{let r=e.context;return M(function(i,a){let o=ls(r,wM,new Hme(i,a)),s=Cb(ag(o)(n),t.scope);s.pollUnsafe()===void 0&&a.on(`close`,()=>{a.writableEnded||s.interruptUnsafe(e.id,Xj.annotation)})})})};var Hme=class e extends Cme{[CM];response;upgradeEffect;url;headersOverride;constructor(e,t,n,r=e.url,i,a){super(e,e=>new Kj({reason:new qj({request:this,cause:e})}),a),this[CM]=CM,this.response=t,this.upgradeEffect=n,this.url=r,this.headersOverride=i}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=YC(this.headers.cookie??``)}get resolvedResponse(){return typeof this.response==`function`?this.response():this.response}modify(t){return new e(this.source,this.response,this.upgradeEffect,t.url??this.url,t.headers??this.headersOverride,`remoteAddress`in t?t.remoteAddress:this.remoteAddressOverride)}get originalUrl(){return this.source.url}cachedMethod;get method(){return this.cachedMethod??=this.source.method.toUpperCase()}get headers(){return this.headersOverride??=this.source.headers,this.headersOverride}multipartEffect;get multipart(){return this.multipartEffect||=cg(Vh(Mme(this.source,this.source.headers))),this.multipartEffect}get multipartStream(){return E4(this.source,this.source.headers)}get upgrade(){return this.upgradeEffect??F(new Kj({reason:new qj({request:this,description:`not an upgradeable ServerRequest`})}))}toString(){return`ServerRequest(${this.method} ${this.url})`}toJSON(){return Zk(this,{_id:`HttpServerRequest`,method:this.method,url:this.originalUrl})}};const Ume=/*#__PURE__*/ Yp(Ome,YO,Bme),Wme=(e,t)=>{let n=e.resolvedResponse;if(n.writableEnded)return P;let r=t.headers;if(!LC(t.cookies)){r={...r};let e=JC(t.cookies);r[`set-cookie`]!==void 0&&e.push(r[`set-cookie`]),r[`set-cookie`]=e}if(e.method===`HEAD`)return n.writeHead(t.status,t.statusText,r),Zm(Gme(t.body),zm(e=>{let t=!1,r=()=>{t||(t=!0,n.off(`close`,r),e(P))};n.once(`close`,r),n.end(r)}));let i=t.body;switch(i._tag){case`Empty`:return n.writeHead(t.status,t.statusText,r),n.end(),P;case`Raw`:return n.writeHead(t.status,t.statusText,r),typeof i.body==`object`&&i.body!==null&&`pipe`in i.body&&typeof i.body.pipe==`function`?Fm({try:e=>Tee(i.body,n,{signal:e,end:!0}),catch:n=>new Kj({reason:new Yj({request:e,response:t,description:`Error writing raw response`,cause:n})})}).pipe(Wh,dh(A4(n,t))):zm(e=>{n.end(i.body,()=>e(P))});case`Uint8Array`:return n.writeHead(t.status,t.statusText,r),i.contentLength<1048576?(n.end(i.text??i.body),P):zm(e=>{n.end(i.text??i.body,()=>e(P))});case`FormData`:return Rm(()=>{let a=new globalThis.Response(i.formData);return n.writeHead(t.status,t.statusText,{...r,...Object.fromEntries(a.headers)}),zm((r,i)=>{yn.fromWeb(a.body,{signal:i}).pipe(n).on(`error`,n=>{r(F(new Kj({reason:new Yj({request:e,response:t,description:`Error writing FormData response`,cause:n})})))}).once(`finish`,()=>{r(P)})}).pipe(Wh,dh(A4(n,t)))});case`Stream`:{n.writeHead(t.status,t.statusText,r);let e=wb();return n.on(`drain`,()=>e.openUnsafe()),i.stream.pipe(ME,GE(t=>{let r=t.length>1?Buffer.concat(t):t[0];return n.write(r)?P:(e.closeUnsafe(),e.await)}),Wh,Ch({onSuccess:()=>N(()=>n.end()),onFailure:A4(n,t)}))}}},Gme=e=>{let t=e._tag===`Raw`?e.body:void 0;return t instanceof yn?N(()=>t.destroy()):P},A4=(e,t)=>n=>I(Qj(n),([r,i])=>{let a=e.headersSent;return a||e.writeHead(r.status,r.statusText),e.writableEnded||e.end(),Hm(a?Wne(n,Vf(t)):i)}),j4=/*#__PURE__*/ U({method:lT([`GET`,`POST`,`PATCH`,`PUT`,`DELETE`,`HEAD`,`OPTIONS`,`TRACE`,`QUERY`]),url:V,urlParams:W(oT([V,V])),hash:qw(V),headers:rT(V,G([V,jT(V)]))}).annotate({identifier:`HttpRequestDetails`}),Kme=/*#__PURE__*/ U({status:ST,headers:rT(V,G([V,jT(V)]))}).annotate({identifier:`HttpResponseDetails`}),M4=`~effect/ai/AiError/Reason`,N4=()=>Yme.pipe(pT(M({})),coe(M({}))),qme=e=>{let t=Gr(e),n={};for(let e in t){let r=t[e];Hr(n,e,bC(r)?r.toString():r)}return n};var Jme=class e extends (/*#__PURE__*/ LT(`effect/ai/AiError/NetworkError`)({_tag:/*#__PURE__*/ mT(`NetworkError`),reason:/*#__PURE__*/ lT([`TransportError`,`EncodeError`,`InvalidUrlError`]),request:j4,description:/*#__PURE__*/ qw(V)})){[M4]=M4;get isRetryable(){return this.reason===`TransportError`}static fromRequestError(t){return new e({description:t.description,reason:t._tag,request:{hash:Fa(t.request.hash),headers:qme(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 Yme=/*#__PURE__*/ rT(V,/*#__PURE__*/ uT(Moe)),P4=/*#__PURE__*/ U({promptTokens:qw(ST),completionTokens:qw(ST),totalTokens:qw(ST)}).annotate({identifier:`UsageInfo`}),F4=/*#__PURE__*/ U({request:j4,response:qw(Kme),body:qw(V)}).annotate({identifier:`HttpContext`});var Xme=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/RateLimitError`)({_tag:/*#__PURE__*/ mT(`RateLimitError`),retryAfter:/*#__PURE__*/ qw(Eoe),metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;get isRetryable(){return!0}get message(){let e=`Rate limit exceeded`;return this.retryAfter&&(e+=`. Retry after ${pc(this.retryAfter)}`),e}},Zme=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/QuotaExhaustedError`)({_tag:/*#__PURE__*/ mT(`QuotaExhaustedError`),resetAt:/*#__PURE__*/ qw(Toe),metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;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.`}},Qme=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/AuthenticationError`)({_tag:/*#__PURE__*/ mT(`AuthenticationError`),kind:/*#__PURE__*/ lT([`InvalidKey`,`ExpiredKey`,`MissingKey`,`InsufficientPermissions`,`Unknown`]),description:/*#__PURE__*/ qw(V),metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;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}},$me=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ContentPolicyError`)({_tag:/*#__PURE__*/ mT(`ContentPolicyError`),description:V,metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;get isRetryable(){return!1}get message(){return`Content policy violation: ${this.description}`}},ehe=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/InvalidRequestError`)({_tag:/*#__PURE__*/ mT(`InvalidRequestError`),parameter:/*#__PURE__*/ qw(V),constraint:/*#__PURE__*/ qw(V),description:/*#__PURE__*/ qw(V),metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;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}},the=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/InternalProviderError`)({_tag:/*#__PURE__*/ mT(`InternalProviderError`),description:V,metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;get isRetryable(){return!0}get message(){return`Internal provider error: ${this.description}`}},nhe=class e extends (/*#__PURE__*/ LT(`effect/ai/AiError/InvalidOutputError`)({_tag:/*#__PURE__*/ mT(`InvalidOutputError`),description:V,metadata:/*#__PURE__*/ N4(),usage:/*#__PURE__*/ qw(P4)})){[M4]=M4;get isRetryable(){return!0}static fromSchemaError(t){return new e({description:t.message})}get message(){return`Invalid output: ${this.description}`}},rhe=class e extends (/*#__PURE__*/ LT(`effect/ai/AiError/StructuredOutputError`)({_tag:/*#__PURE__*/ mT(`StructuredOutputError`),description:V,responseText:V,metadata:/*#__PURE__*/ N4(),usage:/*#__PURE__*/ qw(P4)})){[M4]=M4;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}`}},ihe=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/UnsupportedSchemaError`)({_tag:/*#__PURE__*/ mT(`UnsupportedSchemaError`),description:V,metadata:/*#__PURE__*/ N4()})){[M4]=M4;get isRetryable(){return!1}get message(){return`Unsupported schema: ${this.description}`}},ahe=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/UnknownError`)({_tag:/*#__PURE__*/ mT(`UnknownError`),description:/*#__PURE__*/ qw(V),metadata:/*#__PURE__*/ N4(),http:/*#__PURE__*/ qw(F4)})){[M4]=M4;get isRetryable(){return!1}get message(){return this.description??`Unknown error`}},I4=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ToolNotFoundError`)({_tag:/*#__PURE__*/ mT(`ToolNotFoundError`),toolName:V,availableTools:/*#__PURE__*/ W(V)})){[M4]=M4;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}`}},L4=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ToolParameterValidationError`)({_tag:/*#__PURE__*/ mT(`ToolParameterValidationError`),toolName:V,description:V})){[M4]=M4;get isRetryable(){return!0}get message(){return`Invalid parameters for tool '${this.toolName}': ${this.description}`}},R4=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/InvalidToolResultError`)({_tag:/*#__PURE__*/ mT(`InvalidToolResultError`),toolName:V,description:V})){[M4]=M4;get isRetryable(){return!1}get message(){return`Tool '${this.toolName}' returned invalid result: ${this.description}`}},z4=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ToolResultEncodingError`)({_tag:/*#__PURE__*/ mT(`ToolResultEncodingError`),toolName:V,toolResult:Qw,description:V})){[M4]=M4;get isRetryable(){return!1}get message(){return`Failed to encode result for tool '${this.toolName}': ${this.description}`}};const ohe=/*#__PURE__*/ G([Xme,Zme,Qme,$me,ehe,the,Jme,nhe,rhe,ihe,ahe,I4,L4,R4,z4,class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ToolConfigurationError`)({_tag:/*#__PURE__*/ mT(`ToolConfigurationError`),toolName:V,description:V})){[M4]=M4;get isRetryable(){return!1}get message(){return`Invalid configuration for tool '${this.toolName}': ${this.description}`}},class extends (/*#__PURE__*/ LT(`effect/ai/AiError/ToolkitRequiredError`)({_tag:/*#__PURE__*/ mT(`ToolkitRequiredError`),pendingApprovals:/*#__PURE__*/ W(V),description:/*#__PURE__*/ qw(V)})){[M4]=M4;get isRetryable(){return!1}get message(){return`Toolkit required to resolve pending tool approvals: ${this.pendingApprovals.join(`, `)}`}},class extends (/*#__PURE__*/ LT(`effect/ai/AiError/InvalidUserInputError`)({_tag:/*#__PURE__*/ mT(`InvalidUserInputError`),description:V})){[M4]=M4;get isRetryable(){return!1}get message(){return`Invalid user input: ${this.description}`}}]),B4=`~effect/ai/AiError`;var V4=class extends (/*#__PURE__*/ LT(`effect/ai/AiError/AiError`)({_tag:/*#__PURE__*/ mT(`AiError`),module:V,method:V,reason:ohe})){[B4]=B4;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 she=e=>A(e,B4),che=e=>A(e,M4),H4=e=>new V4(e),lhe=e=>A(e,`~effect/ai/Tool/Dynamic`),U4=(e,t)=>Object.assign(Object.create(Object.getPrototypeOf(e)),e,t),W4={"~effect/ai/Tool":{_Requirements:k},pipe(){return Tn(this,arguments)},addDependency(){return U4(this)},setParameters(e){return U4(this,{parametersSchema:e,jsonSchema:void 0})},setSuccess(e){return U4(this,{successSchema:e})},setFailure(e){return U4(this,{failureSchema:e})},setNeedsApproval(e){return U4(this,{needsApproval:e})},annotate(e,t){return U4(this,{annotations:ls(this.annotations,e,t)})},annotateMerge(e){return U4(this,{annotations:bs(this.annotations,e)})}};({...W4}),{...W4};const uhe=e=>{let t=Object.assign(Object.create(W4),e);return t.id=`effect/ai/Tool/${e.name}`,t},G4=(e,t)=>{let n=t?.success??eT,r=t?.failure??Xw;return uhe({name:e,description:t?.description,parametersSchema:t?.parameters??vhe,successSchema:n,failureSchema:r,failureMode:t?.failureMode??`error`,annotations:os(),needsApproval:t?.needsApproval})},dhe=e=>{if(e.description!==void 0)return e.description;if(Gw(e.parametersSchema))return cb(e.parametersSchema.ast)},K4=(e,t)=>fhe(e,zT,t),fhe=(e,t,n)=>{if(Wn(n?.transformer))return n.transformer(e).jsonSchema;let r=t(e);return Object.keys(r.definitions).length>0&&(r.schema.$defs=r.definitions),r.schema};var phe=class extends (/*#__PURE__*/ Wo()(`effect/ai/Tool/Title`)){},mhe=class extends (/*#__PURE__*/ Wo()(`effect/ai/Tool/Meta`)){};const q4=/*#__PURE__*/ Cs(`effect/ai/Tool/Readonly`,{defaultValue:An}),J4=/*#__PURE__*/ Cs(`effect/ai/Tool/Destructive`,{defaultValue:kn}),Y4=/*#__PURE__*/ Cs(`effect/ai/Tool/Idempotent`,{defaultValue:An}),X4=/*#__PURE__*/ Cs(`effect/ai/Tool/OpenWorld`,{defaultValue:kn}),Z4=/*#__PURE__*/ Cs(`effect/ai/Tool/Strict`,{defaultValue:()=>void 0}),hhe=e=>hs(e.annotations,Z4),ghe=/*#__PURE__*/ U({type:lT([`execution-denied`,`execution-interrupted`]),reason:V}).annotate({identifier:`ToolExecutionFailure`}),_he=e=>G([V4,e.failureSchema,ghe]),vhe=/*#__PURE__*/ rT(V,Xw);function yhe(e,t){let n=TS(e);if(n===void 0)throw Error(`Unsupported reference ${JSON.stringify(e)}`);if(!Object.hasOwn(t,n))throw Error(`Invalid reference ${JSON.stringify(e)}`);return t[n]}function bhe(e){return typeof e.schema.$ref==`string`?{...e,schema:yhe(e.schema.$ref,e.definitions)}:e}const Q4=`~effect/ai/Toolkit`,$4=/*#__PURE__*/ Cs(`effect/ai/Toolkit/FailureOrigin`,{defaultValue:()=>`result`}),e3=(e,t)=>$f(Bf(e),cs($4,t)),xhe={.../*#__PURE__*/ Ho({label:`Toolkit`,evaluate:/*#__PURE__*/ z(function*(e){let t=this.tools,n=e.context,r=/* @__PURE__ */ new WeakMap,i=e=>{let t=r.get(e);if(Un(t)){let i=n.mapUnsafe.get(e.id),a=Gw(e.parametersSchema)?Pw(e.parametersSchema):e=>M(e),o=Bw(e.successSchema),s=Bw(_he(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:z(function*(e,n,r,a){let o=Object.hasOwn(t,e)?t[e]:void 0;if(yield*Xh({tool:e,parameters:n}),Un(o))return yield*H4({module:`Toolkit`,method:`${e}.handle`,reason:new I4({toolName:e,availableTools:Object.keys(t)})});let s=i(o),c=(t,n)=>s.encodeResult(t,n).pipe(R(n=>H4({module:`Toolkit`,method:`${e}.handle`,reason:new z4({toolName:e,toolResult:t,description:n.message})}))),l=yield*$m(s.decodeParameters(n,a));if(Ha(l)){let t=H4({module:`Toolkit`,method:`${e}.handle`,reason:new L4({toolName:e,description:l.failure.message})});return o.failureMode===`error`?yield*Hm(e3(t,`parameters`)):cE(L(c(t,!0),e=>({result:t,isFailure:!0,failureOrigin:`parameters`,preliminary:!1,encodedResult:e})))}let u=l.success,d=yield*Ib(),f={toolCallId:r,preliminary:e=>rh(Rb(d,{result:e,isFailure:!1,preliminary:!0}))},p=yield*s.handler(u,f).pipe(I(e=>Rb(d,{result:e,isFailure:!1,preliminary:!1})),Ah(e=>bs(s.context,e)),Ch({onFailure:e=>Bb(d,e),onSuccess:()=>Hb(d)}),tg),m=t=>Ow(t)?H4({module:`Toolkit`,method:`${e}.handle`,reason:new R4({toolName:e,description:`Tool handler returned invalid result: ${t.message}`})}):che(t)?H4({module:`Toolkit`,method:`${e}.handle`,reason:t}):t;return yE(d).pipe(jE(e=>{let t=m(e),n=Ow(e)?`result`:`handler`;return o.failureMode===`error`?_E(e3(t,n)):mE({result:t,isFailure:!0,failureOrigin:n,preliminary:!1})}),CE(z(function*(e){let t=yield*c(e.result,e.isFailure);return{...e,encodedResult:t}})),RE(xb(p)))})}})}),[Q4]:Q4,of:k,toHandlers(e){return Vm({self:this},function*(){let t=yield*Th(),n=Am(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 ts(r)})},toLayer(e){return Wp(this.toHandlers(e))},toJSON(){return{_id:`effect/ai/Toolkit`,tools:Array.from(Object.values(this.tools)).map(e=>e.name)}}},She=e=>Object.assign(function(){},xhe,{tools:e}),Che=(...e)=>{let t={};for(let n of e)Hr(t,n.name,n);return t},whe=(...e)=>She(Che(...e)),t3=`~effect/rpc/RpcMiddleware`,The=()=>(e,t)=>{let n=ii(),r;n!==0&&(ai(2),r=new globalThis.Error,ai(n));function i(){}let a=i;return Object.setPrototypeOf(i,Object.getPrototypeOf(Wo(e))),i.key=e,Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[t3]=t3,a.error=t?.error??Xw,a.requiredForClient=t?.requiredForClient??!1,i},n3=(e,t)=>{let n=N(t);return Kw(e).pipe(ooe({decode:F_(n),encode:k_()}),pT(n))},Z=e=>Kw(e).pipe(fT(qw(e),{decode:k_(),encode:M_(Ra(Pa))})),Ehe=/*#__PURE__*/ G([V,yT]),r3=/*#__PURE__*/ G([V,yT]);var i3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(/*#__PURE__*/ iT(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ Z(r3)}),[K]))}))){},a3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(K)}))){},o3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({_meta:/*#__PURE__*/ Z(K)}))){};const Dhe=V;({...i3.fields});var s3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({...a3.fields,nextCursor:/*#__PURE__*/ Z(Dhe)}))){};const c3=/*#__PURE__*/ lT([`user`,`assistant`]);var l3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({audience:/*#__PURE__*/ Z(/*#__PURE__*/ W(c3)),priority:/*#__PURE__*/ Z(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1}))),lastModified:/*#__PURE__*/ Z(V)}))){},u3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/Icon`)({src:V,mimeType:/*#__PURE__*/ Z(V),sizes:/*#__PURE__*/ Z(/*#__PURE__*/ W(V)),theme:/*#__PURE__*/ Z(/*#__PURE__*/ lT([`light`,`dark`]))})){},d3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({name:V,title:/*#__PURE__*/ Z(V),version:V,icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(u3)),description:/*#__PURE__*/ Z(V),websiteUrl:/*#__PURE__*/ Z(V)}))){},f3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ClientCapabilities`)({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ rT(V,/*#__PURE__*/ U({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ rT(/*#__PURE__*/ Yw([V,`/`,V]),HT)),roots:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(H)})),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({}))}))})){},Ohe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({experimental:/*#__PURE__*/ Z(/*#__PURE__*/ rT(V,/*#__PURE__*/ U({}))),extensions:/*#__PURE__*/ Z(/*#__PURE__*/ rT(/*#__PURE__*/ Yw([V,`/`,V]),HT)),logging:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),completions:/*#__PURE__*/ Z(/*#__PURE__*/ U({})),prompts:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(H)})),resources:/*#__PURE__*/ Z(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ Z(H),listChanged:/*#__PURE__*/ Z(H)})),tools:/*#__PURE__*/ Z(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ Z(H)}))}))){},p3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/McpErrorBase`)({code:ST,message:V,data:/*#__PURE__*/ Z(Zw)})){};const m3=-32601,h3=-32602,g3=-32603,_3=-32020;var v3=class extends (/*#__PURE__*/ LT(`effect/ai/McpSchema/ParseError`)({...p3.fields,_tag:/*#__PURE__*/ mT(`ParseError`),code:/*#__PURE__*/ mT(-32700)})){},y3=class extends (/*#__PURE__*/ LT(`effect/ai/McpSchema/InvalidRequest`)({...p3.fields,_tag:/*#__PURE__*/ mT(`InvalidRequest`),code:/*#__PURE__*/ mT(-32600)})){},b3=class extends (/*#__PURE__*/ LT(`effect/ai/McpSchema/MethodNotFound`)({...p3.fields,_tag:/*#__PURE__*/ mT(`MethodNotFound`),code:/*#__PURE__*/ mT(m3)})){},x3=class extends (/*#__PURE__*/ LT(`effect/ai/McpSchema/InvalidParams`)({...p3.fields,_tag:/*#__PURE__*/ mT(`InvalidParams`),code:/*#__PURE__*/ mT(h3)})){},S3=class e extends (/*#__PURE__*/ LT(`effect/ai/McpSchema/InternalError`)({...p3.fields,_tag:/*#__PURE__*/ mT(`InternalError`),code:/*#__PURE__*/ mT(g3)})){static notImplemented=/*#__PURE__*/ new e({message:`Not implemented`})};const C3=/*#__PURE__*/ G([v3,y3,b3,x3,S3,p3]);var khe=class extends (/*#__PURE__*/ X(`ping`,{success:/*#__PURE__*/ U({}),error:C3,payload:/*#__PURE__*/ dT(i3)})){},Ahe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({...a3.fields,protocolVersion:V,capabilities:Ohe,serverInfo:d3,instructions:/*#__PURE__*/ Z(V)}))){},jhe=class extends (/*#__PURE__*/ X(`initialize`,{success:Ahe,error:C3,payload:{...i3.fields,protocolVersion:V,capabilities:f3,clientInfo:d3}})){},w3=class extends (/*#__PURE__*/ X(`notifications/cancelled`,{payload:{...o3.fields,requestId:Ehe,reason:/*#__PURE__*/ Z(V)}})){},T3=class extends (/*#__PURE__*/ X(`notifications/progress`,{payload:{...o3.fields,progressToken:r3,progress:yT,total:/*#__PURE__*/ Z(yT),message:/*#__PURE__*/ Z(V)}})){},Mhe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/Resource`)({uri:V,name:V,title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),mimeType:/*#__PURE__*/ Z(V),annotations:/*#__PURE__*/ Z(l3),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(u3)),size:/*#__PURE__*/ Z(ST),_meta:/*#__PURE__*/ Z(K)})){},E3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({uri:V,mimeType:/*#__PURE__*/ Z(V),_meta:/*#__PURE__*/ Z(K)}))){},Nhe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({...E3.fields,text:V}))){},Phe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({...E3.fields,blob:OT}))){};({...s3.fields}),{...s3.fields},{...a3.fields},{...i3.fields};var D3=class extends (/*#__PURE__*/ X(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ dT(o3)})){};({...i3.fields}),{...i3.fields};var O3=class extends (/*#__PURE__*/ X(`notifications/resources/updated`,{payload:{...o3.fields,uri:V}})){},Fhe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({name:V,title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),required:/*#__PURE__*/ Z(H)}))){},Ihe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/Prompt`)({name:V,title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),arguments:/*#__PURE__*/ Z(/*#__PURE__*/ W(Fhe)),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(u3)),_meta:/*#__PURE__*/ Z(K)})){},k3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({type:/*#__PURE__*/ mT(`text`),text:V,annotations:/*#__PURE__*/ Z(l3),_meta:/*#__PURE__*/ Z(K)}))){},A3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({type:/*#__PURE__*/ mT(`image`),data:OT,mimeType:V,annotations:/*#__PURE__*/ Z(l3),_meta:/*#__PURE__*/ Z(K)}))){},j3=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({type:/*#__PURE__*/ mT(`audio`),data:OT,mimeType:V,annotations:/*#__PURE__*/ Z(l3),_meta:/*#__PURE__*/ Z(K)}))){};const M3=/*#__PURE__*/ G([k3,A3,j3,class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({type:/*#__PURE__*/ mT(`resource`),resource:/*#__PURE__*/ G([Nhe,Phe]),annotations:/*#__PURE__*/ Z(l3),_meta:/*#__PURE__*/ Z(K)}))){},class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({...Mhe.fields,type:/*#__PURE__*/ mT(`resource_link`)}))){}]);({...s3.fields}),{...a3.fields},{...i3.fields};var N3=class extends (/*#__PURE__*/ X(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ dT(o3)})){},Lhe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({title:/*#__PURE__*/ Z(V),readOnlyHint:/*#__PURE__*/ n3(H,An),destructiveHint:/*#__PURE__*/ n3(H,kn),idempotentHint:/*#__PURE__*/ n3(H,An),openWorldHint:/*#__PURE__*/ n3(H,kn)}))){};const P3=/*#__PURE__*/ iT(/*#__PURE__*/ U({type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ Z(/*#__PURE__*/ rT(V,K)),required:/*#__PURE__*/ Z(/*#__PURE__*/ W(V))}),[K]),F3=K;var I3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/Tool`)({name:V,title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),inputSchema:P3,outputSchema:/*#__PURE__*/ Z(F3),annotations:/*#__PURE__*/ Z(Lhe),icons:/*#__PURE__*/ Z(/*#__PURE__*/ W(u3)),_meta:/*#__PURE__*/ Z(K)})){};({...s3.fields});var L3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/CallToolResult`)({...a3.fields,content:/*#__PURE__*/ W(M3),structuredContent:/*#__PURE__*/ Z(HT),isError:/*#__PURE__*/ Z(H)})){};({...i3.fields});var R3=class extends (/*#__PURE__*/ X(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ dT(o3)})){};const z3=/*#__PURE__*/ lT([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]);({...i3.fields});var B3=class extends (/*#__PURE__*/ X(`notifications/message`,{payload:/*#__PURE__*/ U({...o3.fields,level:z3,logger:/*#__PURE__*/ Z(V),data:Zw})})){};const V3=/*#__PURE__*/ G([k3,A3,j3,class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ToolUseContent`)({type:/*#__PURE__*/ mT(`tool_use`),id:V,name:V,input:/*#__PURE__*/ rT(V,Qw),_meta:/*#__PURE__*/ Z(K)})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ToolResultContent`)({type:/*#__PURE__*/ mT(`tool_result`),toolUseId:V,content:/*#__PURE__*/ W(M3),structuredContent:/*#__PURE__*/ Z(HT),isError:/*#__PURE__*/ Z(H),_meta:/*#__PURE__*/ Z(K)})){}]);var Rhe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({role:c3,content:/*#__PURE__*/ G([V3,/*#__PURE__*/ W(V3)]),_meta:/*#__PURE__*/ Z(K)}))){},zhe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ToolChoice`)({mode:/*#__PURE__*/ Z(/*#__PURE__*/ lT([`auto`,`required`,`none`]))})){},Bhe=class extends (/*#__PURE__*/ gT()(/*#__PURE__*/ U({name:/*#__PURE__*/ Z(V)}))){},Vhe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ModelPreferences`)({hints:/*#__PURE__*/ Z(/*#__PURE__*/ W(Bhe)),costPriority:/*#__PURE__*/ Z(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ Z(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ Z(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1})))})){},Hhe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/CreateMessageResult`)({role:c3,content:/*#__PURE__*/ G([V3,/*#__PURE__*/ W(V3)]),_meta:/*#__PURE__*/ Z(K),model:V,stopReason:/*#__PURE__*/ Z(V)})){},H3=class extends (/*#__PURE__*/ X(`sampling/createMessage`,{success:Hhe,error:C3,payload:{messages:/*#__PURE__*/ W(Rhe),modelPreferences:/*#__PURE__*/ Z(/*#__PURE__*/ U(Vhe.fields)),systemPrompt:/*#__PURE__*/ Z(V),includeContext:/*#__PURE__*/ Z(/*#__PURE__*/ lT([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ Z(yT),maxTokens:ST,stopSequences:/*#__PURE__*/ Z(/*#__PURE__*/ W(V)),metadata:/*#__PURE__*/ Z(/*#__PURE__*/ rT(V,Qw)),tools:/*#__PURE__*/ Z(/*#__PURE__*/ W(/*#__PURE__*/ U(I3.fields))),toolChoice:/*#__PURE__*/ Z(/*#__PURE__*/ U(zhe.fields))}})){};({...a3.fields});var Uhe=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/Root`)({uri:V,name:/*#__PURE__*/ Z(V),_meta:/*#__PURE__*/ Z(K)})){},U3=class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ListRootsResult`)({roots:/*#__PURE__*/ W(Uhe)})){},W3=class extends (/*#__PURE__*/ X(`roots/list`,{success:U3,error:C3,payload:/*#__PURE__*/ dT(i3)})){};const Whe=/*#__PURE__*/ U({$schema:/*#__PURE__*/ Z(V),type:/*#__PURE__*/ mT(`object`),properties:/*#__PURE__*/ rT(V,/* @__PURE__ */ G([/* @__PURE__ */ G([class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/LegacyTitledEnum`)({type:/*#__PURE__*/ mT(`string`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),enum:/*#__PURE__*/ W(V),enumNames:/*#__PURE__*/ Z(/*#__PURE__*/ W(V)),default:/*#__PURE__*/ Z(V)})){},/* @__PURE__ */ G([class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/UntitledSingleSelectEnum`)({type:/*#__PURE__*/ mT(`string`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),enum:/*#__PURE__*/ W(V),default:/*#__PURE__*/ Z(V)})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/TitledSingleSelectEnum`)({type:/*#__PURE__*/ mT(`string`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),oneOf:/*#__PURE__*/ W(/*#__PURE__*/ U({const:V,title:V})),default:/*#__PURE__*/ Z(V)})){}]),/* @__PURE__ */ G([class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/UntitledMultiSelectEnum`)({type:/*#__PURE__*/ mT(`array`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),minItems:/*#__PURE__*/ Z(ST),maxItems:/*#__PURE__*/ Z(ST),items:/*#__PURE__*/ U({type:/*#__PURE__*/ mT(`string`),enum:/*#__PURE__*/ W(V)}),default:/*#__PURE__*/ Z(/*#__PURE__*/ W(V))})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/TitledMultiSelectEnum`)({type:/*#__PURE__*/ mT(`array`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),minItems:/*#__PURE__*/ Z(ST),maxItems:/*#__PURE__*/ Z(ST),items:/*#__PURE__*/ U({anyOf:/*#__PURE__*/ W(/*#__PURE__*/ U({const:V,title:V}))}),default:/*#__PURE__*/ Z(/*#__PURE__*/ W(V))})){}])]),class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitationString`)({type:/*#__PURE__*/ mT(`string`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),minLength:/*#__PURE__*/ Z(ST),maxLength:/*#__PURE__*/ Z(ST),format:/*#__PURE__*/ Z(/*#__PURE__*/ lT([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Z(V)})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitationNumber`)({type:/*#__PURE__*/ lT([`number`,`integer`]),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),minimum:/*#__PURE__*/ Z(yT),maximum:/*#__PURE__*/ Z(yT),default:/*#__PURE__*/ Z(yT)})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitationBoolean`)({type:/*#__PURE__*/ mT(`boolean`),title:/*#__PURE__*/ Z(V),description:/*#__PURE__*/ Z(V),default:/*#__PURE__*/ Z(H)})){}])),required:/*#__PURE__*/ Z(/*#__PURE__*/ W(V))}),Ghe=/*#__PURE__*/ G([class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitRequestFormParams`)({...i3.fields,mode:/*#__PURE__*/ Z(/*#__PURE__*/ B(`form`)),message:V,requestedSchema:Whe})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitRequestURLParams`)({...i3.fields,mode:/*#__PURE__*/ B(`url`),message:V,elicitationId:V,url:V})){}]),Khe=/*#__PURE__*/ G([class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitAcceptResult`)({...a3.fields,action:/*#__PURE__*/ B(`accept`),content:/*#__PURE__*/ Z(/*#__PURE__*/ rT(V,/*#__PURE__*/ G([V,yT,H,/*#__PURE__*/ W(V)])))})){},class extends (/*#__PURE__*/ IT(`@effect/ai/McpSchema/ElicitDeclineResult`)({...a3.fields,action:/*#__PURE__*/ lT([`cancel`,`decline`])})){}]);var G3=class extends (/*#__PURE__*/ X(`elicitation/create`,{success:Khe,error:C3,payload:Ghe})){},qhe=class extends (/*#__PURE__*/ X(`notifications/elicitation/complete`,{payload:{elicitationId:V}})){};G3.payloadSchema;var K3=class extends (/*#__PURE__*/ Ec(`McpReverseOperationUnsupported`)){},Jhe=class extends (/*#__PURE__*/ Ec(`McpReverseOperationError`)){},q3=class extends (/*#__PURE__*/ Wo()(`effect/ai/McpSchema/McpRequestContext`)){},J3=class extends (/*#__PURE__*/ Wo()(`effect/ai/McpSchema/McpServerClient`)){},Y3=class extends (/*#__PURE__*/ The()(`effect/ai/McpSchema/McpServerClientMiddleware`)){},Yhe=class extends (/*#__PURE__*/ u4(w3,T3,B3,O3,D3,R3,N3,qhe)){},X3=class extends (/*#__PURE__*/ Wo()(`effect/unstable/ai/McpSchema/EnabledWhen`)){};const Z3={Complete:e=>({_tag:`Complete`,value:e}),InputRequired:e=>({_tag:`InputRequired`,...e})};var Xhe=class extends (/*#__PURE__*/ Ec(`ResourceNotFound`)){},Zhe=class extends (/*#__PURE__*/ Ec(`ToolNotFound`)){},Qhe=class extends (/*#__PURE__*/ Ec(`InvalidToolInput`)){},$he=class extends (/*#__PURE__*/ Ec(`InvalidToolContinuation`)){},ege=class extends (/*#__PURE__*/ Ec(`ToolExecutionError`)){},Q3=class extends (/*#__PURE__*/ Ec(`UnsupportedByProtocol`)){},tge=class extends (/*#__PURE__*/ Ec(`PromptNotFound`)){};const $3=/*#__PURE__*/ wc(),e6=/*#__PURE__*/ wc(),nge=/*#__PURE__*/ N(()=>{let e=/* @__PURE__ */ new Map,t=[],n=[],r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;return{tools:{register:t=>N(()=>{e.set(t.descriptor.name,t)}),list:t=>N(()=>{let n=[];for(let r of e.values())r.isVisible(t)&&n.push(r.descriptor);return n}),call:(t,n)=>Rm(()=>{let r=e.get(t.name);return r===void 0||!r.isVisible(n.protocol)?new Zhe({name:t.name}):r.handle(t,n)})},resources:{register:e=>N(()=>{let n=t.findIndex(t=>t.descriptor.uri===e.descriptor.uri);n===-1?t.push(e):t[n]=e}),registerTemplate:e=>N(()=>{let t=n.findIndex(t=>t.descriptor.uriTemplate===e.descriptor.uriTemplate);t===-1?n.push(e):n[t]=e}),list:e=>N(()=>t.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),listTemplates:e=>N(()=>n.filter(t=>t.isVisible(e)).map(e=>e.descriptor)),read:z(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 Xhe({uri:e})})},prompts:{register:e=>N(()=>{r.set(e.descriptor.name,e)}),list:e=>N(()=>Array.from(r.values()).filter(t=>t.isVisible(e)).map(e=>e.descriptor)),get:z(function*(e,t,n){let i=r.get(e);return i===void 0||!i.isVisible(n.protocol)?yield*new tge({name:e}):yield*i.get(t,n)})},completions:{register:(e,t)=>N(()=>{i.set(e,t)}),complete:z(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 x3({message:`Unknown completion reference or argument`});let a=yield*r(e,t),o=fo(a.values,100);return{...a,values:o,hasMore:a.hasMore===!0||o.length<a.values.length}})},registrationPresence:N(()=>({tools:e.size>0,resources:t.length>0||n.length>0,prompts:r.size>0}))}}),rge=/*#__PURE__*/ new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0}),t6={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}},n6=e=>{let t=e.startsWith(`=?base64?`),n=e.endsWith(`?=`);if(!t||!n)return/^[\t\x20-\x7e]*$/.test(e)?e:void 0;let r=Ac(e.slice(9,-2));if(!Ha(r))try{return rge.decode(r.success)}catch{return}},r6=e=>({protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.initializePayload._meta}),i6=e=>({clientId:e.clientId,protocol:r6(e),requestContext:q3.of({clientId:e.clientId,protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata}),serverClient:e}),a6=e=>({clientId:e.clientId,protocol:{protocolVersion:e.protocolVersion,clientCapabilities:e.clientCapabilities,clientInfo:e.clientInfo,requestMetadata:e.requestMetadata},requestContext:e}),o6=(e,t)=>t._tag===`Complete`?M(t.value):F(new Q3({protocolVersion:e,feature:`Client input`})),s6=e=>Yn(e)&&(e.type===`tool_use`||e.type===`tool_result`),c6=e=>Yn(e)?e.tools!==void 0||e.toolChoice!==void 0?!0:Array.isArray(e.messages)?e.messages.some(e=>{if(!Yn(e))return!1;let t=e.content;return Array.isArray(t)?t.some(s6):s6(t)}):!1:!1;var l6=class e extends (/*#__PURE__*/ Ec(`ProtocolError`)){static fromTool(t){let n=TO(t).pipe(DO(`ToolNotFound`,e=>`Tool '${e.name}' not found`),DO(`UnsupportedByProtocol`,e=>`${e.feature} is not supported by MCP ${e.protocolVersion}`),OO({InvalidToolInput:e=>e.message,InvalidToolContinuation:e=>e.message,ToolExecutionError:e=>e.message}),PO);return new e({code:h3,message:n})}static fromFeature(t){if(A(t,`_tag`)){if(t._tag===`PromptNotFound`&&A(t,`name`)&&zn(t.name))return new e({code:h3,message:`Prompt '${t.name}' not found`});if(t._tag===`ResourceNotFound`&&A(t,`uri`)&&zn(t.uri))return new e({code:-32002,message:`Resource '${t.uri}' not found`})}let n=ige(t);return Ua(n)?new e(n.success):new e({code:g3,message:`MCP feature handler failed`})}};const ige=/*#__PURE__*/ Lw(/* @__PURE__ */ U({code:yT,message:V,data:/*#__PURE__*/ Kw(Qw)})),age=e=>Zn(e,`McpReverseOperationUnsupported`),u6=e=>t=>age(t)?t:new Jhe({operation:e,cause:t}),d6=(e,t,n)=>Vw(e)(n).pipe(I(Pw(t))),f6=(e,t,n)=>Vw(e)(n).pipe(I(Pw(t,{onExcessProperty:`error`}))),p6=/*#__PURE__*/ ug(function*(e,t){return e6.$match(t,{Cancelled:e=>({tag:w3._tag,payload:w3.payloadSchema.make({_meta:e.metadata,requestId:e.requestId,reason:e.reason})}),Progress:t=>({tag:T3._tag,payload:T3.payloadSchema.make({_meta:t.metadata,progressToken:t.progressToken,progress:t.progress,total:t.total,message:e.supportsProgressMessage?t.message:void 0})}),LoggingMessage:e=>({tag:B3._tag,payload:B3.payloadSchema.make({_meta:e.metadata,level:e.level,logger:e.logger,data:e.data})}),ResourceUpdated:e=>({tag:O3._tag,payload:O3.payloadSchema.make({_meta:e.metadata,uri:e.uri})}),ResourcesChanged:e=>({tag:D3._tag,payload:D3.payloadSchema.make({_meta:e.metadata})}),ToolsChanged:e=>({tag:R3._tag,payload:R3.payloadSchema.make({_meta:e.metadata})}),PromptsChanged:e=>({tag:N3._tag,payload:N3.payloadSchema.make({_meta:e.metadata})}),ElicitationComplete:()=>void 0})}),m6=e=>{switch(e._tag){case`ToolsChanged`:case`PromptsChanged`:case`ResourcesChanged`:case`ResourceUpdated`:return!0;default:return!1}},h6=e=>{let t=/* @__PURE__ */ new WeakMap,n=e=>{let n=t.get(e);if(n===void 0){let r=BT(e.payloadSchema);n={decode:Pw(r),encode:Bw(r)},t.set(e,n)}return n},r=(t,n,r)=>e.handlerRpcs===void 0||e.makeHandlers===void 0?P:n===void 0&&e.runtime._tag===`Stateful`?Wm(`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=>Bpe(e.serverRequestRpcs,{spanPrefix:`McpServer/Client`}).pipe(L(n=>e.toReverseClient(t,n)));return{...e,payloadCodecs:n,installHandlers:r,makeReverseClient:i}},g6=e=>`@effect/mcp/${encodeURIComponent(e.protocolVersion)}/`,oge=/*#__PURE__*/ z(function*(e){if(e.length===0)return yield*new Qf(`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 Qf(`Duplicate MCP protocol version: ${e.protocolVersion}`);n.set(e.protocolVersion,e)}let r=t[0].clientRpcs.prefix(g6(t[0]));for(let e=1;e<t.length;e++)r=r.merge(t[e].clientRpcs.prefix(g6(t[e])));return{protocols:t,clientRpcs:r,select:e=>n.get(e)??t[0],protocolForInternalTag:e=>t.find(t=>e.startsWith(g6(t)))??t[0],routeClientRequest:(e,t)=>({...t,tag:`${g6(e)}${t.tag}`}),handlerTarget:(e,t)=>({context:t,install:z(function*(t,n,i){let a=yield*n.toHandlers(i);for(let i of n.requests.values()){let n=r.requests.get(`${g6(t)}${i._tag}`),o=a.mapUnsafe.get(i.key);if(n===void 0||o===void 0)return yield*Wm(`MCP handler registration invariant failed for ${t.protocolVersion}/${i._tag}`);e.set(n.key,o)}})})}}),_6=e=>({initializePayload:e.initializePayload,negotiatedProfile:e.negotiatedProfile,protocol:e.protocol,resourceSubscriptions:e.supportsResourceSubscriptions?/* @__PURE__ */ new Set:void 0,logLevel:{_tag:`Effect`,level:e.logLevel}}),sge=()=>{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=_6(n);return e.set(t,r),r},registerConnection:(e,n)=>{let r=_6(n);return t.set(e,r),r},resolve:r,resolveSessionId:t=>e.get(t),setLogLevel:(e,t,n)=>N(()=>{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?F(new l6({code:m3,message:`Resource subscriptions are not supported`})):N(()=>i.add(e)).pipe(rh)},unsubscribe:(e,t,n)=>{let i=r(t,n)?.resourceSubscriptions;return i===void 0?F(new l6({code:m3,message:`Resource subscriptions are not supported`})):N(()=>i.delete(e)).pipe(rh)},effectLogLevel:(e,t,n)=>{let i=r(e,t);return i?.logLevel._tag===`Mcp`?t6[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`?t6[n.level].order>=t6[e.level].order:_D(t6[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)}}},v6=`mcp-session-id`,y6=`mcp-protocol-version`,b6=`io.modelcontextprotocol/protocolVersion`,x6=`io.modelcontextprotocol/clientCapabilities`,S6=-32022,C6=e=>typeof e==`object`&&e?e:void 0,w6=e=>{let t=C6(e);return t!==void 0&&b6 in t?{present:!0,value:t[b6]}:{present:!1,value:void 0}},cge=e=>w6(C6(C6(e)?.params)?._meta).present,lge=e=>{switch(e){case`tools/call`:case`prompts/get`:return`name`;case`resources/read`:return`uri`;default:return}},T6=e=>({_tag:`Rejected`,status:400,error:{code:_3,message:e}}),E6=/*#__PURE__*/ u4(khe).middleware(Y3),D6=e=>({_tag:`Stateful`,transport:e});var O6=class extends (/*#__PURE__*/ Wo()(`effect/ai/McpRuntime/ServerRuntime`)){};const uge=(e,t)=>e.find(e=>e.runtime._tag===`Stateful`&&e.protocolVersion===t)??e.find(e=>e.runtime._tag===`Stateful`),dge=/*#__PURE__*/ z(function*(e){let t=e.find(e=>e.runtime._tag===`Stateful`)===void 0?void 0:sge(),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 Qf(`MCP runtime supports at most one stateless protocol`);r=t.runtime,i=t}let a=yield*oge(e),o=(e,r)=>{let o=e[y6],s=e[v6],c=C6(r),l=C6(C6(c?.params)?._meta),u=w6(l),d=c?.id,f=c?.jsonrpc===`2.0`&&c.method===`initialize`&&(typeof d==`string`||typeof d==`number`),p=c?.jsonrpc===`2.0`&&c.method===`notifications/cancelled`&&d===void 0;if(u.present||(!f||t===void 0)&&i!==void 0&&(o===i.protocolVersion||t===void 0&&c?.jsonrpc===`2.0`&&typeof c.method==`string`&&(typeof d==`string`||typeof d==`number`))){if(o===void 0)return T6(`MCP-Protocol-Version header is required`);if(!p&&(l===void 0||typeof u.value!=`string`))return{_tag:`Rejected`,status:400,error:{code:h3,message:`Required request metadata is missing`}};if((!p||u.present)&&u.value!==o)return T6(`MCP-Protocol-Version header does not match request metadata`);if(!p&&C6(l?.[x6])===void 0)return{_tag:`Rejected`,status:400,error:{code:h3,message:`${x6} request metadata is required`}};if(i===void 0||o!==i.protocolVersion)return{_tag:`Rejected`,status:400,error:{code:S6,message:`Unsupported protocol version '${o}'`,data:{supported:n,requested:o}}};let t=c?.method;if(typeof t!=`string`||e[`mcp-method`]!==t)return T6(`Mcp-Method header does not match request method`);let r=lge(t);if(r!==void 0){let t=C6(c?.params)?.[r],n=e[`mcp-name`];if(typeof t!=`string`||n===void 0||n6(n)!==t)return T6(`Mcp-Name header does not match request parameters`)}return{_tag:`Accepted`,binding:void 0,protocol:i}}let m=s===void 0?void 0:t?.resolveSessionId(s);return s!==void 0&&m===void 0?{_tag:`Rejected`,status:404}:!f&&o!==void 0&&!a.protocols.some(e=>e.protocolVersion===o)||!f&&m?.protocol.runtime.transport.http.requiresVersionHeader===!0&&o!==m.protocol.protocolVersion?{_tag:`Rejected`,status:400}:{_tag:`Accepted`,binding:m,protocol:m?.protocol}};return O6.of({protocols:a.protocols,clientRpcs:a.clientRpcs,selectProtocol:a.select,protocolForInternalTag:a.protocolForInternalTag,routeClientRequest:a.routeClientRequest,prepareRequest:z(function*(e,o,s){let c=C6(s.payload)?._meta,l=w6(c),u=typeof l.value==`string`?l.value:void 0,d=l.present?void 0:t?.resolve(e,o),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(s.tag===`initialize`){let e=s.payload?.protocolVersion,t=uge(a.protocols,e);if(t===void 0)return yield*new l6({code:S6,message:`initialize is not supported by the configured MCP protocols (requested '${e}')`});f=t}else f=a.protocols[0];if(f.runtime._tag===`Stateful`)return{protocol:f,binding:d};if(s.isNotification&&s.tag===`notifications/cancelled`)return{protocol:f};if(r===void 0)return yield*Wm(`MCP stateless runtime invariant failed`);if(u!==void 0&&u!==f.protocolVersion)return yield*new l6({code:S6,message:`Unsupported protocol version '${u}'`,data:{supported:n,requested:u}});let p=yield*r.profileFromRequestMetadata(c),m={protocolVersion:p.protocolVersion,clientCapabilities:p.clientCapabilities,clientInfo:p.clientInfo,requestMetadata:p.requestMetadata},h=q3.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,t)=>{let n=(e,t,n=null)=>({_tag:`Rejected`,response:t===void 0?sj({status:e}):pj({jsonrpc:`2.0`,id:n,error:t},{status:e})});if(Ha(t)){let t=e[y6];if(t!==void 0&&!a.protocols.some(e=>e.protocolVersion===t))return n(400);let r=o(e,void 0);return r._tag===`Rejected`&&r.error===void 0?n(r.status):n(200,new v3({message:`Parse error`}))}let r=t.success;if(Array.isArray(r)){if(r.length===0)return n(400,new y3({message:`Invalid Request`}));let t=o(e,r);return t._tag===`Rejected`||r.some(cge)||r.some(e=>A(e,`method`)&&e.method===`initialize`)||t.binding?.protocol.runtime.transport.jsonRpc.acceptsBatches!==!0?n(400):{_tag:`Accepted`,acknowledge:!r.some(e=>A(e,`method`)&&A(e,`id`)),isSubscription:!1}}let i=A(r,`id`),s=i&&(typeof r.id==`string`||typeof r.id==`number`)?r.id:null,c=A(r,`jsonrpc`)&&r.jsonrpc===`2.0`,l=!i||typeof r.id==`string`||typeof r.id==`number`,u=c&&l&&A(r,`method`)&&typeof r.method==`string`,d=i&&(typeof r.id==`string`||typeof r.id==`number`||r.id===null),f=A(r,`result`),p=A(r,`error`),m=c&&d&&f!==p,h=o(e,r);if(h._tag===`Rejected`)return n(h.status,h.error,s);if(!u&&!m)return n(200,new y3({message:`Invalid Request`}),s);let g=A(r,`method`)&&r.method===`initialize`,_=e[v6]!==void 0;return(g?_:!_&&h.protocol?.runtime._tag!==`Stateless`)?n(400):u&&h.protocol?.runtime._tag===`Stateless`&&!(h.protocol.handlerRpcs?.requests.has(r.method)??h.protocol.clientRpcs.requests.has(r.method))?n(404,new b3({message:`Method not found: ${r.method}`}),s):{_tag:`Accepted`,acknowledge:!u||!i,isSubscription:A(r,`method`)&&r.method===`subscriptions/listen`}},effectLogLevel:(e,n,r)=>t?.effectLogLevel(e,n,r)??r,disconnect:e=>t?.disconnect(e),deliveryClientIds:()=>t?.initializedClientIds()??[],canDeliver:(e,n,r,i)=>t?.canDeliver(e,n,r,i)??!0,installHandlers:z(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*Wm(`MCP sessionful runtime invariant failed`);yield*o.install(n,E6,E6.of({ping:()=>M({})}));let r={initialize:z(function*(r,i,a){let o=yield*e.core.registrationPresence;return yield*qm(s=>{let c=fs(s.context,wM),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:jhe.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),jM(c,(t,r)=>M(yj(r,{[v6]:e,[y6]:n.protocolVersion})))}else t.registerConnection(a,u);return M({capabilities:l,instructions:e.serverInfo.instructions,serverInfo:d3.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:z(function*(e,n){e._tag===`Initialized`&&t.markInitialized(n)})};yield*n.installHandlers(e.core,r,o)}return ts(r)})})}),fge=e=>Hp(O6)(dge(e)),k6=e=>Kw(e).pipe(fT(qw(e),{decode:k_(),encode:M_(Ra(Pa))})),A6=K,pge=/*#__PURE__*/ G([V,yT]),j6=/*#__PURE__*/ G([V,yT]),M6=/*#__PURE__*/ lT([`user`,`assistant`]),N6=/*#__PURE__*/ lT([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),P6=/*#__PURE__*/ U({_meta:/*#__PURE__*/ k6(/*#__PURE__*/ iT(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ k6(j6)}),[K]))}),F6=/*#__PURE__*/ U({_meta:/*#__PURE__*/ k6(A6)}),I6=/*#__PURE__*/ U({_meta:/*#__PURE__*/ k6(A6)}),L6=/*#__PURE__*/ U({...P6.fields,cursor:/*#__PURE__*/ k6(V)}),R6=/*#__PURE__*/ U({...I6.fields,nextCursor:/*#__PURE__*/ k6(V)}),z6=/*#__PURE__*/ U({name:V,version:V}),B6=/*#__PURE__*/ U({experimental:/*#__PURE__*/ k6(/*#__PURE__*/ rT(V,A6)),roots:/*#__PURE__*/ k6(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ k6(H)})),sampling:/*#__PURE__*/ k6(A6)}),mge=/*#__PURE__*/ U({experimental:/*#__PURE__*/ k6(/*#__PURE__*/ rT(V,A6)),logging:/*#__PURE__*/ k6(A6),prompts:/*#__PURE__*/ k6(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ k6(H)})),resources:/*#__PURE__*/ k6(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ k6(H),listChanged:/*#__PURE__*/ k6(H)})),tools:/*#__PURE__*/ k6(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ k6(H)}))}),V6=/*#__PURE__*/ U({code:ST,message:V,data:/*#__PURE__*/ k6(Zw)}),H6=/*#__PURE__*/ U({audience:/*#__PURE__*/ k6(/*#__PURE__*/ W(M6)),priority:/*#__PURE__*/ k6(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1})))}),U6=/*#__PURE__*/ U({uri:V,mimeType:/*#__PURE__*/ k6(V),text:V}),W6=/*#__PURE__*/ U({uri:V,mimeType:/*#__PURE__*/ k6(V),blob:V}),G6=/*#__PURE__*/ G([U6,W6]),K6=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`text`),text:V,annotations:/*#__PURE__*/ k6(H6)}),q6=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`image`),data:V,mimeType:V,annotations:/*#__PURE__*/ k6(H6)}),J6=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`resource`),resource:G6,annotations:/*#__PURE__*/ k6(H6)}),Y6=/*#__PURE__*/ U({uri:V,name:V,description:/*#__PURE__*/ k6(V),mimeType:/*#__PURE__*/ k6(V),size:/*#__PURE__*/ k6(yT),annotations:/*#__PURE__*/ k6(H6)}),X6=/*#__PURE__*/ U({uriTemplate:V,name:V,description:/*#__PURE__*/ k6(V),mimeType:/*#__PURE__*/ k6(V),annotations:/*#__PURE__*/ k6(H6)}),Z6=/*#__PURE__*/ U({name:V,description:/*#__PURE__*/ k6(V),required:/*#__PURE__*/ k6(H)}),Q6=/*#__PURE__*/ U({name:V,description:/*#__PURE__*/ k6(V),arguments:/*#__PURE__*/ k6(/*#__PURE__*/ W(Z6))}),hge=/*#__PURE__*/ U({name:V,description:/*#__PURE__*/ k6(V),inputSchema:/* @__PURE__ */ U({type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ k6(/*#__PURE__*/ rT(V,A6)),required:/*#__PURE__*/ k6(/*#__PURE__*/ W(V))})}),$6=/*#__PURE__*/ U({hints:/*#__PURE__*/ k6(/*#__PURE__*/ W(/* @__PURE__ */ U({name:/*#__PURE__*/ k6(V)}))),costPriority:/*#__PURE__*/ k6(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1}))),speedPriority:/*#__PURE__*/ k6(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1}))),intelligencePriority:/*#__PURE__*/ k6(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1})))}),gge=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`ref/resource`),uri:V}),e8=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`ref/prompt`),name:V}),t8=/*#__PURE__*/ U({uri:V,name:/*#__PURE__*/ k6(V)});({...I6.fields});const n8=/*#__PURE__*/ U({...R6.fields,resources:/*#__PURE__*/ W(Y6)}),r8=/*#__PURE__*/ U({...R6.fields,resourceTemplates:/*#__PURE__*/ W(X6)}),i8=/*#__PURE__*/ U({...I6.fields,contents:/*#__PURE__*/ W(G6)}),a8=/*#__PURE__*/ U({...R6.fields,prompts:/*#__PURE__*/ W(Q6)});({...I6.fields}),{...R6.fields},{...I6.fields},{...I6.fields};const o8=/*#__PURE__*/ U({...I6.fields,completion:/*#__PURE__*/ U({values:/*#__PURE__*/ W(V),total:/*#__PURE__*/ k6(yT),hasMore:/*#__PURE__*/ k6(H)})}),_ge=/*#__PURE__*/ U({...I6.fields,roots:/*#__PURE__*/ W(t8)});var s8=class extends (/*#__PURE__*/ X(`ping`,{success:I6,error:V6,payload:/*#__PURE__*/ dT(P6)})){};({...P6.fields});var vge=class extends (/*#__PURE__*/ X(`completion/complete`,{success:o8,error:V6,payload:{...P6.fields,ref:/*#__PURE__*/ G([e8,gge]),argument:/*#__PURE__*/ U({name:V,value:V})}})){},c8=class extends (/*#__PURE__*/ X(`logging/setLevel`,{success:I6,error:V6,payload:{...P6.fields,level:N6}})){};({...P6.fields});var yge=class extends (/*#__PURE__*/ X(`prompts/list`,{success:a8,error:V6,payload:/*#__PURE__*/ dT(L6)})){},bge=class extends (/*#__PURE__*/ X(`resources/list`,{success:n8,error:V6,payload:/*#__PURE__*/ dT(L6)})){},xge=class extends (/*#__PURE__*/ X(`resources/templates/list`,{success:r8,error:V6,payload:/*#__PURE__*/ dT(L6)})){},Sge=class extends (/*#__PURE__*/ X(`resources/read`,{success:i8,error:V6,payload:{...P6.fields,uri:V}})){},l8=class extends (/*#__PURE__*/ X(`resources/subscribe`,{success:I6,error:V6,payload:{...P6.fields,uri:V}})){},u8=class extends (/*#__PURE__*/ X(`resources/unsubscribe`,{success:I6,error:V6,payload:{...P6.fields,uri:V}})){};({...P6.fields}),{...P6.fields};var d8=class extends (/*#__PURE__*/ X(`roots/list`,{success:_ge,error:V6,payload:/*#__PURE__*/ dT(P6)})){},f8=class extends (/*#__PURE__*/ X(`notifications/cancelled`,{payload:{...F6.fields,requestId:pge,reason:/*#__PURE__*/ k6(V)}})){};({...F6.fields});var p8=class extends (/*#__PURE__*/ X(`notifications/initialized`,{payload:/*#__PURE__*/ dT(F6)})){},m8=class extends (/*#__PURE__*/ X(`notifications/roots/list_changed`,{payload:/*#__PURE__*/ dT(F6)})){},h8=class extends (/*#__PURE__*/ X(`notifications/message`,{payload:{...F6.fields,level:N6,logger:/*#__PURE__*/ k6(V),data:Zw}})){},g8=class extends (/*#__PURE__*/ X(`notifications/resources/updated`,{payload:{...F6.fields,uri:V}})){},_8=class extends (/*#__PURE__*/ X(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ dT(F6)})){},v8=class extends (/*#__PURE__*/ X(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ dT(F6)})){},y8=class extends (/*#__PURE__*/ X(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ dT(F6)})){};const b8=`2025-03-26`,x8=k6,S8=/*#__PURE__*/ U({...mge.fields,completions:/*#__PURE__*/ x8(/*#__PURE__*/ U({}))}),C8=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`audio`),data:V,mimeType:V,annotations:/*#__PURE__*/ x8(H6)}),w8=/*#__PURE__*/ G([K6,q6,C8,J6]),T8=/*#__PURE__*/ G([K6,q6,C8]),Cge=/*#__PURE__*/ U({role:M6,content:w8}),wge=/*#__PURE__*/ U({role:M6,content:T8}),E8=/*#__PURE__*/ U({title:/*#__PURE__*/ x8(V),readOnlyHint:/*#__PURE__*/ x8(H),destructiveHint:/*#__PURE__*/ x8(H),idempotentHint:/*#__PURE__*/ x8(H),openWorldHint:/*#__PURE__*/ x8(H)}),D8=/*#__PURE__*/ U({...hge.fields,annotations:/*#__PURE__*/ x8(E8)}),O8=/*#__PURE__*/ U({...I6.fields,protocolVersion:V,capabilities:S8,serverInfo:z6,instructions:/*#__PURE__*/ x8(V)}),k8=/*#__PURE__*/ U({...I6.fields,description:/*#__PURE__*/ x8(V),messages:/*#__PURE__*/ W(Cge)}),A8=/*#__PURE__*/ U({...R6.fields,tools:/*#__PURE__*/ W(D8)}),j8=/*#__PURE__*/ U({...I6.fields,content:/*#__PURE__*/ W(w8),isError:/*#__PURE__*/ x8(H)}),Tge=/*#__PURE__*/ U({...I6.fields,role:M6,content:T8,model:V,stopReason:/*#__PURE__*/ x8(V)});var Ege=class extends (/*#__PURE__*/ X(`initialize`,{success:O8,error:V6,payload:{...P6.fields,protocolVersion:V,capabilities:B6,clientInfo:z6}})){},Dge=class extends (/*#__PURE__*/ X(`prompts/get`,{success:k8,error:V6,payload:{...P6.fields,name:V,arguments:/*#__PURE__*/ x8(/*#__PURE__*/ rT(V,V))}})){},Oge=class extends (/*#__PURE__*/ X(`tools/list`,{success:A8,error:V6,payload:/*#__PURE__*/ dT(L6)})){},kge=class extends (/*#__PURE__*/ X(`tools/call`,{success:j8,error:V6,payload:{...P6.fields,name:V,arguments:/*#__PURE__*/ x8(K)}})){},M8=class extends (/*#__PURE__*/ X(`sampling/createMessage`,{success:Tge,error:V6,payload:{...P6.fields,messages:/*#__PURE__*/ W(wge),modelPreferences:/*#__PURE__*/ x8($6),systemPrompt:/*#__PURE__*/ x8(V),includeContext:/*#__PURE__*/ x8(/*#__PURE__*/ lT([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ x8(yT),maxTokens:yT,stopSequences:/*#__PURE__*/ x8(/*#__PURE__*/ W(V)),metadata:/*#__PURE__*/ x8(K)}})){},N8=class extends (/*#__PURE__*/ X(`notifications/progress`,{payload:{...F6.fields,progressToken:j6,progress:yT,total:/*#__PURE__*/ x8(yT),message:/*#__PURE__*/ x8(V)}})){},Age=class extends (/*#__PURE__*/ u4(s8,Ege,vge,c8,Dge,yge,bge,xge,Sge,l8,u8,kge,Oge)){},P8=class extends (/*#__PURE__*/ u4(f8,N8,p8,m8)){},jge=class extends (/*#__PURE__*/ u4(s8,M8,d8)){},Mge=class extends (/*#__PURE__*/ u4(f8,N8,h8,g8,_8,v8,y8)){};const F8=/*#__PURE__*/ (/* @__PURE__ */ Age.middleware(Y3)).merge(P8),I8=/*#__PURE__*/ F8.omit(`ping`),Nge=e=>({protocolVersion:b8,clientCapabilities:f3.make(e.capabilities),clientInfo:d3.make(e.clientInfo),requestMetadata:e._meta}),L8=(e,t)=>new K3({operation:e,protocolVersion:b8,reason:t}),R8=(e,t,n)=>Object.hasOwn(e.clientCapabilities,n)&&e.clientCapabilities[n]!==void 0?P:F(L8(t,`Client did not advertise the ${n} capability`)),z8=/*#__PURE__*/ z(function*(e){let t=TO(e).pipe(EO({type:`text`},e=>({...e,annotations:e.annotations})),EO({type:kO(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:kc(e.data),annotations:e.annotations})),EO({type:`resource`},e=>{let t=e.resource;return`text`in t?J6.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,text:t.text},annotations:e.annotations}):J6.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,blob:kc(t.blob)},annotations:e.annotations})}),EO({type:`resource_link`},()=>new Q3({protocolVersion:b8,feature:`resource_link tool content`})),PO);return t instanceof Q3?yield*t:t}),Pge=e=>`text`in e?{uri:e.uri,mimeType:e.mimeType,text:e.text}:{uri:e.uri,mimeType:e.mimeType,blob:kc(e.blob)},Fge=/*#__PURE__*/ h6({protocolVersion:b8,runtime:/*#__PURE__*/ D6({jsonRpc:{acceptsBatches:!0},http:{requiresVersionHeader:!1}}),clientRpcs:F8,clientNotificationRpcs:P8,serverRequestRpcs:jge,serverNotificationRpcs:Mge,handlerRpcs:I8,makeHandlers:(e,t)=>I8.of({initialize:(e,{client:n})=>t.initialize(b8,Nge(e),n.id).pipe(L(e=>O8.make({protocolVersion:b8,capabilities:{experimental:e.capabilities.experimental,logging:e.capabilities.logging?{}:void 0,completions:e.capabilities.completions?{}:void 0,prompts:e.capabilities.prompts,resources:e.capabilities.resources,tools:e.capabilities.tools},serverInfo:e.serverInfo,instructions:e.instructions}))),"logging/setLevel":({level:e},{client:n,headers:r})=>t.setLogLevel(e,n.id,r).pipe(nh({})),"notifications/cancelled":()=>P,"notifications/initialized":(e,{client:n,headers:r})=>t.clientNotification($3.Initialized(),n.id,r),"notifications/progress":(e,{client:n,headers:r})=>t.clientNotification($3.Progress({progressToken:e.progressToken,progress:e.progress,total:e.total,message:e.message,metadata:e._meta}),n.id,r),"notifications/roots/list_changed":(e,{client:n,headers:r})=>t.clientNotification($3.RootsChanged(),n.id,r),"resources/list":t=>J3.use(t=>e.resources.list(r6(t))).pipe(L(e=>n8.make({resources:e.map(e=>({uri:e.uri,name:e.name,description:e.description,mimeType:e.mimeType,size:e.size,annotations:e.annotations}))}))),"resources/templates/list":t=>J3.use(t=>e.resources.listTemplates(r6(t))).pipe(L(e=>r8.make({resourceTemplates:e.map(e=>({uriTemplate:e.uriTemplate,name:e.name,description:e.description,mimeType:e.mimeType,annotations:e.annotations}))}))),"resources/read":z(function*({uri:t}){let n=yield*J3,r=yield*e.resources.read(t,i6(n)).pipe(R(l6.fromFeature));return i8.make({contents:r.contents.map(Pge),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(nh({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(nh({})),"prompts/list":t=>J3.use(t=>e.prompts.list(r6(t))).pipe(L(e=>a8.make({prompts:e.map(e=>({name:e.name,description:e.description,arguments:e.arguments?.map(e=>({name:e.name,description:e.description,required:e.required}))}))}))),"prompts/get":z(function*({arguments:t,name:n}){let r=yield*J3,i=yield*e.prompts.get(n,t??{},i6(r)).pipe(R(l6.fromFeature));if(i._tag===`InputRequired`)return yield*l6.fromFeature(new Q3({protocolVersion:b8,feature:`prompt input requirements`}));let a=i.value,o=yield*Mm(a.messages,e=>z8(e.content).pipe(L(t=>({role:e.role,content:t})),R(l6.fromTool)));return k8.make({description:a.description,messages:o,_meta:a._meta})}),"completion/complete":z(function*(t){let n=yield*J3,r=yield*e.completions.complete({reference:t.ref.type===`ref/prompt`?{type:`prompt`,name:t.ref.name}:{type:`resourceTemplate`,uriTemplate:t.ref.uri},argument:t.argument,metadata:t._meta},i6(n)).pipe(R(l6.fromFeature));return o8.make({completion:{values:Array.from(r.values),total:r.total,hasMore:r.hasMore},_meta:r.metadata})}),"tools/list":z(function*(){let t=yield*J3,n=yield*e.tools.list(r6(t));return A8.make({tools:n.map(e=>D8.make({name:e.name,description:e.description,inputSchema:e.inputSchema,annotations:e.title===void 0&&e.annotations===void 0?void 0:E8.make({...e.annotations,title:e.title})}))})}),"tools/call":z(function*(t){let n=yield*J3,r=yield*e.tools.call({...t,arguments:t.arguments??{}},i6(n)).pipe(I(e=>o6(b8,e)),R(l6.fromTool)),i=yield*Mm(r.content,z8).pipe(R(l6.fromTool));return j8.make({content:i,isError:r.isError,_meta:r._meta})})}),toReverseClient:(e,t)=>({listRoots:z(function*(n){yield*R8(e,`roots/list`,`roots`);let r=yield*d6(W3.payloadSchema,d8.payloadSchema,n).pipe(R(()=>L8(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(R(u6(`roots/list`)));return new U3({roots:i})}),createMessage:z(function*(n){yield*R8(e,`sampling/createMessage`,`sampling`);let r=yield*f6(H3.payloadSchema,M8.payloadSchema,n).pipe(R(()=>L8(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(R(u6(`sampling/createMessage`)));return yield*d6(M8.successSchema,H3.successSchema,i).pipe(R(()=>L8(`sampling/createMessage`,`Response is not representable by the canonical model`)))}),elicit:()=>F(L8(`elicitation/create`,`Elicitation was introduced after this protocol revision`))}),projectNotification:e=>p6({supportsProgressMessage:!0},e),normalizeCancellation:e=>Pw(f8.payloadSchema)(e).pipe(L(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta})))}),B8=`2025-06-18`,V8=k6,H8=K,U8=/*#__PURE__*/ V8(H8),W8=/*#__PURE__*/ U({name:V,title:/*#__PURE__*/ V8(V),version:V}),G8=/*#__PURE__*/ U({...B6.fields,elicitation:/*#__PURE__*/ V8(/*#__PURE__*/ U({}))}),K8=/*#__PURE__*/ U({audience:/*#__PURE__*/ V8(/*#__PURE__*/ W(M6)),priority:/*#__PURE__*/ V8(/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1})))}),q8=/*#__PURE__*/ U({...Y6.fields,title:/*#__PURE__*/ V8(V),annotations:/*#__PURE__*/ V8(K8),_meta:U8}),J8=/*#__PURE__*/ U({...X6.fields,title:/*#__PURE__*/ V8(V),annotations:/*#__PURE__*/ V8(K8),_meta:U8}),Y8=/*#__PURE__*/ G([/* @__PURE__ */ U({...U6.fields,_meta:U8}),/* @__PURE__ */ U({...W6.fields,_meta:U8})]),Ige=/*#__PURE__*/ U({...Z6.fields,title:/*#__PURE__*/ V8(V)}),X8=/*#__PURE__*/ U({...Q6.fields,title:/*#__PURE__*/ V8(V),arguments:/*#__PURE__*/ V8(/*#__PURE__*/ W(Ige)),_meta:U8}),Z8=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`resource`),resource:Y8,annotations:/*#__PURE__*/ V8(K8),_meta:U8}),Lge=/*#__PURE__*/ U({...q8.fields,type:/*#__PURE__*/ B(`resource_link`)}),Q8=/*#__PURE__*/ U({...K6.fields,annotations:/*#__PURE__*/ V8(K8),_meta:U8}),$8=/*#__PURE__*/ U({...q6.fields,annotations:/*#__PURE__*/ V8(K8),_meta:U8}),e5=/*#__PURE__*/ U({...C8.fields,annotations:/*#__PURE__*/ V8(K8),_meta:U8}),t5=/*#__PURE__*/ G([Q8,$8,e5,Z8,Lge]),n5=/*#__PURE__*/ G([Q8,$8,e5]),Rge=/*#__PURE__*/ U({role:M6,content:t5}),zge=/*#__PURE__*/ U({role:M6,content:n5}),Bge=/*#__PURE__*/ U({...S8.fields}),r5=/*#__PURE__*/ U({...I6.fields,protocolVersion:V,capabilities:Bge,serverInfo:W8,instructions:/*#__PURE__*/ V8(V)});var i5=class extends (/*#__PURE__*/ X(`initialize`,{success:r5,error:V6,payload:{...P6.fields,protocolVersion:V,capabilities:G8,clientInfo:W8}})){};const a5=/*#__PURE__*/ iT(/*#__PURE__*/ U({type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ V8(/*#__PURE__*/ rT(V,H8)),required:/*#__PURE__*/ V8(/*#__PURE__*/ W(V))}),[K]),o5=/*#__PURE__*/ U({name:V,title:/*#__PURE__*/ V8(V),description:/*#__PURE__*/ V8(V),inputSchema:a5,outputSchema:/*#__PURE__*/ V8(a5),annotations:/*#__PURE__*/ V8(E8),_meta:U8}),s5=/*#__PURE__*/ U({...I6.fields,content:/*#__PURE__*/ W(t5),structuredContent:/*#__PURE__*/ V8(H8),isError:/*#__PURE__*/ V8(H)}),Vge=/*#__PURE__*/ U({...I6.fields,role:M6,content:n5,model:V,stopReason:/*#__PURE__*/ V8(V)});var c5=class extends (/*#__PURE__*/ X(`sampling/createMessage`,{success:Vge,error:V6,payload:{...P6.fields,messages:/*#__PURE__*/ W(zge),modelPreferences:/*#__PURE__*/ V8($6),systemPrompt:/*#__PURE__*/ V8(V),includeContext:/*#__PURE__*/ V8(/*#__PURE__*/ lT([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ V8(yT),maxTokens:yT,stopSequences:/*#__PURE__*/ V8(/*#__PURE__*/ W(V)),metadata:/*#__PURE__*/ V8(H8)}})){};const l5=/*#__PURE__*/ U({...e8.fields,title:/*#__PURE__*/ V8(V)}),u5=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`ref/resource`),uri:V}),d5=o8;var f5=class extends (/*#__PURE__*/ X(`completion/complete`,{success:d5,error:V6,payload:{...P6.fields,ref:/*#__PURE__*/ G([l5,u5]),argument:/*#__PURE__*/ U({name:V,value:V}),context:/*#__PURE__*/ V8(/*#__PURE__*/ U({arguments:/*#__PURE__*/ V8(/*#__PURE__*/ rT(V,V))}))}})){};const p5=/*#__PURE__*/ U({...R6.fields,resources:/*#__PURE__*/ W(q8)}),m5=/*#__PURE__*/ U({...R6.fields,resourceTemplates:/*#__PURE__*/ W(J8)}),h5=/*#__PURE__*/ U({...I6.fields,contents:/*#__PURE__*/ W(Y8)}),g5=/*#__PURE__*/ U({...R6.fields,prompts:/*#__PURE__*/ W(X8)}),_5=/*#__PURE__*/ U({...I6.fields,description:/*#__PURE__*/ V8(V),messages:/*#__PURE__*/ W(Rge)}),v5=/*#__PURE__*/ U({...R6.fields,tools:/*#__PURE__*/ W(o5)});var Hge=class extends (/*#__PURE__*/ X(`resources/list`,{success:p5,error:V6,payload:/*#__PURE__*/ dT(L6)})){},Uge=class extends (/*#__PURE__*/ X(`resources/templates/list`,{success:m5,error:V6,payload:/*#__PURE__*/ dT(L6)})){},y5=class extends (/*#__PURE__*/ X(`resources/read`,{success:h5,error:V6,payload:{...P6.fields,uri:V}})){},Wge=class extends (/*#__PURE__*/ X(`prompts/list`,{success:g5,error:V6,payload:/*#__PURE__*/ dT(L6)})){},Gge=class extends (/*#__PURE__*/ X(`prompts/get`,{success:_5,error:V6,payload:{...P6.fields,name:V,arguments:/*#__PURE__*/ V8(/*#__PURE__*/ rT(V,V))}})){},Kge=class extends (/*#__PURE__*/ X(`tools/list`,{success:v5,error:V6,payload:/*#__PURE__*/ dT(L6)})){},b5=class extends (/*#__PURE__*/ X(`tools/call`,{success:s5,error:V6,payload:{...P6.fields,name:V,arguments:/*#__PURE__*/ V8(H8)}})){};const qge=/*#__PURE__*/ U({...I6.fields,action:/*#__PURE__*/ lT([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ V8(/*#__PURE__*/ rT(V,/*#__PURE__*/ G([V,yT,H])))}),Jge=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ rT(V,/*#__PURE__*/ G([/* @__PURE__ */ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ V8(V),description:/*#__PURE__*/ V8(V),minLength:/*#__PURE__*/ V8(ST),maxLength:/*#__PURE__*/ V8(ST),format:/*#__PURE__*/ V8(/*#__PURE__*/ lT([`email`,`uri`,`date`,`date-time`]))}),/* @__PURE__ */ U({type:/*#__PURE__*/ lT([`number`,`integer`]),title:/*#__PURE__*/ V8(V),description:/*#__PURE__*/ V8(V),minimum:/*#__PURE__*/ V8(yT),maximum:/*#__PURE__*/ V8(yT)}),/* @__PURE__ */ U({type:/*#__PURE__*/ B(`boolean`),title:/*#__PURE__*/ V8(V),description:/*#__PURE__*/ V8(V),default:/*#__PURE__*/ V8(H)}),/* @__PURE__ */ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ V8(V),description:/*#__PURE__*/ V8(V),enum:/*#__PURE__*/ W(V),enumNames:/*#__PURE__*/ V8(/*#__PURE__*/ W(V))})])),required:/*#__PURE__*/ V8(/*#__PURE__*/ W(V))});var x5=class extends (/*#__PURE__*/ X(`elicitation/create`,{success:qge,error:V6,payload:{...P6.fields,message:V,requestedSchema:Jge}})){},Yge=class extends (/*#__PURE__*/ u4(s8,i5,f5,c8,Gge,Wge,Hge,Uge,y5,l8,u8,b5,Kge)){},S5=class extends (/*#__PURE__*/ u4(f8,N8,p8,m8)){},Xge=class extends (/*#__PURE__*/ u4(s8,c5,d8,x5)){},Zge=class extends (/*#__PURE__*/ u4(f8,N8,h8,g8,_8,v8,y8)){};const C5=/*#__PURE__*/ (/* @__PURE__ */ Yge.middleware(Y3)).merge(S5),w5=/*#__PURE__*/ C5.omit(`ping`),Qge=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||Yn(e.properties)&&Object.values(e.properties).every(Yn),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(zn);return t&&n},$ge=e=>({protocolVersion:B8,clientCapabilities:f3.make(e.capabilities),clientInfo:d3.make(e.clientInfo),requestMetadata:e._meta}),T5=(e,t)=>new K3({operation:e,protocolVersion:B8,reason:t}),E5=(e,t,n)=>Object.hasOwn(e.clientCapabilities,n)&&e.clientCapabilities[n]!==void 0?P:F(T5(t,`Client did not advertise the ${n} capability`)),D5=/*#__PURE__*/ z(function*(e){return TO(e).pipe(EO({type:kO(`text`,`resource_link`)},e=>e),EO({type:kO(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:kc(e.data),annotations:e.annotations,_meta:e._meta})),EO({type:`resource`},e=>{let t=e.resource;return`text`in t?Z8.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,text:t.text},annotations:e.annotations,_meta:e._meta}):Z8.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,blob:kc(t.blob)},annotations:e.annotations,_meta:e._meta})}),PO)}),e_e=e=>`text`in e?{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,text:e.text}:{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,blob:kc(e.blob)},t_e=e=>e===void 0||n_e(e)?e:void 0,n_e=e=>Yn(e),r_e=/*#__PURE__*/ h6({protocolVersion:B8,runtime:/*#__PURE__*/ D6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:C5,clientNotificationRpcs:S5,serverRequestRpcs:Xge,serverNotificationRpcs:Zge,handlerRpcs:w5,makeHandlers:(e,t)=>w5.of({initialize:(e,{client:n})=>t.initialize(B8,$ge(e),n.id).pipe(L(e=>r5.make({protocolVersion:B8,capabilities:{experimental:e.capabilities.experimental,logging:e.capabilities.logging?{}:void 0,completions:e.capabilities.completions?{}:void 0,prompts:e.capabilities.prompts,resources:e.capabilities.resources,tools:e.capabilities.tools},serverInfo:e.serverInfo,instructions:e.instructions}))),"logging/setLevel":({level:e},{client:n,headers:r})=>t.setLogLevel(e,n.id,r).pipe(nh({})),"notifications/cancelled":()=>P,"notifications/initialized":(e,{client:n,headers:r})=>t.clientNotification($3.Initialized(),n.id,r),"notifications/progress":(e,{client:n,headers:r})=>t.clientNotification($3.Progress({progressToken:e.progressToken,progress:e.progress,total:e.total,message:e.message,metadata:e._meta}),n.id,r),"notifications/roots/list_changed":(e,{client:n,headers:r})=>t.clientNotification($3.RootsChanged(),n.id,r),"resources/list":t=>J3.use(t=>e.resources.list(r6(t))).pipe(L(e=>p5.make({resources:e}))),"resources/templates/list":t=>J3.use(t=>e.resources.listTemplates(r6(t))).pipe(L(e=>m5.make({resourceTemplates:e}))),"resources/read":z(function*({uri:t}){let n=yield*J3,r=yield*e.resources.read(t,i6(n)).pipe(R(l6.fromFeature));return h5.make({contents:r.contents.map(e_e),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(nh({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(nh({})),"prompts/list":t=>J3.use(t=>e.prompts.list(r6(t))).pipe(L(e=>g5.make({prompts:e}))),"prompts/get":z(function*({arguments:t,name:n}){let r=yield*J3,i=yield*e.prompts.get(n,t??{},i6(r)).pipe(R(l6.fromFeature));if(i._tag===`InputRequired`)return yield*l6.fromFeature(new Q3({protocolVersion:B8,feature:`prompt input requirements`}));let a=i.value,o=yield*Mm(a.messages,e=>D5(e.content).pipe(L(t=>({role:e.role,content:t})),R(l6.fromTool)));return _5.make({description:a.description,messages:o,_meta:a._meta})}),"completion/complete":z(function*(t){let n=yield*J3,r=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},i6(n)).pipe(R(l6.fromFeature));return d5.make({completion:{values:Array.from(r.values),total:r.total,hasMore:r.hasMore},_meta:r.metadata})}),"tools/list":z(function*(){let t=yield*J3,n=yield*e.tools.list(r6(t));return v5.make({tools:n.map(e=>o5.make({name:e.name,title:e.title,description:e.description,inputSchema:e.inputSchema,outputSchema:Qge(e.outputSchema)?e.outputSchema:void 0,annotations:e.annotations===void 0?void 0:E8.make({readOnlyHint:e.annotations.readOnlyHint,destructiveHint:e.annotations.destructiveHint,idempotentHint:e.annotations.idempotentHint,openWorldHint:e.annotations.openWorldHint}),_meta:e._meta}))})}),"tools/call":z(function*(t){let n=yield*J3,r=yield*e.tools.call({...t,arguments:t.arguments??{}},i6(n)).pipe(I(e=>o6(B8,e)),R(l6.fromTool)),i=yield*Mm(r.content,D5).pipe(R(l6.fromTool)),a=t_e(r.structuredContent);return s5.make({content:i,structuredContent:a,isError:r.isError,_meta:r._meta})})}),toReverseClient:(e,t)=>({listRoots:z(function*(n){yield*E5(e,`roots/list`,`roots`);let r=yield*d6(W3.payloadSchema,d8.payloadSchema,n).pipe(R(()=>T5(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(R(u6(`roots/list`)));return new U3({roots:i})}),createMessage:z(function*(n){yield*E5(e,`sampling/createMessage`,`sampling`);let r=yield*f6(H3.payloadSchema,c5.payloadSchema,n).pipe(R(()=>T5(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(R(u6(`sampling/createMessage`)));return yield*d6(c5.successSchema,H3.successSchema,i).pipe(R(()=>T5(`sampling/createMessage`,`Response is not representable by the canonical model`)))}),elicit:z(function*(n){yield*E5(e,`elicitation/create`,`elicitation`);let r=n.mode===`form`?uC(n,[`mode`]):n,i=yield*Pw(x5.payloadSchema,{onExcessProperty:`error`})(r).pipe(R(()=>T5(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(R(u6(`elicitation/create`)));return yield*d6(x5.successSchema,G3.successSchema,a).pipe(R(()=>T5(`elicitation/create`,`Response is not representable by the canonical model`)))})}),projectNotification:e=>p6({supportsProgressMessage:!0},e),normalizeCancellation:e=>Pw(f8.payloadSchema)(e).pipe(L(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta})))}),O5=`2025-11-25`,Q=k6,k5=K,A5=/*#__PURE__*/ Q(k5),j5=/*#__PURE__*/ U({src:V,mimeType:/*#__PURE__*/ Q(V),sizes:/*#__PURE__*/ Q(/*#__PURE__*/ W(V)),theme:/*#__PURE__*/ Q(/*#__PURE__*/ lT([`light`,`dark`]))}),M5=/*#__PURE__*/ U({...W8.fields,description:/*#__PURE__*/ Q(V),websiteUrl:/*#__PURE__*/ Q(V),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(j5))}),i_e=/*#__PURE__*/ U({...G8.fields,sampling:/*#__PURE__*/ Q(/*#__PURE__*/ U({context:/*#__PURE__*/ Q(k5),tools:/*#__PURE__*/ Q(k5)})),elicitation:/*#__PURE__*/ Q(/*#__PURE__*/ U({form:/*#__PURE__*/ Q(k5),url:/*#__PURE__*/ Q(k5)}))}),N5=/*#__PURE__*/ U({...K8.fields,lastModified:/*#__PURE__*/ Q(V)}),P5=/*#__PURE__*/ U({...q8.fields,annotations:/*#__PURE__*/ Q(N5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(j5))}),F5=/*#__PURE__*/ U({...J8.fields,annotations:/*#__PURE__*/ Q(N5),icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(j5))}),I5=/*#__PURE__*/ U({...X8.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(j5))}),L5=/*#__PURE__*/ U({...Q8.fields,annotations:/*#__PURE__*/ Q(N5)}),R5=/*#__PURE__*/ U({...$8.fields,annotations:/*#__PURE__*/ Q(N5)}),z5=/*#__PURE__*/ U({...e5.fields,annotations:/*#__PURE__*/ Q(N5)}),B5=/*#__PURE__*/ U({...Z8.fields,annotations:/*#__PURE__*/ Q(N5)}),V5=/*#__PURE__*/ G([L5,R5,z5,/* @__PURE__ */ U({...P5.fields,type:/*#__PURE__*/ B(`resource_link`)}),B5]),a_e=/*#__PURE__*/ U({role:M6,content:V5}),H5=/*#__PURE__*/ U({...o5.fields,icons:/*#__PURE__*/ Q(/*#__PURE__*/ W(j5))}),U5=/*#__PURE__*/ U({...s5.fields,content:/*#__PURE__*/ W(V5)});var o_e=class extends (/*#__PURE__*/ X(`tools/call`,{success:U5,error:V6,payload:b5.payloadSchema})){};const W5=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`tool_use`),id:V,name:V,input:k5,_meta:A5}),G5=/*#__PURE__*/ G([L5,R5,z5,W5,/* @__PURE__ */ U({type:/*#__PURE__*/ B(`tool_result`),toolUseId:V,content:/*#__PURE__*/ W(V5),structuredContent:/*#__PURE__*/ Q(k5),isError:/*#__PURE__*/ Q(H),_meta:A5})]),K5=/*#__PURE__*/ U({role:M6,content:/*#__PURE__*/ G([G5,/*#__PURE__*/ W(G5)]),_meta:A5}),q5=/*#__PURE__*/ U({mode:/*#__PURE__*/ Q(/*#__PURE__*/ lT([`auto`,`required`,`none`]))}),s_e=/*#__PURE__*/ U({...I6.fields,...K5.fields,model:V,stopReason:/*#__PURE__*/ Q(V)});var J5=class extends (/*#__PURE__*/ X(`sampling/createMessage`,{success:s_e,error:V6,payload:{...c5.payloadSchema.fields,messages:/*#__PURE__*/ W(K5),maxTokens:ST,tools:/*#__PURE__*/ Q(/*#__PURE__*/ W(H5)),toolChoice:/*#__PURE__*/ Q(q5)}})){};const Y5=/*#__PURE__*/ U({...t8.fields,_meta:A5}),c_e=/*#__PURE__*/ U({...I6.fields,roots:/*#__PURE__*/ W(Y5)});var X5=class extends (/*#__PURE__*/ X(`roots/list`,{success:c_e,error:V6,payload:/*#__PURE__*/ dT(P6)})){};const Z5=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),minLength:/*#__PURE__*/ Q(ST),maxLength:/*#__PURE__*/ Q(ST),format:/*#__PURE__*/ Q(/*#__PURE__*/ lT([`email`,`uri`,`date`,`date-time`])),default:/*#__PURE__*/ Q(V)}),Q5=/*#__PURE__*/ U({type:/*#__PURE__*/ lT([`number`,`integer`]),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),minimum:/*#__PURE__*/ Q(yT),maximum:/*#__PURE__*/ Q(yT),default:/*#__PURE__*/ Q(yT)}),$5=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`boolean`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),default:/*#__PURE__*/ Q(H)}),e7=/*#__PURE__*/ U({const:V,title:V}),t7=/*#__PURE__*/ G([/* @__PURE__ */ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),enum:/*#__PURE__*/ W(V),default:/*#__PURE__*/ Q(V)}),/* @__PURE__ */ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),oneOf:/*#__PURE__*/ W(e7),default:/*#__PURE__*/ Q(V)})]),n7=/*#__PURE__*/ G([/* @__PURE__ */ U({type:/*#__PURE__*/ B(`array`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),minItems:/*#__PURE__*/ Q(ST),maxItems:/*#__PURE__*/ Q(ST),items:/*#__PURE__*/ U({type:/*#__PURE__*/ B(`string`),enum:/*#__PURE__*/ W(V)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ W(V))}),/* @__PURE__ */ U({type:/*#__PURE__*/ B(`array`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),minItems:/*#__PURE__*/ Q(ST),maxItems:/*#__PURE__*/ Q(ST),items:/*#__PURE__*/ U({anyOf:/*#__PURE__*/ W(e7)}),default:/*#__PURE__*/ Q(/*#__PURE__*/ W(V))})]),r7=/*#__PURE__*/ U({type:/*#__PURE__*/ B(`string`),title:/*#__PURE__*/ Q(V),description:/*#__PURE__*/ Q(V),enum:/*#__PURE__*/ W(V),enumNames:/*#__PURE__*/ Q(/*#__PURE__*/ W(V)),default:/*#__PURE__*/ Q(V)}),l_e=/*#__PURE__*/ U({$schema:/*#__PURE__*/ Q(V),type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ rT(V,/* @__PURE__ */ G([/* @__PURE__ */ G([r7,t7,n7]),Z5,Q5,$5])),required:/*#__PURE__*/ Q(/*#__PURE__*/ W(V))}),u_e=/*#__PURE__*/ G([/* @__PURE__ */ U({...P6.fields,mode:/*#__PURE__*/ Q(/*#__PURE__*/ B(`form`)),message:V,requestedSchema:l_e}),/* @__PURE__ */ U({...P6.fields,mode:/*#__PURE__*/ B(`url`),message:V,elicitationId:V,url:V})]),d_e=/*#__PURE__*/ U({...I6.fields,action:/*#__PURE__*/ lT([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ Q(/*#__PURE__*/ rT(V,/*#__PURE__*/ G([V,yT,H,/*#__PURE__*/ W(V)])))});var i7=class extends (/*#__PURE__*/ X(`elicitation/create`,{success:d_e,error:V6,payload:u_e})){},f_e=class extends (/*#__PURE__*/ X(`notifications/elicitation/complete`,{payload:{elicitationId:V}})){};const a7=/*#__PURE__*/ U({...r5.fields,serverInfo:M5});var p_e=class extends (/*#__PURE__*/ X(`initialize`,{success:a7,error:V6,payload:{...i5.payloadSchema.fields,capabilities:i_e,clientInfo:M5}})){};const o7=/*#__PURE__*/ U({...R6.fields,resources:/*#__PURE__*/ W(P5)}),s7=/*#__PURE__*/ U({...R6.fields,resourceTemplates:/*#__PURE__*/ W(F5)}),c7=/*#__PURE__*/ U({...R6.fields,prompts:/*#__PURE__*/ W(I5)}),l7=/*#__PURE__*/ U({..._5.fields,messages:/*#__PURE__*/ W(a_e)}),u7=/*#__PURE__*/ U({...R6.fields,tools:/*#__PURE__*/ W(H5)});var m_e=class extends (/*#__PURE__*/ X(`resources/list`,{success:o7,error:V6,payload:/*#__PURE__*/ dT(L6)})){},h_e=class extends (/*#__PURE__*/ X(`resources/templates/list`,{success:s7,error:V6,payload:/*#__PURE__*/ dT(L6)})){},g_e=class extends (/*#__PURE__*/ X(`prompts/list`,{success:c7,error:V6,payload:/*#__PURE__*/ dT(L6)})){},__e=class extends (/*#__PURE__*/ X(`prompts/get`,{success:l7,error:V6,payload:{...P6.fields,name:V,arguments:/*#__PURE__*/ Q(/*#__PURE__*/ rT(V,V))}})){},v_e=class extends (/*#__PURE__*/ X(`tools/list`,{success:u7,error:V6,payload:/*#__PURE__*/ dT(L6)})){},y_e=class extends (/*#__PURE__*/ u4(s8,p_e,f5,c8,__e,g_e,m_e,h_e,y5,l8,u8,o_e,v_e)){},d7=class extends (/*#__PURE__*/ u4(f8,N8,p8,m8)){},b_e=class extends (/*#__PURE__*/ u4(s8,J5,X5,i7)){},x_e=class extends (/*#__PURE__*/ u4(f8,N8,h8,g8,_8,v8,y8,f_e)){};const f7=/*#__PURE__*/ (/* @__PURE__ */ y_e.middleware(Y3)).merge(d7),p7=/*#__PURE__*/ f7.omit(`ping`),S_e=e=>{if(e?.type!==`object`)return!1;let t=e.properties===void 0||Yn(e.properties)&&Object.values(e.properties).every(Yn),n=e.required===void 0||Array.isArray(e.required)&&e.required.every(zn);return t&&n},m7=(e,t)=>new K3({operation:e,protocolVersion:O5,reason:t}),h7=(e,t,n)=>Object.hasOwn(e.clientCapabilities,n)&&e.clientCapabilities[n]!==void 0?P:F(m7(t,`Client did not advertise the ${n} capability`)),C_e=e=>e.stopReason===`toolUse`||(`type`in e.content?e.content.type===`tool_use`||e.content.type===`tool_result`:e.content.some(e=>e.type===`tool_use`||e.type===`tool_result`)),w_e=(e,t)=>{let n=e.clientCapabilities.elicitation;return n===void 0?!1:t===`form`?n.form!==void 0||n.url===void 0:n.url!==void 0},g7=/*#__PURE__*/ z(function*(e){return TO(e).pipe(EO({type:kO(`text`,`resource_link`)},e=>e),EO({type:kO(`image`,`audio`)},e=>({type:e.type,mimeType:e.mimeType,data:kc(e.data),annotations:e.annotations,_meta:e._meta})),EO({type:`resource`},e=>{let t=e.resource;return`text`in t?B5.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,text:t.text},annotations:e.annotations,_meta:e._meta}):B5.make({type:`resource`,resource:{uri:t.uri,mimeType:t.mimeType,_meta:t._meta,blob:kc(t.blob)},annotations:e.annotations,_meta:e._meta})}),PO)}),T_e=e=>e===void 0||E_e(e)?e:void 0,E_e=e=>Yn(e),D_e=/*#__PURE__*/ h6({protocolVersion:O5,runtime:/*#__PURE__*/ D6({jsonRpc:{acceptsBatches:!1},http:{requiresVersionHeader:!0}}),clientRpcs:f7,clientNotificationRpcs:d7,serverRequestRpcs:b_e,serverNotificationRpcs:x_e,handlerRpcs:p7,makeHandlers:(e,t)=>p7.of({initialize:(e,{client:n})=>t.initialize(O5,{protocolVersion:O5,clientCapabilities:f3.make(e.capabilities),clientInfo:d3.make(e.clientInfo),requestMetadata:e._meta},n.id).pipe(L(e=>a7.make({protocolVersion:O5,capabilities:{experimental:e.capabilities.experimental,logging:e.capabilities.logging?{}:void 0,completions:e.capabilities.completions?{}:void 0,prompts:e.capabilities.prompts,resources:e.capabilities.resources,tools:e.capabilities.tools},serverInfo:e.serverInfo,instructions:e.instructions}))),"logging/setLevel":({level:e},{client:n,headers:r})=>t.setLogLevel(e,n.id,r).pipe(nh({})),"notifications/cancelled":()=>P,"notifications/initialized":(e,{client:n,headers:r})=>t.clientNotification($3.Initialized(),n.id,r),"notifications/progress":(e,{client:n,headers:r})=>t.clientNotification($3.Progress({progressToken:e.progressToken,progress:e.progress,total:e.total,message:e.message,metadata:e._meta}),n.id,r),"notifications/roots/list_changed":(e,{client:n,headers:r})=>t.clientNotification($3.RootsChanged(),n.id,r),"resources/list":()=>J3.use(t=>e.resources.list(r6(t))).pipe(L(e=>o7.make({resources:e.map(e=>P5.make(e))}))),"resources/templates/list":()=>J3.use(t=>e.resources.listTemplates(r6(t))).pipe(L(e=>s7.make({resourceTemplates:e.map(e=>F5.make(e))}))),"resources/read":z(function*({uri:t}){let n=yield*J3,r=yield*e.resources.read(t,i6(n)).pipe(R(l6.fromFeature));return h5.make({contents:r.contents.map(e=>`text`in e?{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,text:e.text}:{uri:e.uri,mimeType:e.mimeType,_meta:e._meta,blob:kc(e.blob)}),_meta:r._meta})}),"resources/subscribe":({uri:e},{client:n,headers:r})=>t.subscribe(e,n.id,r).pipe(nh({})),"resources/unsubscribe":({uri:e},{client:n,headers:r})=>t.unsubscribe(e,n.id,r).pipe(nh({})),"prompts/list":()=>J3.use(t=>e.prompts.list(r6(t))).pipe(L(e=>c7.make({prompts:e.map(e=>I5.make(e))}))),"prompts/get":z(function*({arguments:t,name:n}){let r=yield*J3,i=yield*e.prompts.get(n,t??{},i6(r)).pipe(R(l6.fromFeature));if(i._tag===`InputRequired`)return yield*l6.fromFeature(new Q3({protocolVersion:O5,feature:`prompt input requirements`}));let a=i.value,o=yield*Mm(a.messages,e=>g7(e.content).pipe(L(t=>({role:e.role,content:t})),R(l6.fromTool)));return l7.make({description:a.description,messages:o,_meta:a._meta})}),"completion/complete":z(function*(t){let n=yield*J3,r=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},i6(n)).pipe(R(l6.fromFeature));return d5.make({completion:{values:Array.from(r.values),total:r.total,hasMore:r.hasMore},_meta:r.metadata})}),"tools/list":z(function*(){let t=yield*J3,n=yield*e.tools.list(r6(t));return u7.make({tools:n.map(e=>H5.make({name:e.name,title:e.title,description:e.description,inputSchema:e.inputSchema,outputSchema:S_e(e.outputSchema)?e.outputSchema:void 0,icons:e.icons,annotations:e.annotations===void 0?void 0:E8.make({readOnlyHint:e.annotations.readOnlyHint,destructiveHint:e.annotations.destructiveHint,idempotentHint:e.annotations.idempotentHint,openWorldHint:e.annotations.openWorldHint}),_meta:e._meta}))})}),"tools/call":z(function*(t){let n=yield*J3,r=yield*e.tools.call({...t,arguments:t.arguments??{}},i6(n)).pipe(I(e=>o6(O5,e)),ah(`InvalidToolInput`,e=>M(L3.make({content:[k3.make({type:`text`,text:e.message})],isError:!0}))),R(l6.fromTool)),i=yield*Mm(r.content,g7).pipe(R(l6.fromTool)),a=T_e(r.structuredContent);return U5.make({content:i,structuredContent:a,isError:r.isError,_meta:r._meta})})}),toReverseClient:(e,t)=>({listRoots:z(function*(n){yield*h7(e,`roots/list`,`roots`);let r=yield*d6(W3.payloadSchema,X5.payloadSchema,n).pipe(R(()=>m7(`roots/list`,`Request is not representable by this protocol`))),{roots:i}=yield*t[`roots/list`](r).pipe(R(u6(`roots/list`)));return new U3({roots:i})}),createMessage:z(function*(n){if(yield*h7(e,`sampling/createMessage`,`sampling`),c6(n)&&e.clientCapabilities.sampling?.tools==null)return yield*m7(`sampling/createMessage`,`Client did not advertise the sampling.tools capability`);if((n.includeContext===`thisServer`||n.includeContext===`allServers`)&&e.clientCapabilities.sampling?.context==null)return yield*m7(`sampling/createMessage`,`Client did not advertise the sampling.context capability`);let r=yield*d6(H3.payloadSchema,J5.payloadSchema,n).pipe(R(()=>m7(`sampling/createMessage`,`Request is not representable by this protocol`))),i=yield*t[`sampling/createMessage`](r).pipe(R(u6(`sampling/createMessage`)));return C_e(i)&&e.clientCapabilities.sampling?.tools==null?yield*m7(`sampling/createMessage`,`Client did not advertise the sampling.tools capability`):yield*d6(J5.successSchema,H3.successSchema,i).pipe(R(()=>m7(`sampling/createMessage`,`Response is not representable by the canonical model`)))}),elicit:z(function*(n){yield*h7(e,`elicitation/create`,`elicitation`);let r=n.mode===`url`?`url`:`form`;if(!w_e(e,r))return yield*m7(`elicitation/create`,`Client did not advertise the elicitation.${r} capability`);let i=yield*d6(G3.payloadSchema,i7.payloadSchema,n).pipe(R(()=>m7(`elicitation/create`,`Request is not representable by this protocol`))),a=yield*t[`elicitation/create`](i).pipe(R(u6(`elicitation/create`)));return yield*d6(i7.successSchema,G3.successSchema,a).pipe(R(()=>m7(`elicitation/create`,`Response is not representable by the canonical model`)))})}),projectNotification:e=>e._tag===`ElicitationComplete`?M({tag:`notifications/elicitation/complete`,payload:{elicitationId:e.elicitationId}}):p6({supportsProgressMessage:!0},e),normalizeCancellation:e=>Pw(f8.payloadSchema)(e).pipe(L(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta})))}),_7=`2026-07-28`,$=k6,v7=/*#__PURE__*/ $(K),y7=/*#__PURE__*/ G([V,ST]),b7=y7,x7=M6,S7=N6,C7=M5,O_e=/*#__PURE__*/ iT(/*#__PURE__*/ U({experimental:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,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__*/ rT(V,K))}),[K]),k_e=/*#__PURE__*/ iT(/*#__PURE__*/ U({experimental:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,K)),logging:/*#__PURE__*/ $(K),completions:/*#__PURE__*/ $(K),prompts:/*#__PURE__*/ $(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ $(H)})),resources:/*#__PURE__*/ $(/*#__PURE__*/ U({subscribe:/*#__PURE__*/ $(H),listChanged:/*#__PURE__*/ $(H)})),tools:/*#__PURE__*/ $(/*#__PURE__*/ U({listChanged:/*#__PURE__*/ $(H)})),extensions:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,K))}),[K]),w7=/*#__PURE__*/ iT(/*#__PURE__*/ U({progressToken:/*#__PURE__*/ $(b7),"io.modelcontextprotocol/protocolVersion":V,"io.modelcontextprotocol/clientInfo":/*#__PURE__*/ $(C7),"io.modelcontextprotocol/clientCapabilities":O_e,"io.modelcontextprotocol/logLevel":/*#__PURE__*/ $(S7)}),[K]),T7=/*#__PURE__*/ U({_meta:w7}),E7=/*#__PURE__*/ U({_meta:/*#__PURE__*/ $(/* @__PURE__ */ iT(/*#__PURE__*/ U({"io.modelcontextprotocol/subscriptionId":/*#__PURE__*/ $(y7)}),[K]))}),D7=/*#__PURE__*/ iT(/*#__PURE__*/ U({"io.modelcontextprotocol/serverInfo":C7}),[K]),O7={_meta:D7,resultType:/*#__PURE__*/ B(`complete`)},k7=/*#__PURE__*/ U({code:ST,message:V,data:/*#__PURE__*/ $(HT)}),A_e=N5,A7=/*#__PURE__*/ U({...P5.fields,size:/*#__PURE__*/ $(ST),annotations:/*#__PURE__*/ $(A_e)}),j7=F5,j_e=Y8,M7=L5,N7=R5,P7=z5,F7=/*#__PURE__*/ G([M7,N7,P7,/* @__PURE__ */ U({...A7.fields,type:/*#__PURE__*/ B(`resource_link`)}),B5]),I7=I5,M_e=/*#__PURE__*/ U({role:x7,content:F7}),N_e=/*#__PURE__*/ iT(/*#__PURE__*/ U({$schema:/*#__PURE__*/ $(V),type:/*#__PURE__*/ B(`object`)}),[K]),P_e=/*#__PURE__*/ iT(/*#__PURE__*/ U({$schema:/*#__PURE__*/ $(V)}),[K]),F_e=E8,L7=/*#__PURE__*/ U({...H5.fields,inputSchema:N_e,outputSchema:/*#__PURE__*/ $(P_e),annotations:/*#__PURE__*/ $(F_e)}),R7=/*#__PURE__*/ G([M7,N7,P7,W5,/* @__PURE__ */ U({type:/*#__PURE__*/ B(`tool_result`),toolUseId:V,content:/*#__PURE__*/ W(F7),structuredContent:/*#__PURE__*/ $(HT),isError:/*#__PURE__*/ $(H),_meta:v7})]),z7=/*#__PURE__*/ U({role:x7,content:/*#__PURE__*/ G([R7,/*#__PURE__*/ W(R7)]),_meta:v7}),I_e=/*#__PURE__*/ iT(/*#__PURE__*/ U({name:/*#__PURE__*/ $(V)}),[K]),B7=/*#__PURE__*/ yT.check(/*#__PURE__*/ xT({minimum:0,maximum:1})),L_e=/*#__PURE__*/ U({...$6.fields,hints:/*#__PURE__*/ $(/*#__PURE__*/ W(I_e)),costPriority:/*#__PURE__*/ $(B7),speedPriority:/*#__PURE__*/ $(B7),intelligencePriority:/*#__PURE__*/ $(B7)}),R_e=/*#__PURE__*/ U({method:/*#__PURE__*/ B(`sampling/createMessage`),params:/*#__PURE__*/ U({messages:/*#__PURE__*/ W(z7),modelPreferences:/*#__PURE__*/ $(L_e),systemPrompt:/*#__PURE__*/ $(V),includeContext:/*#__PURE__*/ $(/*#__PURE__*/ lT([`none`,`thisServer`,`allServers`])),temperature:/*#__PURE__*/ $(yT),maxTokens:ST,stopSequences:/*#__PURE__*/ $(/*#__PURE__*/ W(V)),metadata:/*#__PURE__*/ $(K),tools:/*#__PURE__*/ $(/*#__PURE__*/ W(L7)),toolChoice:/*#__PURE__*/ $(q5)})}),z_e=/*#__PURE__*/ U({...z7.fields,model:V,stopReason:/*#__PURE__*/ $(V)}),B_e=Y5,V_e=/*#__PURE__*/ U({method:/*#__PURE__*/ B(`roots/list`),params:/*#__PURE__*/ $(/*#__PURE__*/ U({_meta:v7}))}),H_e=/*#__PURE__*/ U({roots:/*#__PURE__*/ W(B_e)}),U_e=/*#__PURE__*/ U({method:/*#__PURE__*/ B(`elicitation/create`),params:/* @__PURE__ */ G([/* @__PURE__ */ U({mode:/*#__PURE__*/ $(/*#__PURE__*/ B(`form`)),message:V,requestedSchema:/* @__PURE__ */ U({$schema:/*#__PURE__*/ $(V),type:/*#__PURE__*/ B(`object`),properties:/*#__PURE__*/ rT(V,/* @__PURE__ */ G([/* @__PURE__ */ G([r7,t7,n7]),Z5,Q5,$5])),required:/*#__PURE__*/ $(/*#__PURE__*/ W(V))})}),/* @__PURE__ */ U({mode:/*#__PURE__*/ B(`url`),message:V,url:V})])}),W_e=/*#__PURE__*/ U({action:/*#__PURE__*/ lT([`accept`,`decline`,`cancel`]),content:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,/*#__PURE__*/ G([V,yT,H,/*#__PURE__*/ W(V)])))}),G_e=/*#__PURE__*/ G([R_e,V_e,U_e]),K_e=/*#__PURE__*/ G([z_e,H_e,W_e]),V7=/*#__PURE__*/ rT(V,G_e),q_e=/*#__PURE__*/ rT(V,K_e),H7={_meta:D7,resultType:/*#__PURE__*/ B(`input_required`)},U7=/*#__PURE__*/ G([/*#__PURE__*/ iT(/*#__PURE__*/ U({...H7,inputRequests:V7,requestState:/*#__PURE__*/ $(V)}),[K]),/*#__PURE__*/ iT(/*#__PURE__*/ U({...H7,inputRequests:/*#__PURE__*/ $(V7),requestState:V}),[K])]),W7={...T7.fields,inputResponses:/*#__PURE__*/ $(q_e),requestState:/*#__PURE__*/ $(V)},G7={...O7,ttlMs:/*#__PURE__*/ ST.check(/*#__PURE__*/ foe(0)),cacheScope:/*#__PURE__*/ lT([`public`,`private`])},K7={...T7.fields,cursor:/*#__PURE__*/ $(V)},q7={...O7,nextCursor:/*#__PURE__*/ $(V)},J7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...G7,supportedVersions:/*#__PURE__*/ W(V),capabilities:k_e,instructions:/*#__PURE__*/ $(V)}),[K]);var J_e=class extends (/*#__PURE__*/ X(`server/discover`,{success:J7,error:k7,payload:T7})){};const Y7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...q7,...G7,resources:/*#__PURE__*/ W(A7)}),[K]);var Y_e=class extends (/*#__PURE__*/ X(`resources/list`,{success:Y7,error:k7,payload:K7})){};const X7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...q7,...G7,resourceTemplates:/*#__PURE__*/ W(j7)}),[K]);var X_e=class extends (/*#__PURE__*/ X(`resources/templates/list`,{success:X7,error:k7,payload:K7})){};const Z7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...G7,contents:/*#__PURE__*/ W(j_e)}),[K]);var Z_e=class extends (/*#__PURE__*/ X(`resources/read`,{success:/*#__PURE__*/ G([Z7,U7]),error:k7,payload:{...W7,uri:V}})){};const Q7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...q7,...G7,prompts:/*#__PURE__*/ W(I7)}),[K]);var Q_e=class extends (/*#__PURE__*/ X(`prompts/list`,{success:Q7,error:k7,payload:K7})){};const $7=/*#__PURE__*/ iT(/*#__PURE__*/ U({...O7,description:/*#__PURE__*/ $(V),messages:/*#__PURE__*/ W(M_e)}),[K]);var $_e=class extends (/*#__PURE__*/ X(`prompts/get`,{success:/*#__PURE__*/ G([$7,U7]),error:k7,payload:{...W7,name:V,arguments:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,V))}})){};const e9=/*#__PURE__*/ iT(/*#__PURE__*/ U({...q7,...G7,tools:/*#__PURE__*/ W(L7)}),[K]);var eve=class extends (/*#__PURE__*/ X(`tools/list`,{success:e9,error:k7,payload:K7})){};const t9=/*#__PURE__*/ iT(/*#__PURE__*/ U({...O7,content:/*#__PURE__*/ W(F7),structuredContent:/*#__PURE__*/ $(HT),isError:/*#__PURE__*/ $(H)}),[K]);var tve=class extends (/*#__PURE__*/ X(`tools/call`,{success:/*#__PURE__*/ G([t9,U7]),error:k7,payload:{...W7,name:V,arguments:/*#__PURE__*/ $(K)}})){};const nve=l5,rve=u5,n9=/*#__PURE__*/ iT(/*#__PURE__*/ U({...O7,completion:/*#__PURE__*/ U({values:/*#__PURE__*/ W(V).check(/*#__PURE__*/ goe(100)),total:/*#__PURE__*/ $(ST),hasMore:/*#__PURE__*/ $(H)})}),[K]);var ive=class extends (/*#__PURE__*/ X(`completion/complete`,{success:n9,error:k7,payload:{...T7.fields,ref:/*#__PURE__*/ G([nve,rve]),argument:/*#__PURE__*/ U({name:V,value:V}),context:/*#__PURE__*/ $(/*#__PURE__*/ U({arguments:/*#__PURE__*/ $(/*#__PURE__*/ rT(V,V))}))}})){};const r9=/*#__PURE__*/ U({toolsListChanged:/*#__PURE__*/ $(H),promptsListChanged:/*#__PURE__*/ $(H),resourcesListChanged:/*#__PURE__*/ $(H),resourceSubscriptions:/*#__PURE__*/ $(/*#__PURE__*/ W(V))}),i9=/*#__PURE__*/ iT(/*#__PURE__*/ U({_meta:/* @__PURE__ */ iT(/*#__PURE__*/ U({"io.modelcontextprotocol/serverInfo":C7,"io.modelcontextprotocol/subscriptionId":y7}),[K]),resultType:/*#__PURE__*/ B(`complete`)}),[K]);var ave=class extends (/*#__PURE__*/ X(`subscriptions/listen`,{success:i9,error:k7,payload:{...T7.fields,notifications:r9}})){},a9=class extends (/*#__PURE__*/ X(`notifications/cancelled`,{payload:{...E7.fields,requestId:y7,reason:/*#__PURE__*/ $(V)}})){},ove=class extends (/*#__PURE__*/ X(`notifications/progress`,{payload:{...E7.fields,progressToken:b7,progress:yT,total:/*#__PURE__*/ $(yT),message:/*#__PURE__*/ $(V)}})){},sve=class extends (/*#__PURE__*/ X(`notifications/message`,{payload:{...E7.fields,level:S7,logger:/*#__PURE__*/ $(V),data:HT}})){},o9=class extends (/*#__PURE__*/ X(`notifications/resources/updated`,{payload:{...E7.fields,uri:V}})){},s9=class extends (/*#__PURE__*/ X(`notifications/resources/list_changed`,{payload:/*#__PURE__*/ dT(E7)})){},c9=class extends (/*#__PURE__*/ X(`notifications/tools/list_changed`,{payload:/*#__PURE__*/ dT(E7)})){},l9=class extends (/*#__PURE__*/ X(`notifications/prompts/list_changed`,{payload:/*#__PURE__*/ dT(E7)})){},u9=class extends (/*#__PURE__*/ X(`notifications/subscriptions/acknowledged`,{payload:{...E7.fields,notifications:r9}})){},d9=class extends (/*#__PURE__*/ u4(J_e,ive,$_e,Q_e,Y_e,X_e,Z_e,ave,tve,eve)){},f9=class extends (/*#__PURE__*/ u4(a9)){},cve=class extends (/*#__PURE__*/ d9.merge(f9)){},lve=class extends (/*#__PURE__*/ u4()){},uve=class extends (/*#__PURE__*/ u4(a9,ove,sve,o9,s9,c9,l9,u9)){};const dve=/*#__PURE__*/ rT(V,K),fve=/*#__PURE__*/ Pw(w7),pve=/*#__PURE__*/ Pw(a9.payloadSchema),mve=/*#__PURE__*/ Nw(HT),p9=/*#__PURE__*/ Vw(C7),m9=e=>{let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t},hve=(e,t)=>{if(Kn(t))return e===void 0;if(e===void 0)return!1;let n=n6(e);return n!==void 0&&TO(t).pipe(EO(AO,e=>n===e),EO(MO,e=>n===String(e)),EO(jO,e=>Number.isSafeInteger(e)&&n.trim().length>0&&Number(n)===e),NO(()=>!1))},gve=/*#__PURE__*/ z(function*(e){let t=yield*fve(e);return{protocolVersion:_7,clientCapabilities:t[`io.modelcontextprotocol/clientCapabilities`],clientInfo:t[`io.modelcontextprotocol/clientInfo`],requestMetadata:t}}),h9=(e,t)=>{let n=e._meta;return{...Yn(n)?n:{},"io.modelcontextprotocol/serverInfo":t}},g9=(e,t)=>m9({_meta:{"io.modelcontextprotocol/serverInfo":t},resultType:`input_required`,inputRequests:e.inputRequests,requestState:e.requestState}),_9=/*#__PURE__*/ Pw(/*#__PURE__*/ G([t9,U7])),v9=/*#__PURE__*/ z(function*(e,t){let n=yield*p9(t);return e._tag===`Complete`?yield*_9({...m9(e.value),_meta:h9(e.value,n),resultType:`complete`}):yield*_9(g9(e,n))}),_ve=(e,t)=>{let n={};for(let r of Object.values(e??{}))TO(r).pipe(EO({method:`roots/list`},()=>{t.roots===void 0&&(n.roots={})}),EO({method:`sampling/createMessage`},e=>{let r=n.sampling??{};c6(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)}),EO({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]={})}),PO);return n},y9=e=>m9({uri:e.uri,mimeType:e.mimeType,_meta:e._meta,...`text`in e?{text:e.text}:{blob:kc(e.blob)}}),b9=/*#__PURE__*/ wO().pipe(/*#__PURE__*/ EO({type:/*#__PURE__*/ kO(`text`,`resource_link`)},e=>e),/*#__PURE__*/ EO({type:/*#__PURE__*/ kO(`image`,`audio`)},e=>m9({type:e.type,mimeType:e.mimeType,data:kc(e.data),annotations:e.annotations,_meta:e._meta})),/*#__PURE__*/ EO({type:`resource`},e=>m9({type:`resource`,resource:y9(e.resource),annotations:e.annotations,_meta:e._meta})),PO),vve=e=>A7.make(e),yve=e=>j7.make(e),bve=e=>d6(Ihe,I7,e),xve=e=>d6(I3,L7,e),x9={ttlMs:0,cacheScope:`private`},S9=/*#__PURE__*/ z(function*(e,t){let n=yield*p9(t);return{...m9(e),_meta:h9(e,n),resultType:`complete`}}),Sve=/*#__PURE__*/ wO().pipe(/*#__PURE__*/ DO(`ResourceNotFound`,e=>new l6({code:-32602,message:`Resource '${e.uri}' not found`,data:{uri:e.uri}})),/*#__PURE__*/ DO(`ToolNotFound`,`InvalidToolInput`,`InvalidToolContinuation`,`ToolExecutionError`,`UnsupportedByProtocol`,l6.fromTool),/*#__PURE__*/ NO(l6.fromFeature)),C9=e=>{let t=Sve(e);return k7.make({code:t.code,message:t.message,...mve(t.data)?{data:t.data}:{}})},w9=/*#__PURE__*/ z(function*(e,t){let n=yield*kh(wM);return Aa(n)&&jM(n.value,(t,n)=>M(Cj(n,e))),yield*t}),Cve=e=>pve(e).pipe(L(e=>({requestId:e.requestId,reason:e.reason,metadata:e._meta}))),T9=e=>new K3({operation:e,protocolVersion:_7,reason:`MCP 2026-07-28 carries server input requests in multi round-trip results`}),wve=/* @__PURE__ */ h6({protocolVersion:_7,runtime:{_tag:`Stateless`,transport:{jsonRpc:{acceptsBatches:!1},http:{}},profileFromRequestMetadata:gve},clientRpcs:cve,clientNotificationRpcs:f9,serverRequestRpcs:lve,serverNotificationRpcs:uve,handlerRpcs:/* @__PURE__ */ d9.merge(f9),makeHandlers:(e,t,n)=>{let r=Pw(dve),i=Pw(J7),a=Pw(Y7),o=Pw(X7),s=Pw(Z7),c=Pw(Q7),l=Pw($7),u=Pw(G([$7,U7])),d=Pw(n9),f=Pw(e9),p=n.sendNotification,m=p!==void 0,h=n.serverInfo.extensions===void 0?void 0:Za(n.serverInfo.extensions,e=>Yn(e)),g=L(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}}),_=q3.useSync(a6),v=z(function*(e){let t=yield*q3,n=e.inputResponses===void 0?void 0:yield*r(e.inputResponses).pipe(lh);return a6(q3.of({...t,inputResponses:n,requestState:e.requestState}))}),y=z(function*(e,t){let n=_ve(e.inputRequests,t);if(Object.keys(n).length!==0)return yield*w9(400,new l6({code:-32021,message:`The request requires client capabilities that were not declared`,data:{requiredCapabilities:n}}))});return{"subscriptions/listen":z(function*(e,{client:t,requestId:r}){if(p===void 0)return yield*new l6({code:-32601,message:`Method not found: subscriptions/listen`});let i=yield*n.registrationPresence,a=yield*rre(yield*Mh),o=yield*Cp(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*qie(64),d=yield*pp();yield*Vm(function*(){for(;;){let e=yield*Aie(o);if(e.targetClientId!==void 0&&e.targetClientId!==t.id)continue;let n=e.notification,r=TO(n).pipe(OO({ToolsChanged:()=>s.toolsListChanged===!0?c9:void 0,PromptsChanged:()=>s.promptsListChanged===!0?l9:void 0,ResourcesChanged:()=>s.resourcesListChanged===!0?s9:void 0,ResourceUpdated:e=>l.has(e.uri)?o9:void 0}),PO);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*Rb(u,i)))break}}).pipe(ire(a),Zm(Rm(()=>n.markSubscriptionCancelled?.(t.id,r)??P)),Zm(vp(d,void 0)),rg),yield*p(_7,t.id,{tag:u9._tag,payload:u9.payloadSchema.make({_meta:c,notifications:s})});let f=Yh(qb(u).pipe(I(e=>p(_7,t.id,e))));yield*vh(f,mp(d)),yield*n.terminateSubscription?.(`2026-07-28`,t.id,r,`Pending notification limit exceeded`)??P;let m=yield*p9(n.serverInfo);return i9.make({_meta:{...c,"io.modelcontextprotocol/serverInfo":m},resultType:`complete`})},R(C9)),"server/discover":z(function*(e){let t=yield*g,r=yield*S9({...x9,supportedVersions:Array.from(t.supportedVersions),capabilities:t.capabilities,instructions:n.serverInfo.instructions},n.serverInfo);return yield*i(r)},R(C9)),"resources/list":z(function*(t){let r=yield*_,i=yield*e.resources.list(r.protocol),o=yield*S9({...x9,resources:i.map(vve)},n.serverInfo);return yield*a(o)},R(C9)),"resources/templates/list":z(function*(t){let r=yield*_,i=yield*e.resources.listTemplates(r.protocol),a=yield*S9({...x9,resourceTemplates:i.map(yve)},n.serverInfo);return yield*o(a)},R(C9)),"resources/read":z(function*(t){let r=yield*v(t),i=yield*e.resources.read(t.uri,r),a=i.contents.map(y9),o=yield*S9({...x9,contents:a,_meta:i._meta},n.serverInfo);return yield*s(o)},R(C9)),"prompts/list":z(function*(t){if(!(yield*n.registrationPresence).prompts)return yield*w9(404,new l6({code:m3,message:`Method not found`}));let r=yield*_,i=yield*e.prompts.list(r.protocol),a=yield*Mm(i,bve),o=yield*S9({...x9,prompts:a},n.serverInfo);return yield*c(o)},R(C9)),"prompts/get":z(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*p9(n.serverInfo);return yield*u(g9(i,e))}let a=i.value,o=a.messages.map(e=>({role:e.role,content:b9(e.content)})),s=yield*S9({description:a.description,messages:o,_meta:a._meta},n.serverInfo);return yield*l(s)},R(C9)),"completion/complete":z(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*S9({completion:m9({values:Array.from(i.values),total:i.total,hasMore:i.hasMore}),_meta:i.metadata},n.serverInfo);return yield*d(a)},R(C9)),"tools/list":z(function*(t){let r=yield*_,i=yield*e.tools.list(r.protocol),a=yield*Mm(i,xve),o=yield*S9({...x9,tools:a},n.serverInfo);return yield*f(o)},R(C9)),"tools/call":z(function*(t){let r=yield*v(t),i=(yield*e.tools.list(r.protocol)).find(e=>e.name===t.name),a=yield*kh(wM);if(i!==void 0&&Aa(a)){let e=[{schema:i.inputSchema,argument:t.arguments,path:``}];for(;e.length>0;){let{schema:t,argument:n,path:r}=e.pop();if(!Yn(t))continue;let i=t[`x-mcp-header`];if(typeof i==`string`){let e=`mcp-param-${i.toLowerCase()}`;if(!hve(a.value.headers[e],n))return yield*w9(400,new l6({code:_3,message:`${e} does not match argument '${r}'`}))}if(Yn(t.properties))for(let[i,a]of Object.entries(t.properties))e.push({schema:a,argument:Yn(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(ah([`ToolExecutionError`,`InvalidToolInput`],e=>M(Z3.Complete(L3.make({content:[k3.make({type:`text`,text:e.message})],isError:!0})))));if(o._tag===`InputRequired`)return yield*y(o,r.protocol.clientCapabilities),yield*v9(o,n.serverInfo);let s=o.value,c=s.content.map(b9);return yield*v9(Z3.Complete({content:c,structuredContent:s.structuredContent,isError:s.isError,_meta:s._meta}),n.serverInfo)},R(C9)),"notifications/cancelled":z(function*(e){return yield*P})}},toReverseClient:()=>({listRoots:()=>F(T9(`roots/list`)),createMessage:()=>F(T9(`sampling/createMessage`)),elicit:()=>F(T9(`elicitation/create`))}),projectNotification:e=>m6(e)?M(void 0):p6({supportsProgressMessage:!0},e),normalizeCancellation:Cve}),Tve=D_e,Eve=r_e,Dve=Fge,E9=/*#__PURE__*/ new WeakMap,Ove=/*#__PURE__*/ Yhe.omit(`notifications/elicitation/complete`),D9=/*#__PURE__*/ Nw(z3),kve=e=>{switch(e.tag){case`notifications/cancelled`:return e6.Cancelled({requestId:e.payload.requestId,reason:e.payload.reason,metadata:e.payload._meta});case`notifications/progress`:return e6.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 e6.LoggingMessage({level:e.payload.level,logger:e.payload.logger,data:e.payload.data,metadata:e.payload._meta});case`notifications/resources/updated`:return e6.ResourceUpdated({uri:e.payload.uri,metadata:e.payload._meta});case`notifications/resources/list_changed`:return e6.ResourcesChanged({metadata:e.payload?._meta});case`notifications/tools/list_changed`:return e6.ToolsChanged({metadata:e.payload?._meta});case`notifications/prompts/list_changed`:return e6.PromptsChanged({metadata:e.payload?._meta});default:return}},O9=/*#__PURE__*/ Ss(q3,J3,wM,bp),k9=(e,t)=>{let n=jh(e,q3,t.requestContext),r=t.requestContext.requestMetadata,i=A(r,`io.modelcontextprotocol/logLevel`)?r[`io.modelcontextprotocol/logLevel`]:void 0;return D9(i)&&(n=jh(n,bp,t6[i].effect)),t.serverClient===void 0?n:jh(n,J3,t.serverClient)};var A9=class e extends (/*#__PURE__*/ Wo()(`effect/ai/McpServer`)){static make=/*#__PURE__*/ Vm(function*(){let t=yield*nge,n=mo(),r=[],i=[],a=[],o=yield*Ib(),s={consumers:0},c=/* @__PURE__ */ new Set,l=(yield*mc).makeDispatcher(),u=yield*i4(Ove,{spanPrefix:`McpServer/Notifications`,onFromClient:e=>pp().pipe(I(t=>qm(n=>{let r=e.message;if(r._tag!==`Request`)return P;let i=kve(r);if(i===void 0)return P;let a={notification:i,delivered:t,requestContext:fs(n.context,q3),requestHeaders:fs(n.context,wM)?.headers},d=!1;if(r.tag.includes(`list_changed`)){if(!c.has(r.tag)){d=!0;let e=r.tag;l.scheduleTask(()=>{zb(o,a),c.delete(r.tag)},0),c.add(e)}}else d=!0,zb(o,a);let f=Rm(()=>u.write({clientId:0,requestId:r.id,_tag:`Exit`,exit:sp}));return d&&a.requestContext!==void 0&&s.consumers>0?Zm(mp(t),f):f})))}),d=e.of({notifications:u.client,notifyElicitationComplete:({clientId:e,elicitationId:t})=>pp().pipe(I(n=>Rb(o,{notification:e6.ElicitationComplete({elicitationId:t}),targetClientId:e,delivered:n}).pipe(Zm(Rm(()=>s.consumers>0?mp(n):P))))),get tools(){return n},addTool:e=>Vm(function*(){let r=n.findIndex(({tool:t})=>t.name===e.tool.name);r===-1?n.push(e):n[r]=e;let i=fs(e.annotations,X3);yield*t.tools.register({descriptor:new I3({...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)=>k9(e.handle(t.arguments),n).pipe(oh({InternalError:t=>F(new ege({name:e.tool.name,message:t.message})),InvalidParams:t=>F(new(n.requestContext.requestState===void 0&&n.requestContext.inputResponses===void 0?Qhe:$he)({name:e.tool.name,message:t.message}))}),L(e=>Zn(e,`InputRequired`)?Z3.InputRequired(e):Z3.Complete(e)))}),yield*u.client[`notifications/tools/list_changed`]({})}),callTool:e=>Vm(function*(){let n=yield*J3,r=yield*t.tools.call(e,i6(n)).pipe(R(e=>new x3({message:e._tag===`ToolNotFound`?`Tool '${e.name}' not found`:e.message})));return r._tag===`InputRequired`?yield*new x3({message:`Client input is not supported by this MCP protocol`}):r.value}),get resources(){return r},get resourceTemplates(){return i},addResource:e=>Vm(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=fs(e.annotations,X3);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},read:t=>k9(e.handle,t)}),yield*u.client[`notifications/resources/list_changed`]({})}),addResourceTemplate:({annotations:e,completions:n,handle:r,routerPath:a,template:o})=>Vm(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=Vve();c.add(a,!0),yield*t.resources.registerTemplate({descriptor:o,isVisible:t=>{let n=fs(e,X3);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)=>k9(r(e,Array.from(t)),n)});for(let[e,r]of Object.entries(n))yield*t.completions.register(`resource/${o.uriTemplate}/${e}`,(e,t)=>k9(r(e.argument.value,e.context),t).pipe(L(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=>Vm(function*(){let n=yield*J3;return yield*t.resources.read(e,i6(n)).pipe(ah(`ResourceNotFound`,e=>F(new x3({message:`Resource '${e.uri}' not found`}))))}),get prompts(){return a},addPrompt:e=>Vm(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=fs(e.annotations,X3);return n===void 0||n({protocolVersion:t.protocolVersion,capabilities:t.clientCapabilities,clientInfo:t.clientInfo})},get:(t,n)=>k9(e.handle(t),n).pipe(L(e=>Zn(e,`InputRequired`)?Z3.InputRequired(e):Z3.Complete(e)))});for(let[n,r]of Object.entries(e.completions))yield*t.completions.register(`prompt/${e.prompt.name}/${n}`,(e,t)=>k9(r(e.argument.value,e.context),t).pipe(L(e=>({values:e.completion.values,total:e.completion.total,hasMore:e.completion.hasMore,metadata:e._meta}))));yield*u.client[`notifications/prompts/list_changed`]({})}),getPromptResult:z(function*({arguments:e,name:n}){let r=yield*J3,i=yield*t.prompts.get(n,e??{},i6(r)).pipe(ah(`PromptNotFound`,()=>new x3({message:`Prompt '${n}' not found`})));return i._tag===`Complete`?i.value:yield*new x3({message:`Client input is not supported by this MCP protocol`})}),completion:z(function*(e){let n=yield*J3,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},i6(n));return{_meta:i.metadata,completion:{values:i.values,total:i.total,hasMore:i.hasMore}}})});return E9.set(d,{core:t,notifications:o,notificationDelivery:s}),d});static layer=/*#__PURE__*/ Hp(e)(e.make)};const j9=`mcp-session-id`,M9=/*#__PURE__*/ new WeakMap,N9=e=>`${typeof e}:${e}`;var P9=class extends Cc{};const Ave=/*#__PURE__*/ z(function*(e,t,n){let r=yield*c4,i=yield*A9,a=yield*bp,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*Tie(),m=(e,n,i)=>Rm(()=>{let a=t.selectProtocol(e),o=a.serverNotificationRpcs.requests.get(i.tag);return o===void 0?Wm(`MCP protocol ${e} does not define server notification ${i.tag}`):a.payloadCodecs(o).encode(i.payload).pipe(lh,I(e=>r.send(n,{_tag:`Request`,id:``,tag:i.tag,payload:e,headers:[],isNotification:!0})))}),h=(e,t)=>{let n=c.get(e),r=N9(t),i=n?.get(r);return i!==void 0&&(n.set(r,{...i,cancelled:!0}),!0)},g=yield*t.installHandlers({core:E9.get(i).core,subscribeServerNotifications:Oie(p),...r.supportsNotifications?{sendNotification:m,markSubscriptionCancelled:(e,t)=>N(()=>{h(e,t)}),terminateSubscription:(e,t,n,i)=>Rm(()=>h(t,n)?o?r.end(t):m(e,t,{tag:`notifications/cancelled`,payload:{requestId:n,reason:i}}):P)}:{},defaultLogLevel:a,serverInfo:e}),_=yield*Uoe({lookup:z(function*(e){let n=t.selectProtocol(e.profile.protocolVersion),i,a=yield*o4.make(z(function*(t){let n=0;return i=e=>t(n,e),{send(t,i,a){if(n=t,i._tag===`Request`){let t=N9(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(Rh(()=>N(()=>f(t,e))))}return i._tag===`Interrupt`&&f(N9(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(jh(o4,a)),write:i}}),idleTimeToLive:1e4}),v=Y3.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=Sb(),t=fs(e.context,wM);return t&&jM(t,()=>M(sj({status:r[j9]===void 0?400:404}))),Wm(/* @__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(!Hve(d.protocolVersion)||d.protocolVersion===`2026-07-28`)return Wm(`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=q3.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,requestMetadata:l._meta});return jh(jh(jh(e,J3,J3.of({clientId:n.id,protocolVersion:f.protocolVersion,clientCapabilities:f.clientCapabilities,clientInfo:f.clientInfo,initializePayload:l,requestMetadata:Yn(i)&&Yn(i._meta)?i._meta:void 0,getClient:nE(_,new P9({clientId:n.id,profile:f})).pipe(L(({client:e})=>e))})),q3,p),bp,t.effectLogLevel(n.id,r,a))}),y=c4.of({...r,send:(e,t)=>{if(t._tag===`Exit`){let i=c.get(e),a=N9(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`?P:(M9.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 S3({message:`Internal error`})}]}})}return r.send(e,t)},run:e=>r.run((n,r)=>{let i=Sb(),a=r,p=o?fs(i.context,wM):void 0;switch(p!==void 0&&a._tag!==`Eof`&&jM(p,(e,t)=>M(t.status===200&&t.body._tag===`Uint8Array`&&t.body.contentLength===0?sj({headers:sw(t.headers,`content-type`),status:202}):t)),a._tag){case`Request`:{let r=o?ms(Sb().context,wM).headers:nw(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(N9(a.payload.requestId)):void 0,f=l===void 0?t.prepareRequest(n,r,a):M(l.prepared);return Vm(function*(){let l=yield*f,m=s.get(n);o&&m===void 0&&(yield*Tp(ms(i.context,xp),N(()=>u(n))));let _=l.binding,v=l.protocol;if(s.set(n,{protocol:v,profile:l.profile??m?.profile,sessionHeaders:o&&r[j9]!==void 0?nw({[j9]:r[j9]}):m?.sessionHeaders}),a.tag===`invalid/json-rpc-batch`)return yield*d(n,a.id,new y3({message:`JSON-RPC batches are not supported`}));p!==void 0&&_!==void 0&&jM(p,(e,t)=>M(_j(t,`mcp-protocol-version`,_.protocol.protocolVersion)));let y=t.routeClientRequest(v,a),b=t.clientRpcs.requests.get(y.tag),x=v.clientNotificationRpcs.requests.has(a.tag);if(b&&x&&a.isNotification){if(!_&&v.runtime._tag===`Stateful`){p&&jM(p,()=>M(sj({status:r[j9]===void 0?400:404})));return}let t=v.payloadCodecs(b).decode(a.payload);return yield*Vm(function*(){let i=yield*t;if(a.tag===`notifications/cancelled`){let t=yield*v.normalizeCancellation(i),r=N9(t.requestId),a=n;if(o){if(_===void 0)return;let e=Array.from(c).find(([,e])=>e.get(r)?.prepared.binding===_);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=g.mapUnsafe.get(b.key),u=s?s.handler(i,{rpc:b,requestId:Z2(a.id),client:new K2(n),headers:r}):P;return yield*l.requestContext===void 0?u:jh(u,q3,l.requestContext)}).pipe(ph)}if(!b||x)return a.isNotification?void 0:yield*d(n,a.id,new b3({message:`Method not found: ${a.tag}`}));let S=yield*$m(v.payloadCodecs(b).decode(a.payload));if(Ha(S))return yield*a.isNotification?P:d(n,a.id,new x3({message:`Invalid method parameters`}));if(a.isNotification!==!0){let e=c.get(n)??/* @__PURE__ */ new Map;e.set(N9(a.id),{prepared:l,cancelled:!1}),c.set(n,e)}let C=e(n,y);return yield*l.requestContext===void 0?C:jh(C,q3,l.requestContext)}).pipe(ih(e=>a.isNotification?P:d(n,a.id,Zn(e,`ProtocolError`)?l6.fromFeature(e):new x3({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`?N9(a.requestId):void 0,r=o?t.resolveRequest(n,ms(Sb().context,wM).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 P;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 nE(_,new P9({clientId:c,profile:p})).pipe(I(({write:e})=>e(a)),Nh)}}})}),{notificationDelivery:b,notifications:x}=E9.get(i);yield*Fh(N(()=>{b.consumers++}),()=>N(()=>{b.consumers--}));let S=/* @__PURE__ */ new Map;return yield*qb(x).pipe(I(z(function*(e){let{delivered:n,notification:r,targetClientId:i,requestContext:c,requestHeaders:l}=e;m6(r)&&(yield*Die(p,{notification:r,targetClientId:i}));let u=yield*y.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(!y.supportsNotifications)continue;let o=d&&c!==void 0?t.selectProtocol(c.protocolVersion):s.get(e)?.protocol;if(!o)continue;let f=S.get(e),p=e===(i??c?.clientId);h||=p;let g=p?n:fp();S.set(e,g);let _=Vm(function*(){f!==void 0&&(yield*mp(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||!D9(n)||z3.literals.indexOf(r.level)<z3.literals.indexOf(n))return}else if(!t.canDeliver(e,(c?.clientId===e?l:void 0)??s.get(e)?.sessionHeaders??tw,r,a))return;let i=o.serverNotificationRpcs.requests.get(n.tag);if(!i)return;let u=yield*o.payloadCodecs(i).encode(n.payload);yield*y.send(e,{_tag:`Request`,id:``,tag:n.tag,payload:u,headers:[],isNotification:!0})}).pipe(ph,Lh(N(()=>{yp(g,sp),S.get(e)===g&&S.delete(e)})));m.push(_)}h||(yield*vp(n,void 0)),yield*jm(m,{concurrency:`unbounded`,discard:!0}).pipe(rg({startImmediately:!0}))})),ph,Yh,rg),yield*Gpe(t.clientRpcs,{spanPrefix:`McpServer`,disableFatalDefects:!0}).pipe(jh(c4,y),jh(Y3,v),Dh(g))},Nh),jve=(e,t)=>Gp(Vm(function*(){let n=yield*O6;yield*rg(Ave(e,n,t))})).pipe($p(A9.layer)),Mve=e=>{let t=fge(e.protocols),n=sj({status:405,headers:{allow:`POST`}}),r=t=>I9(t,e.allowedOrigins)?M(n):M(sj({status:403})),i=Yp(LM(`GET`,e.path,r),LM(`PUT`,e.path,r),LM(`PATCH`,e.path,r),LM(`DELETE`,e.path,r),LM(`OPTIONS`,e.path,r));return Xp(jve(e,`http`),i).pipe(Qp(Nve(e)),Qp(t),Qp(Fpe()))},Nve=e=>Hp(c4)(Vm(function*(){let t=yield*O6,{httpEffect:n,protocol:r}=yield*Kpe().pipe(jh($2,Pve));return yield*(yield*PM).add(`POST`,e.path,r=>{if(!I9(r,e.allowedOrigins))return M(sj({status:403}));if(L9(r.headers[`content-type`])[0]!==`application/json`)return M(sj({status:415}));let i=L9(r.headers.accept);return!i.includes(`application/json`)||!i.includes(`text/event-stream`)?M(sj({status:406})):Vm(function*(){let e=yield*$m(I(r.text,Fw(boe))),i=t.admitHttp(r.headers,e);if(i._tag===`Rejected`)return i.response;let a=L(n,e=>{let t=e.body._tag===`Uint8Array`&&e.body.body.subarray(0,-1).includes(10);return i.isSubscription||e.body._tag===`Stream`||t?Lve(e):e});return yield*i.acknowledge?sh(a,()=>M(sj({status:202}))):a})}),r})),Pve=/*#__PURE__*/ (()=>{let e=/*#__PURE__*/ Ive();return $2.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}}}})})(),Fve=/*#__PURE__*/ Nw(/*#__PURE__*/ hT(`Cause`,{data:/*#__PURE__*/ oT([/*#__PURE__*/ hT(`Fail`,{error:/*#__PURE__*/ Jw(C3)})])})),F9=e=>Array.isArray(e)?e.map(F9):!Yn(e)||!A(e,`error`)?e:Fve(e.error)?{...e,error:e.error.data[0].error}:e;function Ive(e){let t=e4(e);return $2.of({...t,makeUnsafe:()=>{let e=t.makeUnsafe(),n=/* @__PURE__ */ new Set;return{decode:e.decode,encode:t=>{if(Yn(t)){let e=M9.get(t);e!==void 0&&(M9.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=>!(Yn(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(F9(i))}}}})}const Lve=e=>{let t=new TextEncoder,n=new TextDecoder,r=e=>t.encode(n.decode(e).trimEnd().split(`
517
- `).map(e=>`data: ${e}\n\n`).join(``)),i={status:e.status,statusText:e.statusText,headers:sw(e.headers,`content-type`),cookies:e.cookies,contentType:`text/event-stream`};return e.body._tag===`Stream`?gj(e.body.stream.pipe(SE(r)),i):e.body._tag===`Uint8Array`?lj(r(e.body.body),i):_j(e,`content-type`,`text/event-stream`)},I9=(e,t)=>{let n=e.headers.origin;return n===void 0||(t??[]).includes(n)},L9=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()]}),R9=e=>new L3({isError:!0,content:[{type:`text`,text:e}]}),z9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],Rve=/*#__PURE__*/ z(function*(e){let t=yield*A9,n=yield*e.pipe(Ah(t=>{let n=new Map(t.mapUnsafe);for(let t of Object.values(e.tools)){let e=n.get(t.id);e!==void 0&&n.set(t.id,{...e,context:O9(e.context)})}return ts(n)})),r=O9(yield*Th()),i=e=>Oh(rO(e),r),a=e=>{let t=Kf(e);return Ha(t)&&!qf(e)?Hm(t.failure):pg(e).pipe(Zm(i(e)),nh(R9(`Tool execution failed due to an internal server error.`)))},o=[];for(let e of Object.values(n.tools)){let t=hhe(e)===!0,i=lhe(e)?e.jsonSchema:void 0;if(t&&i!==void 0)return yield*Wm(`McpServer cannot strictly validate the raw JSON Schema for tool '${e.name}'; use an Effect Schema instead`);let s=t?{onExcessProperty:`error`}:void 0,c=e.annotations,l=fs(c,mhe),u=Nw(e.failureSchema),d=Bw(e.failureSchema),f=e=>e instanceof Error?M(R9(e.message)):L(d(e),e=>new L3({isError:!0,content:z9(e)})),p=e=>{let t=Kf(e);if(Ua(t)){let e=t.success.error,n=hs(Xne(t.success),$4);if(n===`parameters`&&zve(e))return F(new x3({message:e.reason.message}));if(n===`handler`&&u(e))return sh(f(e),a)}return a(e)},m=yield*Pw(F3)(K4(e.successSchema)).pipe(lh),h=yield*Pw(P3)(i??Bve(e.parametersSchema,t)).pipe(lh),g=new I3({name:e.name,description:dhe(e),inputSchema:h,outputSchema:m,annotations:{...ys(e.annotations,phe).pipe(La(e=>({title:e})),Fa),readOnlyHint:hs(e.annotations,q4),destructiveHint:hs(e.annotations,J4),idempotentHint:hs(e.annotations,Y4),openWorldHint:hs(e.annotations,X4)},_meta:l});o.push({tool:g,annotations:c,handle(t){return n.handle(e.name,t??{},void 0,s).pipe(xE,UE,I(Ym),I(e=>e.isFailure&&e.failureOrigin!==`handler`?Hm($f(Bf(e.result),cs($4,e.failureOrigin??`result`))):M(new L3({isError:e.isFailure,structuredContent:e.isFailure?void 0:e.encodedResult,content:z9(e.encodedResult)}))),sh(p),Oh(r))}})}for(let e of o)yield*t.addTool(e)}),zve=e=>she(e)&&e.reason._tag===`ToolParameterValidationError`,Bve=(e,t)=>{let n=bhe(zT(e,{onExcessProperty:t?`error`:`ignore`}));return Object.keys(n.definitions).length===0?n.schema:{...n.schema,$defs:n.definitions}},Vve=()=>{let e=nj({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},Hve=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,Uve=e=>e.mcp!==!1,Wve=e=>e.flatMap(e=>{let t=e.group.actions.filter(Uve);return t.length===0?[]:[{app:e,actions:t}]}),Gve=e=>e.flatMap(({app:e,actions:t})=>t.map(t=>({app:e,action:t}))),Kve=e=>{let t=/* @__PURE__ */ new Set;for(let{action:n}of e){let e=n.mcp.name;if(t.has(e))throw Error(`Duplicate MCP tool: ${e}`);t.add(e)}},B9=(e,t)=>e.annotate(q4,t.readOnly).annotate(J4,t.destructive).annotate(Y4,t.idempotent).annotate(X4,t.openWorld),qve=(e,t)=>B9(G4(e.mcp.name,{description:e.description,parameters:e.input,success:e.success,failure:G(t),failureMode:`return`}),e.mcp),Jve=(e,t)=>B9(G4(e.mcp.name,{description:e.description,parameters:BT(e.input),success:BT(U({value:e.success})),failure:BT(G(t)),failureMode:`return`}),e.mcp),Yve=(e,t)=>{let n=K4(t.parametersSchema);if(n.$ref===void 0&&n.type!==`object`)throw Error(`${e.name}: MCP input must have an object root; omit input for no arguments`)},Xve=(e,t,n)=>{let r=LU(t.action,n.errors),i=e===`native`?qve(t.action,r):Jve(t.action,r);return e===`native`?i:(Yve(t.action,i),i.annotate(Z4,!0))},Zve=(e,t,n,r,i)=>{let a=e=>WU(t.group,n,r,i)(e);return e===`native`?a:e=>L(a(e),e=>({value:e}))},Qve=(e,t,n)=>{let r=Wve(e),i=Gve(r);Kve(i);let a=whe(...i.map(e=>Xve(t,e,n)));return{toolkit:a,layer:a.toLayer(L(Mm(r,({app:e,actions:r})=>L(e.build,i=>{let a=i;return r.map(r=>[r.mcp.name,Zve(t,e,r,a,n.before)])})),e=>Object.fromEntries(e.flat())))}},$ve=(e,t)=>{let n=Qve(e,`mcp`,t);return Gp(Rve(n.toolkit)).pipe(Qp(n.layer))},eye=(e,t,n)=>$ve(e,t).pipe(Qp(n),tm),tye=e=>{let t=e.before;return{errors:e.errors,before:t}};function nye(e,...t){return eye(t,tye(e),Mve({name:e.name,version:e.version,instructions:e.instructions,path:e.path,protocols:e.protocols,allowedOrigins:e.allowedOrigins}))}var rye=`0.7.0`,iye=class extends RT()(`Unauthorized`,{message:V},{httpApiStatus:401}){constructor(e){super({message:e.message}),Object.defineProperty(this,"cause",{value:e.cause})}},aye=class extends RT()(`RateLimited`,{message:V},{httpApiStatus:429}){},V9=class extends RT()(`ProviderUnavailable`,{operation:V},{httpApiStatus:503}){constructor(e){super({operation:e.operation}),Object.defineProperty(this,"cause",{value:e.cause})}},oye=class extends RT()(`InsufficientScope`,{scope:V},{httpApiStatus:403}){},sye=class extends RT()(`ConfigurationError`,{message:V}){};const H9=(e,t)=>Eh(n=>hA(e).execute(t).pipe(jh(TA,{...fs(n,TA),redirect:`error`}),R(e=>new V9({operation:`http.request`,cause:e})))),cye=U({keys:W(U({kty:V,crv:Kw(V),x:Kw(V),kid:Kw(V),alg:Kw(V),use:Kw(V),key_ops:Kw(W(V))}))}),lye=U({sub:CT,client_id:CT,scope:V,exp:yT}),uye=U({keyId:CT,ownerId:CT,resource:V,scopes:W(CT),expiresAt:uT(V)}),U9=()=>new iye({message:`Authentication required`}),dye=ug(`Verifier.make`)(function*(e){let t=yield*lA,n=yield*Gm({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,apiKey:new URL(`/api/issuer/verifyApiKey`,e.issuer).href}),catch:()=>new sye({message:`Invalid issuer URL`})}),r=yield*ox(1),i=0,a,o=Hh(Vm(function*(){let e=yield*H9(t,Pk(n.jwks));if(e.status!==200)return yield*new V9({operation:`jwks.fetch`,cause:{status:e.status}});let r=yield*Yk(cye)(e).pipe(R(e=>new V9({operation:`jwks.decode`,cause:e})));return i=(yield*rm)+3e4,a=void 0,KF({keys:r.keys.map(({key_ops:e,...t})=>e?{...t,key_ops:[...e]}:t)})}).pipe(Nh),e=>cp(e)?`10 minutes`:0),s=yield*o,c=(e,t)=>Fm({try:()=>e(t),catch:U9}),l=ug(`Verifier.signingKey`)(function*(e){let t=yield*s;return yield*c(t,e).pipe(ah(`Unauthorized`,()=>r.withPermit(Vm(function*(){let n=yield*s;if(n!==t)return yield*c(n,e);let r=yield*rm;if(r<i)return yield*a??U9();i=r+3e4,a=new V9({operation:`jwks.refresh`});let l=yield*o,u=yield*l.pipe(uh(e=>N(()=>{a=e})));return s=l,yield*c(u,e)}))))}),u=ug(`Verifier.jwt`)(function*(t){let n=yield*Gm({try:()=>nI(t),catch:U9});if(n.alg!==`EdDSA`||n.kid===void 0)return yield*U9();let r=yield*l(n),i=yield*rm,{payload:a}=yield*Fm({try:()=>RF(t,r,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:`at+jwt`,requiredClaims:[`sub`,`client_id`,`scope`,`iat`,`exp`],currentDate:new Date(i)}),catch:U9});if(a.cnf!==void 0)return yield*U9();let o=yield*Pw(lye)(a).pipe(R(U9));return{subject:o.sub,scopes:o.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:o.client_id},expiresAt:o.exp*1e3}}),d=ug(`Verifier.apiKey`)(function*(r){let i=Fk(n.apiKey).pipe(Rk(`authorization`,`Bearer ${r}`),Kk({resource:e.resource})),a=yield*H9(t,i);if(a.status===401||a.status===403)return yield*U9();if(a.status===429)return yield*new aye({message:`Authentication rate exceeded`});if(a.status!==200)return yield*new V9({operation:`api-key.verify`,cause:{status:a.status}});let o=yield*Yk(uye)(a).pipe(R(e=>new V9({operation:`api-key.response`,cause:e}))),s=o.expiresAt===null?null:Date.parse(o.expiresAt);return o.resource!==e.resource||s!==null&&!Number.isFinite(s)?yield*new V9({operation:`api-key.response`}):s!==null&&s<=(yield*rm)?yield*U9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:void 0}},Nh),f=ug(`Verifier.verifyToken`)(function*(t){let n=yield*t.startsWith(`ca_`)?e.apiKeys===!1?F(U9()):d(t):u(t),r=e.requiredScopes?.find(e=>!n.scopes.includes(e));return r===void 0?n:yield*new oye({scope:r})},gh({duration:`5 seconds`,orElse:()=>F(new V9({operation:`verify.timeout`}))}));return{verifyToken:f,verify:ug(`Verifier.verify`)(function*(e){let t=/^Bearer ([^\s,]+)$/iu.exec(e??``)?.[1];return t?yield*f(t):yield*U9()})}}),fye=ug(`AdministrationResource.make`)(function*(e){let t=`${e.settings.baseURL}/api/auth`,n=Rq(e.settings.baseURL),r=Zq({resource:n,authorizationServers:[t],scopesSupported:[Lq,`offline_access`]}),i=yield*dye({issuer:t,resource:n,requiredScopes:[Lq],apiKeys:!1}).pipe(Dh(EA.pipe(Qp(zp(wA,(t,n)=>{let r=new Request(t,n);return r.headers.set(`x-clankerauth-peer`,`127.0.0.1`),e.run(()=>e.auth.handler(r))}))))),a=(e,t)=>TO(e).pipe(DO(`InsufficientScope`,({scope:e})=>({error:new VK({error:`Insufficient scope`}),headers:{"www-authenticate":r.challenge({error:`insufficient_scope`,scope:e})}})),DO(`RateLimited`,()=>({error:new WK({error:`Authentication rate exceeded`}),headers:{"retry-after":`60`}})),DO(`ProviderUnavailable`,()=>({error:new KK({error:`Request could not be completed`}),headers:{}})),DO(`Unauthorized`,()=>({error:new BK({error:`Authentication required`}),headers:{"www-authenticate":o(t)}})),PO),o=e=>r.challenge(e?{error:`invalid_token`,scope:Lq}:{scope:Lq});return{discovery:r,verifier:i,refuse:a,challenge:o}}),W9=Rw(lq),G9=e=>({keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:W9(e.permissions??{}),expiresAt:e.expiresAt?.toISOString()??null,createdAt:e.createdAt.toISOString()});function K9(e){let t=ug(`MachineKeys.validate`)(function*(t,n){if(t!==void 0&&(!t.trim()||t.length>100))return yield*F(new zK({error:`Key names require 1–100 characters`}));if(n!==void 0){if(!Object.keys(n).length)return yield*F(new zK({error:`Select at least one Resource and scope`}));for(let[t,r]of Object.entries(n)){if(t===Rq(e.settings.baseURL))return yield*F(new zK({error:`Administration requires OAuth access tokens, not API keys`}));let n=yield*e.resources.get(t).pipe(R(xq));if(!n||!r.length||new Set(r).size!==r.length||r.some(e=>!n.scopes.includes(e)))return yield*F(new zK({error:`Select explicitly granted, currently available Resource scopes`}))}}});return{list:ug(`MachineKeys.list`)(function*(){let{providerHeaders:t}=yield*$q,n=yield*t;return{keys:(yield*Sq(()=>e.auth.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}))).apiKeys.map(G9)}}),create:ug(`MachineKeys.create`)(function*(n){let r=yield*$q;yield*t(n.name,n.permissions);let i=n.expiresAt===null?null:(Date.parse(n.expiresAt)-(yield*rm))/1e3;if(i!==null&&(!Number.isFinite(i)||i<1))return yield*F(new zK({error:`Expiry must be in the future`}));let a=yield*Sq(()=>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{...G9(a),key:a.key}}),update:ug(`MachineKeys.update`)(function*(n){let r=yield*$q;return yield*t(n.name,n.permissions),G9(yield*Sq(()=>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:ug(`MachineKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*Sq(()=>e.auth.api.deleteApiKey({headers:r,body:{keyId:t}})),{deleted:!0}}),verify:ug(`MachineKeys.verify`)(function*(t,n){let r=/^Bearer (ca_[^\s]+)$/i.exec(t.get(`authorization`)??``)?.[1];if(!r)return yield*F(new BK({error:`API key required`}));let i=yield*Sq(()=>e.auth.api.verifyApiKey({body:{key:r}}));if(!i.valid||!i.key)return i.error?.code===`RATE_LIMITED`?yield*F(new WK({error:`API key verification rate exceeded`})):yield*F(new BK({error:`Invalid API key`}));let a=yield*e.resources.get(n).pipe(R(xq)),o=(W9(i.key.permissions??{})[n]??[]).filter(e=>a?.scopes.includes(e));return!a||!o.length?yield*F(new VK({error:`No access to this Resource`})):{keyId:i.key.id,ownerId:i.key.referenceId,resource:n,scopes:o,expiresAt:i.key.expiresAt?.toISOString()??null}})}}function pye(e,t){return qp(Vm(function*(){let n=m2(e),r=K9(e),i=_q.implement({listClients:n.list,createClient:n.create,updateClient:n.update,deleteClient:n.delete,revokeClient:n.revoke,blockClient:n.block,rotateClientSecret:n.rotate,setClientAccess:n.access,createResource:n.createResource,updateResource:n.updateResource,deleteResource:n.deleteResource,listApiKeys:r.list,createApiKey:r.create,updateApiKey:r.update,deleteApiKey:r.delete}),a=hq.implement({setupStatus:()=>e.owner().pipe(L(e=>({required:!e})),R(()=>new GK({error:`Request could not be completed`}))),setupOwner:n.setup,verifyApiKey:({resource:e})=>Vm(function*(){let t=yield*wM;return yield*r.verify(new Headers(t.headers),e)})}),o=yield*fye(e),s=Yp(vq.layer({},i).pipe(Qp(tJ(e).layer)),LM(`GET`,`/openapi.json`,pj(kG(vq.api))),vq.layer({},a).pipe(Qp(aJ.layer))),c=nye({name:`clankerauth-admin`,version:rye,path:`/mcp`,protocols:[wve,Tve,Eve,Dve],allowedOrigins:t,instructions:`Owner administration. Mutations change authorization policy; create/rotate actions return secrets once.`},i).pipe(Qp(rJ(e,o).layer));return Yp(s,c,o.discovery.layer).pipe(Qp(UM(e=>Kh(e)).layer))}))}const mye=e=>Sn({requestTimeout:15e3,headersTimeout:1e4},e),hye=ov(65536),gye=/^\/forward-auth(?:\?|$)/,_ye=(e,t,n)=>{let r=(e[`x-forwarded-for`]?.split(`,`).map(e=>e.trim()).filter(Boolean))?.at(-1);return n&&r?r:Ma(t,()=>`unknown`)},vye=({baseURL:e,trustProxy:t})=>n=>Vm(function*(){let r=yield*wM,i=r.source,a=i instanceof xn?i.url:r.url;if(!a?.startsWith(`/`)||a.startsWith(`//`))return sj({status:400});let o=Nn(r.headers,gye.test(a)?sw(`forwarded`):cw([`forwarded`,`x-forwarded-host`,`x-forwarded-proto`]),iw(`host`,new URL(e).host),iw(`x-clankerauth-peer`,_ye(r.headers,r.remoteAddress,t)),sw(`x-forwarded-for`)),s=yield*n.pipe(jh(wM,r.modify({headers:o})),jh(Xk,hye));return i instanceof xn?TO(s.body).pipe(DO(`Stream`,e=>Sj(s,pk(e.stream.pipe(AE(()=>N(()=>i.socket.destroy()))),e.contentType,e.contentLength))),NO(()=>s)):s}).pipe(Wh),yye=/* @__PURE__ */ new Set([`/sign-in/email`,`/sign-out`,`/get-session`,`/change-password`,`/jwks`,`/oauth2/register`,`/oauth2/authorize`,`/oauth2/token`,`/oauth2/consent`,`/oauth2/continue`,`/oauth2/public-client`,`/oauth2/introspect`,`/oauth2/revoke`,`/.well-known/oauth-authorization-server`]),bye=/* @__PURE__ */ new Set([`/.well-known/oauth-protected-resource/mcp`,`/jwks`,`/oauth2/register`,`/oauth2/token`,`/oauth2/revoke`,`/oauth2/introspect`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),xye=/* @__PURE__ */ new Set([`/jwks`,`/.well-known/oauth-protected-resource/mcp`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),Sye=/* @__PURE__ */ new Set([`/`,`/login`,`/consent`,`/setup`]),Cye=/^\/assets\/[a-zA-Z0-9_.-]+\.(js|css)$/,q9=(e,t=200)=>pj(e,{status:t}),J9=q9({error:`Not found`},404),Y9=[`GET`,`POST`,`DELETE`],X9=[`Authorization`,`Content-Type`,`Accept`,`Mcp-Protocol-Version`,`Mcp-Session-Id`,`Mcp-Method`,`Mcp-Name`,`Last-Event-ID`],wye=new Set(X9.map(e=>e.toLowerCase())),Z9=e=>{let t=e instanceof s?e.statusCode:Ow(e)||e instanceof SyntaxError?400:500;return M(q9({error:t===401?`Authentication required`:`Request could not be completed`},t))};function Tye(e,t=dn(new URL(`dist/`,import.meta.resolve(`@clankerauth/web/package.json`)))){let{auth:n,settings:r}=e,i=[.../* @__PURE__ */ new Set([r.baseURL,...r.mcpAllowedOrigins??[]])],a=Vm(function*(){let t=yield*wM,i=new URL(t.url,r.baseURL),a=i.pathname.replace(/^\/api\/auth/,``);if(!yye.has(a)&&a!==`/.well-known/oauth-authorization-server/api/auth`)return J9;if(a===`/oauth2/authorize`){let n=t.method===`GET`?i.searchParams.getAll(`resource`):new URLSearchParams(yield*t.text).getAll(`resource`);if(n.length!==1||!(yield*e.resources.get(n[0]??``).pipe(Kh)))return q9({error:`invalid_target`,error_description:`Exactly one configured resource is required`},400)}let o=t.method===`GET`||t.method===`HEAD`?void 0:yield*t.arrayBuffer,s=yield*Fm({try:r=>e.run(async()=>{let e=await n.handler(new Request(i,{method:t.method,headers:t.headers,body:o,signal:r}));return r.aborted&&await e.body?.cancel(),e}),catch:e=>e instanceof Error?e:Error(String(e))});return Ej(s)}).pipe(ih(Z9)),o=IM(e=>Vm(function*(){let n=yield*Pj;yield*e.add(`*`,`/*`,Vm(function*(){let e=yield*wM;if(e.method!==`GET`&&e.method!==`HEAD`)return J9;let i=new URL(e.url,r.baseURL).pathname,a=Sye.has(i)?`index.html`:Cye.test(i)?i.slice(1):void 0;return a?yield*n.fileResponse(ln(t,a),{contentType:a.endsWith(`.js`)?`text/javascript`:a.endsWith(`.css`)?`text/css`:`text/html; charset=utf-8`}).pipe(ih(()=>M(J9))):J9}))})),s=UM(t=>vye({baseURL:r.baseURL,trustProxy:r.trustProxy})(Vm(function*(){let n=yield*wM,a=new URL(n.url,r.baseURL).pathname,o=a.replace(/^\/api\/auth/,``),s=a===`/mcp`,c=n.headers.origin,l=c!==void 0&&i.includes(c),u=bye.has(o),d;if(s&&c!==void 0&&!l)d=q9({error:`Invalid origin`},403);else if(s&&n.method===`OPTIONS`){let e=n.headers[`access-control-request-method`],t=(n.headers[`access-control-request-headers`]??``).split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);d=l&&e!==void 0&&Y9.includes(e)&&t.every(e=>wye.has(e))?sj({status:204}):q9({error:`MCP preflight rejected`},403)}else if(u&&n.method===`OPTIONS`)d=sj({status:204});else{let n=yield*Fh(Gm({try:e.retain,catch:e=>e}),e=>N(e)).pipe($m);d=Ha(n)?q9({error:`Request could not be completed`},503):yield*t}u&&(d=d.pipe(yj({"access-control-allow-origin":`*`,"access-control-allow-methods":`GET, POST, OPTIONS`,"access-control-allow-headers":`Authorization, Content-Type, DPoP`,"access-control-expose-headers":`WWW-Authenticate, DPoP-Nonce`}),vj(`access-control-allow-credentials`))),s&&(d=d.pipe(_j(`vary`,d.headers.vary?`${d.headers.vary}, Origin`:`Origin`),vj(`access-control-allow-credentials`)),l&&c!==void 0&&(d=d.pipe(yj({"access-control-allow-origin":c,"access-control-expose-headers":`WWW-Authenticate, Mcp-Session-Id, Mcp-Protocol-Version`})),n.method===`OPTIONS`&&d.status>=200&&d.status<300&&(d=d.pipe(yj({"access-control-allow-methods":Y9.join(`, `),"access-control-allow-headers":X9.join(`, `)})))));let f=n.method!==`GET`||d.status!==200?`no-store`:a.startsWith(`/assets/`)?`public, max-age=31536000, immutable`:xye.has(o)?`public, max-age=300`:`no-store`;return d=d.pipe(yj({"cache-control":f,"referrer-policy":`no-referrer`,"x-content-type-options":`nosniff`,"x-frame-options":`DENY`,"content-security-policy":`default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'self'`})),r.baseURL.startsWith(`https:`)&&(d=d.pipe(_j(`strict-transport-security`,`max-age=31536000`))),d})),{global:!0});return Yp(pye(e,i),r.cookieDomain===void 0?Vp:Yfe(e,r.cookieDomain),LM(`GET`,`/healthz`,e.sql`SELECT 1`.pipe(nh(q9({status:`ok`})),Kh,ih(Z9))),LM(`*`,`/api/auth/*`,a),LM(`*`,`/.well-known/*`,a),o).pipe(Qp(s),Qp(Ume))}const Eye=ug(`Http.nodeHandler`)(function*(e,t){let n=yield*Use(Tye(e,t));return yield*Vme(n,{scope:yield*Mh})}),Q9=`credentials.json`,Dye=async(e,t)=>{let n={email:`owner@example.internal`,password:tn(24).toString(`base64url`),secret:tn(32).toString(`hex`)};if(!t)return n;let r=cn(e,Q9),i=await _ee(r,`utf8`).catch(()=>void 0);return i===void 0?(await rn(r,`${JSON.stringify(n,null,2)}\n`,{mode:384}),n):JSON.parse(i)},Oye=(e,t)=>rn(cn(e,Q9),`${JSON.stringify(t,null,2)}\n`,{mode:384});async function kye({resources:e,client:t,cookieDomain:n,cimdTransport:r,onRequest:i,dataDir:a,port:o=0}){let s=dn(new URL(`./web/`,import.meta.url));await mee(cn(s,`index.html`)).catch(()=>{throw Error(`The @gjermundgaraba/clankerauth-dev installation is missing its bundled dashboard assets`)});let c=a!==void 0;c&&await hee(a,{recursive:!0,mode:448});let l=c?ln(a):await gee(cn(bee(),`clankerauth-disposable-`)),u,d,f,p=(e,t)=>{t.writeHead(503).end()},m=mye((e,t)=>{try{i?.({method:e.method??`GET`,url:new URL(e.url??`/`,`http://127.0.0.1:${e.socket.localPort}`)}),p(e,t)}catch{t.headersSent?t.destroy():t.writeHead(500).end(`Request failed`)}}),h=()=>f??=(async()=>{try{let e=new Promise((e,t)=>{m.close(n=>n&&(!(`code`in n)||n.code!==`ERR_SERVER_NOT_RUNNING`)?t(n):e()),m.closeAllConnections()});await Promise.all([e,d?og(Dp(d,sp)):Promise.resolve()])}finally{try{await u?.close()}finally{c||await vee(l,{recursive:!0,force:!0})}}})();try{await new Promise((e,t)=>{m.once(`error`,t),m.listen(o,`127.0.0.1`,()=>{m.off(`error`,t),e()})});let i=m.address();if(!(i instanceof Object))throw Error(`Disposable issuer failed to bind a TCP port`);let{port:a}=i,f=n===void 0?`http://127.0.0.1:${a}`:`http://auth.${n}:${a}`,g=await Dye(l,c);u=await og(rpe(u2({baseURL:f,secret:xC(g.secret),database:cn(l,`issuer.sqlite`),host:`127.0.0.1`,port:a,trustProxy:!1,allowInsecureHttp:n!==void 0,cookieDomain:n}),{cimdTransport:r})),await og(ipe(u)),d=Sp(),p=await og(Eye(u,s).pipe(jh(xp,d)));let _={email:g.email,password:g.password},v=u,y=m2(v),b=K9(v),x=e=>og(Nh(Vm(function*(){let t=yield*v.owner();if(t===void 0)return yield*Wm(/* @__PURE__ */ Error(`Owner setup failed`));let n=yield*Qq(v,t);return yield*e(t).pipe(jh($q,{userId:t,email:_.email,providerHeaders:M(n)}))})).pipe(R(e=>Error(`Disposable issuer provisioning failed`,{cause:e}))));await og(v.owner())||await og(Nh(p2(v,_)).pipe(R(e=>Error(`Disposable issuer provisioning failed`,{cause:e})))),await x(()=>Mm(e,e=>I(v.resources.get(e.identifier),t=>t?P:rh(y.createResource(e)))));let S=await x(()=>Vm(function*(){if(g.clientId!==void 0&&g.clientSecret!==void 0){let{clients:e}=yield*y.list();if(e.some(e=>e.client_id===g.clientId))return{client_id:g.clientId,client_secret:g.clientSecret}}return yield*y.create({client_name:t.name,redirect_uris:[t.redirect],resources:t.resources,token_endpoint_auth_method:`client_secret_basic`,application_type:`native`})}));if(S.client_secret===void 0)throw Error(`Disposable issuer did not return client credentials`);c&&await Oye(l,{...g,clientId:S.client_id,clientSecret:S.client_secret});let C=n===void 0?void 0:f;return{issuer:`${f}/api/auth`,clientId:S.client_id,clientSecret:S.client_secret,owner:_,url:f,port:a,directory:l,apiKey:e=>x(()=>L(b.create({name:e.name??`development`,permissions:e.permissions,expiresAt:null}),e=>e.key)),ownerSession:e=>$9(f,C,_,e),ownerToken:async e=>{let{cookie:t}=await $9(f,C,_,e.appOrigin),n=new URL(e.appOrigin),r=new URL(`/forward-auth`,f);r.searchParams.set(`resource`,e.resource);let i=await fetch(r,{redirect:`manual`,headers:{cookie:t,"x-forwarded-proto":n.protocol.slice(0,-1),"x-forwarded-host":n.host,"x-forwarded-uri":`/`}}),a=i.headers.get(`authorization`);if(await i.body?.cancel().catch(()=>{}),i.status!==204||a===null)throw Error(`Forward auth issued no token (HTTP ${i.status})`);return a.replace(/^Bearer /iu,``)},close:h}}catch(e){throw await h(),e}}const $9=async(e,t,n,r)=>{if(t===void 0)throw Error(`A forward-auth session needs a cookieDomain; the issuer serves none`);let i=/* @__PURE__ */ new Map,a=async e=>{for(let t of e.headers.getSetCookie()){let e=t.indexOf(`;`),n=e===-1?t:t.slice(0,e),r=n.indexOf(`=`);r>0&&i.set(n.slice(0,r),n.slice(r+1))}return await e.body?.cancel().catch(()=>{}),e},o=()=>[...i].map(([e,t])=>`${e}=${t}`).join(`; `),s=await fetch(`${e}/api/auth/sign-in/email`,{method:`POST`,redirect:`manual`,headers:{"content-type":`application/json`,origin:e},body:JSON.stringify(n)});if(!s.ok)throw await s.body?.cancel().catch(()=>{}),Error(`Owner sign-in failed with HTTP ${s.status}`);await a(s);let c=new URL(`/`,r).href;return await a(await fetch(`${e}/forward-auth/continue?rd=${encodeURIComponent(c)}`,{redirect:`manual`,headers:{cookie:o()}})),{cookie:o(),cookies:[...i].map(([e,t])=>({name:e,value:t}))}};export{kye as startDisposableIssuer,Tq as t};
517
+ `).map(e=>`data: ${e}\n\n`).join(``)),i={status:e.status,statusText:e.statusText,headers:sw(e.headers,`content-type`),cookies:e.cookies,contentType:`text/event-stream`};return e.body._tag===`Stream`?gj(e.body.stream.pipe(SE(r)),i):e.body._tag===`Uint8Array`?lj(r(e.body.body),i):_j(e,`content-type`,`text/event-stream`)},I9=(e,t)=>{let n=e.headers.origin;return n===void 0||(t??[]).includes(n)},L9=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()]}),R9=e=>new L3({isError:!0,content:[{type:`text`,text:e}]}),z9=e=>e===void 0?[]:[{type:`text`,text:JSON.stringify(e)}],Rve=/*#__PURE__*/ z(function*(e){let t=yield*A9,n=yield*e.pipe(Ah(t=>{let n=new Map(t.mapUnsafe);for(let t of Object.values(e.tools)){let e=n.get(t.id);e!==void 0&&n.set(t.id,{...e,context:O9(e.context)})}return ts(n)})),r=O9(yield*Th()),i=e=>Oh(rO(e),r),a=e=>{let t=Kf(e);return Ha(t)&&!qf(e)?Hm(t.failure):pg(e).pipe(Zm(i(e)),nh(R9(`Tool execution failed due to an internal server error.`)))},o=[];for(let e of Object.values(n.tools)){let t=hhe(e)===!0,i=lhe(e)?e.jsonSchema:void 0;if(t&&i!==void 0)return yield*Wm(`McpServer cannot strictly validate the raw JSON Schema for tool '${e.name}'; use an Effect Schema instead`);let s=t?{onExcessProperty:`error`}:void 0,c=e.annotations,l=fs(c,mhe),u=Nw(e.failureSchema),d=Bw(e.failureSchema),f=e=>e instanceof Error?M(R9(e.message)):L(d(e),e=>new L3({isError:!0,content:z9(e)})),p=e=>{let t=Kf(e);if(Ua(t)){let e=t.success.error,n=hs(Xne(t.success),$4);if(n===`parameters`&&zve(e))return F(new x3({message:e.reason.message}));if(n===`handler`&&u(e))return sh(f(e),a)}return a(e)},m=yield*Pw(F3)(K4(e.successSchema)).pipe(lh),h=yield*Pw(P3)(i??Bve(e.parametersSchema,t)).pipe(lh),g=new I3({name:e.name,description:dhe(e),inputSchema:h,outputSchema:m,annotations:{...ys(e.annotations,phe).pipe(La(e=>({title:e})),Fa),readOnlyHint:hs(e.annotations,q4),destructiveHint:hs(e.annotations,J4),idempotentHint:hs(e.annotations,Y4),openWorldHint:hs(e.annotations,X4)},_meta:l});o.push({tool:g,annotations:c,handle(t){return n.handle(e.name,t??{},void 0,s).pipe(xE,UE,I(Ym),I(e=>e.isFailure&&e.failureOrigin!==`handler`?Hm($f(Bf(e.result),cs($4,e.failureOrigin??`result`))):M(new L3({isError:e.isFailure,structuredContent:e.isFailure?void 0:e.encodedResult,content:z9(e.encodedResult)}))),sh(p),Oh(r))}})}for(let e of o)yield*t.addTool(e)}),zve=e=>she(e)&&e.reason._tag===`ToolParameterValidationError`,Bve=(e,t)=>{let n=bhe(zT(e,{onExcessProperty:t?`error`:`ignore`}));return Object.keys(n.definitions).length===0?n.schema:{...n.schema,$defs:n.definitions}},Vve=()=>{let e=nj({ignoreTrailingSlash:!0,ignoreDuplicateSlashes:!0,caseSensitive:!0});return{add:(t,n)=>{e.on(`GET`,`/${t}`,n)},find:t=>e.find(`GET`,`/${t}`)}},Hve=e=>e===`2024-11-05`||e===`2025-03-26`||e===`2025-06-18`||e===`2025-11-25`||e===`2026-07-28`,Uve=e=>e.mcp!==!1,Wve=e=>e.flatMap(e=>{let t=e.group.actions.filter(Uve);return t.length===0?[]:[{app:e,actions:t}]}),Gve=e=>e.flatMap(({app:e,actions:t})=>t.map(t=>({app:e,action:t}))),Kve=e=>{let t=/* @__PURE__ */ new Set;for(let{action:n}of e){let e=n.mcp.name;if(t.has(e))throw Error(`Duplicate MCP tool: ${e}`);t.add(e)}},B9=(e,t)=>e.annotate(q4,t.readOnly).annotate(J4,t.destructive).annotate(Y4,t.idempotent).annotate(X4,t.openWorld),qve=(e,t)=>B9(G4(e.mcp.name,{description:e.description,parameters:e.input,success:e.success,failure:G(t),failureMode:`return`}),e.mcp),Jve=(e,t)=>B9(G4(e.mcp.name,{description:e.description,parameters:BT(e.input),success:BT(U({value:e.success})),failure:BT(G(t)),failureMode:`return`}),e.mcp),Yve=(e,t)=>{let n=K4(t.parametersSchema);if(n.$ref===void 0&&n.type!==`object`)throw Error(`${e.name}: MCP input must have an object root; omit input for no arguments`)},Xve=(e,t,n)=>{let r=LU(t.action,n.errors),i=e===`native`?qve(t.action,r):Jve(t.action,r);return e===`native`?i:(Yve(t.action,i),i.annotate(Z4,!0))},Zve=(e,t,n,r,i)=>{let a=e=>WU(t.group,n,r,i)(e);return e===`native`?a:e=>L(a(e),e=>({value:e}))},Qve=(e,t,n)=>{let r=Wve(e),i=Gve(r);Kve(i);let a=whe(...i.map(e=>Xve(t,e,n)));return{toolkit:a,layer:a.toLayer(L(Mm(r,({app:e,actions:r})=>L(e.build,i=>{let a=i;return r.map(r=>[r.mcp.name,Zve(t,e,r,a,n.before)])})),e=>Object.fromEntries(e.flat())))}},$ve=(e,t)=>{let n=Qve(e,`mcp`,t);return Gp(Rve(n.toolkit)).pipe(Qp(n.layer))},eye=(e,t,n)=>$ve(e,t).pipe(Qp(n),tm),tye=e=>{let t=e.before;return{errors:e.errors,before:t}};function nye(e,...t){return eye(t,tye(e),Mve({name:e.name,version:e.version,instructions:e.instructions,path:e.path,protocols:e.protocols,allowedOrigins:e.allowedOrigins}))}var rye=`0.7.1`,iye=class extends RT()(`Unauthorized`,{message:V},{httpApiStatus:401}){constructor(e){super({message:e.message}),Object.defineProperty(this,"cause",{value:e.cause})}},aye=class extends RT()(`RateLimited`,{message:V},{httpApiStatus:429}){},V9=class extends RT()(`ProviderUnavailable`,{operation:V},{httpApiStatus:503}){constructor(e){super({operation:e.operation}),Object.defineProperty(this,"cause",{value:e.cause})}},oye=class extends RT()(`InsufficientScope`,{scope:V},{httpApiStatus:403}){},sye=class extends RT()(`ConfigurationError`,{message:V}){};const H9=(e,t)=>Eh(n=>hA(e).execute(t).pipe(jh(TA,{...fs(n,TA),redirect:`error`}),R(e=>new V9({operation:`http.request`,cause:e})))),cye=U({keys:W(U({kty:V,crv:Kw(V),x:Kw(V),kid:Kw(V),alg:Kw(V),use:Kw(V),key_ops:Kw(W(V))}))}),lye=U({sub:CT,client_id:CT,scope:V,exp:yT}),uye=U({keyId:CT,ownerId:CT,resource:V,scopes:W(CT),expiresAt:uT(V)}),U9=()=>new iye({message:`Authentication required`}),dye=ug(`Verifier.make`)(function*(e){let t=yield*lA,n=yield*Gm({try:()=>({jwks:new URL(`${e.issuer}/jwks`).href,apiKey:new URL(`/api/issuer/verifyApiKey`,e.issuer).href}),catch:()=>new sye({message:`Invalid issuer URL`})}),r=yield*ox(1),i=0,a,o=Hh(Vm(function*(){let e=yield*H9(t,Pk(n.jwks));if(e.status!==200)return yield*new V9({operation:`jwks.fetch`,cause:{status:e.status}});let r=yield*Yk(cye)(e).pipe(R(e=>new V9({operation:`jwks.decode`,cause:e})));return i=(yield*rm)+3e4,a=void 0,KF({keys:r.keys.map(({key_ops:e,...t})=>e?{...t,key_ops:[...e]}:t)})}).pipe(Nh),e=>cp(e)?`10 minutes`:0),s=yield*o,c=(e,t)=>Fm({try:()=>e(t),catch:U9}),l=ug(`Verifier.signingKey`)(function*(e){let t=yield*s;return yield*c(t,e).pipe(ah(`Unauthorized`,()=>r.withPermit(Vm(function*(){let n=yield*s;if(n!==t)return yield*c(n,e);let r=yield*rm;if(r<i)return yield*a??U9();i=r+3e4,a=new V9({operation:`jwks.refresh`});let l=yield*o,u=yield*l.pipe(uh(e=>N(()=>{a=e})));return s=l,yield*c(u,e)}))))}),u=ug(`Verifier.jwt`)(function*(t){let n=yield*Gm({try:()=>nI(t),catch:U9});if(n.alg!==`EdDSA`||n.kid===void 0)return yield*U9();let r=yield*l(n),i=yield*rm,{payload:a}=yield*Fm({try:()=>RF(t,r,{issuer:e.issuer,audience:e.resource,algorithms:[`EdDSA`],typ:`at+jwt`,requiredClaims:[`sub`,`client_id`,`scope`,`iat`,`exp`],currentDate:new Date(i)}),catch:U9});if(a.cnf!==void 0)return yield*U9();let o=yield*Pw(lye)(a).pipe(R(U9));return{subject:o.sub,scopes:o.scope.split(` `).filter(Boolean),actor:{kind:`client`,clientId:o.client_id},expiresAt:o.exp*1e3}}),d=ug(`Verifier.apiKey`)(function*(r){let i=Fk(n.apiKey).pipe(Rk(`authorization`,`Bearer ${r}`),Kk({resource:e.resource})),a=yield*H9(t,i);if(a.status===401||a.status===403)return yield*U9();if(a.status===429)return yield*new aye({message:`Authentication rate exceeded`});if(a.status!==200)return yield*new V9({operation:`api-key.verify`,cause:{status:a.status}});let o=yield*Yk(uye)(a).pipe(R(e=>new V9({operation:`api-key.response`,cause:e}))),s=o.expiresAt===null?null:Date.parse(o.expiresAt);return o.resource!==e.resource||s!==null&&!Number.isFinite(s)?yield*new V9({operation:`api-key.response`}):s!==null&&s<=(yield*rm)?yield*U9():{subject:o.ownerId,scopes:o.scopes,actor:{kind:`key`,keyId:o.keyId},expiresAt:void 0}},Nh),f=ug(`Verifier.verifyToken`)(function*(t){let n=yield*t.startsWith(`ca_`)?e.apiKeys===!1?F(U9()):d(t):u(t),r=e.requiredScopes?.find(e=>!n.scopes.includes(e));return r===void 0?n:yield*new oye({scope:r})},gh({duration:`5 seconds`,orElse:()=>F(new V9({operation:`verify.timeout`}))}));return{verifyToken:f,verify:ug(`Verifier.verify`)(function*(e){let t=/^Bearer ([^\s,]+)$/iu.exec(e??``)?.[1];return t?yield*f(t):yield*U9()})}}),fye=ug(`AdministrationResource.make`)(function*(e){let t=`${e.settings.baseURL}/api/auth`,n=Rq(e.settings.baseURL),r=Zq({resource:n,authorizationServers:[t],scopesSupported:[Lq,`offline_access`]}),i=yield*dye({issuer:t,resource:n,requiredScopes:[Lq],apiKeys:!1}).pipe(Dh(EA.pipe(Qp(zp(wA,(t,n)=>{let r=new Request(t,n);return r.headers.set(`x-clankerauth-peer`,`127.0.0.1`),e.run(()=>e.auth.handler(r))}))))),a=(e,t)=>TO(e).pipe(DO(`InsufficientScope`,({scope:e})=>({error:new VK({error:`Insufficient scope`}),headers:{"www-authenticate":r.challenge({error:`insufficient_scope`,scope:e})}})),DO(`RateLimited`,()=>({error:new WK({error:`Authentication rate exceeded`}),headers:{"retry-after":`60`}})),DO(`ProviderUnavailable`,()=>({error:new KK({error:`Request could not be completed`}),headers:{}})),DO(`Unauthorized`,()=>({error:new BK({error:`Authentication required`}),headers:{"www-authenticate":o(t)}})),PO),o=e=>r.challenge(e?{error:`invalid_token`,scope:Lq}:{scope:Lq});return{discovery:r,verifier:i,refuse:a,challenge:o}}),W9=Rw(lq),G9=e=>({keyId:e.id,name:e.name??``,enabled:e.enabled,permissions:W9(e.permissions??{}),expiresAt:e.expiresAt?.toISOString()??null,createdAt:e.createdAt.toISOString()});function K9(e){let t=ug(`MachineKeys.validate`)(function*(t,n){if(t!==void 0&&(!t.trim()||t.length>100))return yield*F(new zK({error:`Key names require 1–100 characters`}));if(n!==void 0){if(!Object.keys(n).length)return yield*F(new zK({error:`Select at least one Resource and scope`}));for(let[t,r]of Object.entries(n)){if(t===Rq(e.settings.baseURL))return yield*F(new zK({error:`Administration requires OAuth access tokens, not API keys`}));let n=yield*e.resources.get(t).pipe(R(xq));if(!n||!r.length||new Set(r).size!==r.length||r.some(e=>!n.scopes.includes(e)))return yield*F(new zK({error:`Select explicitly granted, currently available Resource scopes`}))}}});return{list:ug(`MachineKeys.list`)(function*(){let{providerHeaders:t}=yield*$q,n=yield*t;return{keys:(yield*Sq(()=>e.auth.api.listApiKeys({headers:n,query:{sortBy:`createdAt`,sortDirection:`asc`}}))).apiKeys.map(G9)}}),create:ug(`MachineKeys.create`)(function*(n){let r=yield*$q;yield*t(n.name,n.permissions);let i=n.expiresAt===null?null:(Date.parse(n.expiresAt)-(yield*rm))/1e3;if(i!==null&&(!Number.isFinite(i)||i<1))return yield*F(new zK({error:`Expiry must be in the future`}));let a=yield*Sq(()=>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{...G9(a),key:a.key}}),update:ug(`MachineKeys.update`)(function*(n){let r=yield*$q;return yield*t(n.name,n.permissions),G9(yield*Sq(()=>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:ug(`MachineKeys.delete`)(function*({keyId:t}){let{providerHeaders:n}=yield*$q,r=yield*n;return yield*Sq(()=>e.auth.api.deleteApiKey({headers:r,body:{keyId:t}})),{deleted:!0}}),verify:ug(`MachineKeys.verify`)(function*(t,n){let r=/^Bearer (ca_[^\s]+)$/i.exec(t.get(`authorization`)??``)?.[1];if(!r)return yield*F(new BK({error:`API key required`}));let i=yield*Sq(()=>e.auth.api.verifyApiKey({body:{key:r}}));if(!i.valid||!i.key)return i.error?.code===`RATE_LIMITED`?yield*F(new WK({error:`API key verification rate exceeded`})):yield*F(new BK({error:`Invalid API key`}));let a=yield*e.resources.get(n).pipe(R(xq)),o=(W9(i.key.permissions??{})[n]??[]).filter(e=>a?.scopes.includes(e));return!a||!o.length?yield*F(new VK({error:`No access to this Resource`})):{keyId:i.key.id,ownerId:i.key.referenceId,resource:n,scopes:o,expiresAt:i.key.expiresAt?.toISOString()??null}})}}function pye(e,t){return qp(Vm(function*(){let n=m2(e),r=K9(e),i=_q.implement({listClients:n.list,createClient:n.create,updateClient:n.update,deleteClient:n.delete,revokeClient:n.revoke,blockClient:n.block,rotateClientSecret:n.rotate,setClientAccess:n.access,createResource:n.createResource,updateResource:n.updateResource,deleteResource:n.deleteResource,listApiKeys:r.list,createApiKey:r.create,updateApiKey:r.update,deleteApiKey:r.delete}),a=hq.implement({setupStatus:()=>e.owner().pipe(L(e=>({required:!e})),R(()=>new GK({error:`Request could not be completed`}))),setupOwner:n.setup,verifyApiKey:({resource:e})=>Vm(function*(){let t=yield*wM;return yield*r.verify(new Headers(t.headers),e)})}),o=yield*fye(e),s=Yp(vq.layer({},i).pipe(Qp(tJ(e).layer)),LM(`GET`,`/openapi.json`,pj(kG(vq.api))),vq.layer({},a).pipe(Qp(aJ.layer))),c=nye({name:`clankerauth-admin`,version:rye,path:`/mcp`,protocols:[wve,Tve,Eve,Dve],allowedOrigins:t,instructions:`Owner administration. Mutations change authorization policy; create/rotate actions return secrets once.`},i).pipe(Qp(rJ(e,o).layer));return Yp(s,c,o.discovery.layer).pipe(Qp(UM(e=>Kh(e)).layer))}))}const mye=e=>Sn({requestTimeout:15e3,headersTimeout:1e4},e),hye=ov(65536),gye=/^\/forward-auth(?:\?|$)/,_ye=(e,t,n)=>{let r=(e[`x-forwarded-for`]?.split(`,`).map(e=>e.trim()).filter(Boolean))?.at(-1);return n&&r?r:Ma(t,()=>`unknown`)},vye=({baseURL:e,trustProxy:t})=>n=>Vm(function*(){let r=yield*wM,i=r.source,a=i instanceof xn?i.url:r.url;if(!a?.startsWith(`/`)||a.startsWith(`//`))return sj({status:400});let o=Nn(r.headers,gye.test(a)?sw(`forwarded`):cw([`forwarded`,`x-forwarded-host`,`x-forwarded-proto`]),iw(`host`,new URL(e).host),iw(`x-clankerauth-peer`,_ye(r.headers,r.remoteAddress,t)),sw(`x-forwarded-for`)),s=yield*n.pipe(jh(wM,r.modify({headers:o})),jh(Xk,hye));return i instanceof xn?TO(s.body).pipe(DO(`Stream`,e=>Sj(s,pk(e.stream.pipe(AE(()=>N(()=>i.socket.destroy()))),e.contentType,e.contentLength))),NO(()=>s)):s}).pipe(Wh),yye=/* @__PURE__ */ new Set([`/sign-in/email`,`/sign-out`,`/get-session`,`/change-password`,`/jwks`,`/oauth2/register`,`/oauth2/authorize`,`/oauth2/token`,`/oauth2/consent`,`/oauth2/continue`,`/oauth2/public-client`,`/oauth2/introspect`,`/oauth2/revoke`,`/.well-known/oauth-authorization-server`]),bye=/* @__PURE__ */ new Set([`/.well-known/oauth-protected-resource/mcp`,`/jwks`,`/oauth2/register`,`/oauth2/token`,`/oauth2/revoke`,`/oauth2/introspect`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),xye=/* @__PURE__ */ new Set([`/jwks`,`/.well-known/oauth-protected-resource/mcp`,`/.well-known/oauth-authorization-server`,`/.well-known/oauth-authorization-server/api/auth`]),Sye=/* @__PURE__ */ new Set([`/`,`/login`,`/consent`,`/setup`]),Cye=/^\/assets\/[a-zA-Z0-9_.-]+\.(js|css)$/,q9=(e,t=200)=>pj(e,{status:t}),J9=q9({error:`Not found`},404),Y9=[`GET`,`POST`,`DELETE`],X9=[`Authorization`,`Content-Type`,`Accept`,`Mcp-Protocol-Version`,`Mcp-Session-Id`,`Mcp-Method`,`Mcp-Name`,`Last-Event-ID`],wye=new Set(X9.map(e=>e.toLowerCase())),Z9=e=>{let t=e instanceof s?e.statusCode:Ow(e)||e instanceof SyntaxError?400:500;return M(q9({error:t===401?`Authentication required`:`Request could not be completed`},t))};function Tye(e,t=dn(new URL(`dist/`,import.meta.resolve(`@clankerauth/web/package.json`)))){let{auth:n,settings:r}=e,i=[.../* @__PURE__ */ new Set([r.baseURL,...r.mcpAllowedOrigins??[]])],a=Vm(function*(){let t=yield*wM,i=new URL(t.url,r.baseURL),a=i.pathname.replace(/^\/api\/auth/,``);if(!yye.has(a)&&a!==`/.well-known/oauth-authorization-server/api/auth`)return J9;if(a===`/oauth2/authorize`){let n=t.method===`GET`?i.searchParams.getAll(`resource`):new URLSearchParams(yield*t.text).getAll(`resource`);if(n.length!==1||!(yield*e.resources.get(n[0]??``).pipe(Kh)))return q9({error:`invalid_target`,error_description:`Exactly one configured resource is required`},400)}let o=t.method===`GET`||t.method===`HEAD`?void 0:yield*t.arrayBuffer,s=yield*Fm({try:r=>e.run(async()=>{let e=await n.handler(new Request(i,{method:t.method,headers:t.headers,body:o,signal:r}));return r.aborted&&await e.body?.cancel(),e}),catch:e=>e instanceof Error?e:Error(String(e))});return Ej(s)}).pipe(ih(Z9)),o=IM(e=>Vm(function*(){let n=yield*Pj;yield*e.add(`*`,`/*`,Vm(function*(){let e=yield*wM;if(e.method!==`GET`&&e.method!==`HEAD`)return J9;let i=new URL(e.url,r.baseURL).pathname,a=Sye.has(i)?`index.html`:Cye.test(i)?i.slice(1):void 0;return a?yield*n.fileResponse(ln(t,a),{contentType:a.endsWith(`.js`)?`text/javascript`:a.endsWith(`.css`)?`text/css`:`text/html; charset=utf-8`}).pipe(ih(()=>M(J9))):J9}))})),s=UM(t=>vye({baseURL:r.baseURL,trustProxy:r.trustProxy})(Vm(function*(){let n=yield*wM,a=new URL(n.url,r.baseURL).pathname,o=a.replace(/^\/api\/auth/,``),s=a===`/mcp`,c=n.headers.origin,l=c!==void 0&&i.includes(c),u=bye.has(o),d;if(s&&c!==void 0&&!l)d=q9({error:`Invalid origin`},403);else if(s&&n.method===`OPTIONS`){let e=n.headers[`access-control-request-method`],t=(n.headers[`access-control-request-headers`]??``).split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);d=l&&e!==void 0&&Y9.includes(e)&&t.every(e=>wye.has(e))?sj({status:204}):q9({error:`MCP preflight rejected`},403)}else if(u&&n.method===`OPTIONS`)d=sj({status:204});else{let n=yield*Fh(Gm({try:e.retain,catch:e=>e}),e=>N(e)).pipe($m);d=Ha(n)?q9({error:`Request could not be completed`},503):yield*t}u&&(d=d.pipe(yj({"access-control-allow-origin":`*`,"access-control-allow-methods":`GET, POST, OPTIONS`,"access-control-allow-headers":`Authorization, Content-Type, DPoP`,"access-control-expose-headers":`WWW-Authenticate, DPoP-Nonce`}),vj(`access-control-allow-credentials`))),s&&(d=d.pipe(_j(`vary`,d.headers.vary?`${d.headers.vary}, Origin`:`Origin`),vj(`access-control-allow-credentials`)),l&&c!==void 0&&(d=d.pipe(yj({"access-control-allow-origin":c,"access-control-expose-headers":`WWW-Authenticate, Mcp-Session-Id, Mcp-Protocol-Version`})),n.method===`OPTIONS`&&d.status>=200&&d.status<300&&(d=d.pipe(yj({"access-control-allow-methods":Y9.join(`, `),"access-control-allow-headers":X9.join(`, `)})))));let f=n.method!==`GET`||d.status!==200?`no-store`:a.startsWith(`/assets/`)?`public, max-age=31536000, immutable`:xye.has(o)?`public, max-age=300`:`no-store`;return d=d.pipe(yj({"cache-control":f,"referrer-policy":`no-referrer`,"x-content-type-options":`nosniff`,"x-frame-options":`DENY`,"content-security-policy":`default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'self'`})),r.baseURL.startsWith(`https:`)&&(d=d.pipe(_j(`strict-transport-security`,`max-age=31536000`))),d})),{global:!0});return Yp(pye(e,i),r.cookieDomain===void 0?Vp:Yfe(e,r.cookieDomain),LM(`GET`,`/healthz`,e.sql`SELECT 1`.pipe(nh(q9({status:`ok`})),Kh,ih(Z9))),LM(`*`,`/api/auth/*`,a),LM(`*`,`/.well-known/*`,a),o).pipe(Qp(s),Qp(Ume))}const Eye=ug(`Http.nodeHandler`)(function*(e,t){let n=yield*Use(Tye(e,t));return yield*Vme(n,{scope:yield*Mh})}),Q9=`credentials.json`,Dye=async(e,t)=>{let n={email:`owner@example.internal`,password:tn(24).toString(`base64url`),secret:tn(32).toString(`hex`)};if(!t)return n;let r=cn(e,Q9),i=await _ee(r,`utf8`).catch(()=>void 0);return i===void 0?(await rn(r,`${JSON.stringify(n,null,2)}\n`,{mode:384}),n):JSON.parse(i)},Oye=(e,t)=>rn(cn(e,Q9),`${JSON.stringify(t,null,2)}\n`,{mode:384});async function kye({resources:e,client:t,cookieDomain:n,cimdTransport:r,onRequest:i,dataDir:a,port:o=0}){let s=dn(new URL(`./web/`,import.meta.url));await mee(cn(s,`index.html`)).catch(()=>{throw Error(`The @gjermundgaraba/clankerauth-dev installation is missing its bundled dashboard assets`)});let c=a!==void 0;c&&await hee(a,{recursive:!0,mode:448});let l=c?ln(a):await gee(cn(bee(),`clankerauth-disposable-`)),u,d,f,p=(e,t)=>{t.writeHead(503).end()},m=mye((e,t)=>{try{i?.({method:e.method??`GET`,url:new URL(e.url??`/`,`http://127.0.0.1:${e.socket.localPort}`)}),p(e,t)}catch{t.headersSent?t.destroy():t.writeHead(500).end(`Request failed`)}}),h=()=>f??=(async()=>{try{let e=new Promise((e,t)=>{m.close(n=>n&&(!(`code`in n)||n.code!==`ERR_SERVER_NOT_RUNNING`)?t(n):e()),m.closeAllConnections()});await Promise.all([e,d?og(Dp(d,sp)):Promise.resolve()])}finally{try{await u?.close()}finally{c||await vee(l,{recursive:!0,force:!0})}}})();try{await new Promise((e,t)=>{m.once(`error`,t),m.listen(o,`127.0.0.1`,()=>{m.off(`error`,t),e()})});let i=m.address();if(!(i instanceof Object))throw Error(`Disposable issuer failed to bind a TCP port`);let{port:a}=i,f=n===void 0?`http://127.0.0.1:${a}`:`http://auth.${n}:${a}`,g=await Dye(l,c);u=await og(rpe(u2({baseURL:f,secret:xC(g.secret),database:cn(l,`issuer.sqlite`),host:`127.0.0.1`,port:a,trustProxy:!1,allowInsecureHttp:n!==void 0,cookieDomain:n}),{cimdTransport:r})),await og(ipe(u)),d=Sp(),p=await og(Eye(u,s).pipe(jh(xp,d)));let _={email:g.email,password:g.password},v=u,y=m2(v),b=K9(v),x=e=>og(Nh(Vm(function*(){let t=yield*v.owner();if(t===void 0)return yield*Wm(/* @__PURE__ */ Error(`Owner setup failed`));let n=yield*Qq(v,t);return yield*e(t).pipe(jh($q,{userId:t,email:_.email,providerHeaders:M(n)}))})).pipe(R(e=>Error(`Disposable issuer provisioning failed`,{cause:e}))));await og(v.owner())||await og(Nh(p2(v,_)).pipe(R(e=>Error(`Disposable issuer provisioning failed`,{cause:e})))),await x(()=>Mm(e,e=>I(v.resources.get(e.identifier),t=>t?P:rh(y.createResource(e)))));let S=await x(()=>Vm(function*(){if(g.clientId!==void 0&&g.clientSecret!==void 0){let{clients:e}=yield*y.list();if(e.some(e=>e.client_id===g.clientId))return{client_id:g.clientId,client_secret:g.clientSecret}}return yield*y.create({client_name:t.name,redirect_uris:[t.redirect],resources:t.resources,token_endpoint_auth_method:`client_secret_basic`,application_type:`native`})}));if(S.client_secret===void 0)throw Error(`Disposable issuer did not return client credentials`);c&&await Oye(l,{...g,clientId:S.client_id,clientSecret:S.client_secret});let C=n===void 0?void 0:f;return{issuer:`${f}/api/auth`,clientId:S.client_id,clientSecret:S.client_secret,owner:_,url:f,port:a,directory:l,apiKey:e=>x(()=>L(b.create({name:e.name??`development`,permissions:e.permissions,expiresAt:null}),e=>e.key)),ownerSession:e=>$9(f,C,_,e),ownerToken:async e=>{let{cookie:t}=await $9(f,C,_,e.appOrigin),n=new URL(e.appOrigin),r=new URL(`/forward-auth`,f);r.searchParams.set(`resource`,e.resource);let i=await fetch(r,{redirect:`manual`,headers:{cookie:t,"x-forwarded-proto":n.protocol.slice(0,-1),"x-forwarded-host":n.host,"x-forwarded-uri":`/`}}),a=i.headers.get(`authorization`);if(await i.body?.cancel().catch(()=>{}),i.status!==204||a===null)throw Error(`Forward auth issued no token (HTTP ${i.status})`);return a.replace(/^Bearer /iu,``)},close:h}}catch(e){throw await h(),e}}const $9=async(e,t,n,r)=>{if(t===void 0)throw Error(`A forward-auth session needs a cookieDomain; the issuer serves none`);let i=/* @__PURE__ */ new Map,a=async e=>{for(let t of e.headers.getSetCookie()){let e=t.indexOf(`;`),n=e===-1?t:t.slice(0,e),r=n.indexOf(`=`);r>0&&i.set(n.slice(0,r),n.slice(r+1))}return await e.body?.cancel().catch(()=>{}),e},o=()=>[...i].map(([e,t])=>`${e}=${t}`).join(`; `),s=await fetch(`${e}/api/auth/sign-in/email`,{method:`POST`,redirect:`manual`,headers:{"content-type":`application/json`,origin:e},body:JSON.stringify(n)});if(!s.ok)throw await s.body?.cancel().catch(()=>{}),Error(`Owner sign-in failed with HTTP ${s.status}`);await a(s);let c=new URL(`/`,r).href;return await a(await fetch(`${e}/forward-auth/continue?rd=${encodeURIComponent(c)}`,{redirect:`manual`,headers:{cookie:o()}})),{cookie:o(),cookies:[...i].map(([e,t])=>({name:e,value:t}))}};export{kye as startDisposableIssuer,Tq as t};