lexic-mcp 0.2.2 → 0.2.3
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/bundle.cjs +4 -4
- package/package.json +1 -1
package/dist/bundle.cjs
CHANGED
|
@@ -96,7 +96,7 @@ return fn.apply(this, arguments)
|
|
|
96
96
|
|
|
97
97
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of t.seen.entries()){let s=a[1];if(e===a[0]){o(a);continue}if(t.external){let c=t.external.registry.get(a[0])?.id;if(e!==a[0]&&c){o(a);continue}}if(t.metadataRegistry.get(a[0])?.id){o(a);continue}if(s.cycle){o(a);continue}if(s.count>1&&t.reused==="ref"){o(a);continue}}}function Wc(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let s=t.seen.get(a);if(s.ref===null)return;let u=s.def??s.schema,c={...u},l=s.ref;if(s.ref=null,l){n(l);let d=t.seen.get(l),f=d.schema;if(f.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(f)):Object.assign(u,f),Object.assign(u,c),a._zod.parent===l)for(let h in u)h==="$ref"||h==="allOf"||h in c||delete u[h];if(f.$ref)for(let h in u)h==="$ref"||h==="allOf"||h in d.def&&JSON.stringify(u[h])===JSON.stringify(d.def[h])&&delete u[h]}let p=a._zod.parent;if(p&&p!==l){n(p);let d=t.seen.get(p);if(d?.schema.$ref&&(u.$ref=d.schema.$ref,d.def))for(let f in u)f==="$ref"||f==="allOf"||f in d.def&&JSON.stringify(u[f])===JSON.stringify(d.def[f])&&delete u[f]}t.override({zodSchema:a,jsonSchema:u,path:s.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(a)}Object.assign(i,r.def??r.schema);let o=t.external?.defs??{};for(let a of t.seen.entries()){let s=a[1];s.def&&s.defId&&(o[s.defId]=s.def)}t.external||Object.keys(o).length>0&&(t.target==="draft-2020-12"?i.$defs=o:i.definitions=o);try{let a=JSON.parse(JSON.stringify(i));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:Sa(e,"input",t.processors),output:Sa(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function st(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return st(n.element,r);if(n.type==="set")return st(n.valueType,r);if(n.type==="lazy")return st(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return st(n.innerType,r);if(n.type==="intersection")return st(n.left,r)||st(n.right,r);if(n.type==="record"||n.type==="map")return st(n.keyType,r)||st(n.valueType,r);if(n.type==="pipe")return st(n.in,r)||st(n.out,r);if(n.type==="object"){for(let i in n.shape)if(st(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(st(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(st(i,r))return!0;return!!(n.rest&&st(n.rest,r))}return!1}var i0=(t,e={})=>r=>{let n=Jc({...r,processors:e});return be(t,n),Kc(n,t),Wc(n,t)},Sa=(t,e,r={})=>n=>{let{libraryOptions:i,target:o}=n??{},a=Jc({...i??{},target:o,io:e,processors:r});return be(t,a),Kc(a,t),Wc(a,t)};var KO={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},o0=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:o,maximum:a,format:s,patterns:u,contentEncoding:c}=t._zod.bag;if(typeof o=="number"&&(i.minLength=o),typeof a=="number"&&(i.maxLength=a),s&&(i.format=KO[s]??s,i.format===""&&delete i.format,s==="time"&&delete i.format),c&&(i.contentEncoding=c),u&&u.size>0){let l=[...u];l.length===1?i.pattern=l[0].source:l.length>1&&(i.allOf=[...l.map(p=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}},a0=(t,e,r,n)=>{let i=r,{minimum:o,maximum:a,format:s,multipleOf:u,exclusiveMaximum:c,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.includes("int")?i.type="integer":i.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l),typeof o=="number"&&(i.minimum=o,typeof l=="number"&&e.target!=="draft-04"&&(l>=o?delete i.minimum:delete i.exclusiveMinimum)),typeof c=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c),typeof a=="number"&&(i.maximum=a,typeof c=="number"&&e.target!=="draft-04"&&(c<=a?delete i.maximum:delete i.exclusiveMaximum)),typeof u=="number"&&(i.multipleOf=u)},s0=(t,e,r,n)=>{r.type="boolean"},c0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},u0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},l0=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},p0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},d0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},f0=(t,e,r,n)=>{r.not={}},m0=(t,e,r,n)=>{},h0=(t,e,r,n)=>{},g0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},v0=(t,e,r,n)=>{let i=t._zod.def,o=Go(i.entries);o.every(a=>typeof a=="number")&&(r.type="number"),o.every(a=>typeof a=="string")&&(r.type="string"),r.enum=o},y0=(t,e,r,n)=>{let i=t._zod.def,o=[];for(let a of i.values)if(a===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");o.push(Number(a))}else o.push(a);if(o.length!==0)if(o.length===1){let a=o[0];r.type=a===null?"null":typeof a,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[a]:r.const=a}else o.every(a=>typeof a=="number")&&(r.type="number"),o.every(a=>typeof a=="string")&&(r.type="string"),o.every(a=>typeof a=="boolean")&&(r.type="boolean"),o.every(a=>a===null)&&(r.type="null"),r.enum=o},x0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},b0=(t,e,r,n)=>{let i=r,o=t._zod.pattern;if(!o)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=o.source},_0=(t,e,r,n)=>{let i=r,o={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:u}=t._zod.bag;a!==void 0&&(o.minLength=a),s!==void 0&&(o.maxLength=s),u?u.length===1?(o.contentMediaType=u[0],Object.assign(i,o)):(Object.assign(i,o),i.anyOf=u.map(c=>({contentMediaType:c}))):Object.assign(i,o)},w0=(t,e,r,n)=>{r.type="boolean"},$0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},k0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},S0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},E0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},T0=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},z0=(t,e,r,n)=>{let i=r,o=t._zod.def,{minimum:a,maximum:s}=t._zod.bag;typeof a=="number"&&(i.minItems=a),typeof s=="number"&&(i.maxItems=s),i.type="array",i.items=be(o.element,e,{...n,path:[...n.path,"items"]})},I0=(t,e,r,n)=>{let i=r,o=t._zod.def;i.type="object",i.properties={};let a=o.shape;for(let c in a)i.properties[c]=be(a[c],e,{...n,path:[...n.path,"properties",c]});let s=new Set(Object.keys(a)),u=new Set([...s].filter(c=>{let l=o.shape[c]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));u.size>0&&(i.required=Array.from(u)),o.catchall?._zod.def.type==="never"?i.additionalProperties=!1:o.catchall?o.catchall&&(i.additionalProperties=be(o.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},Mm=(t,e,r,n)=>{let i=t._zod.def,o=i.inclusive===!1,a=i.options.map((s,u)=>be(s,e,{...n,path:[...n.path,o?"oneOf":"anyOf",u]}));o?r.oneOf=a:r.anyOf=a},P0=(t,e,r,n)=>{let i=t._zod.def,o=be(i.left,e,{...n,path:[...n.path,"allOf",0]}),a=be(i.right,e,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1,u=[...s(o)?o.allOf:[o],...s(a)?a.allOf:[a]];r.allOf=u},j0=(t,e,r,n)=>{let i=r,o=t._zod.def;i.type="array";let a=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",u=o.items.map((d,f)=>be(d,e,{...n,path:[...n.path,a,f]})),c=o.rest?be(o.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[o.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=u,c&&(i.items=c)):e.target==="openapi-3.0"?(i.items={anyOf:u},c&&i.items.anyOf.push(c),i.minItems=u.length,c||(i.maxItems=u.length)):(i.items=u,c&&(i.additionalItems=c));let{minimum:l,maximum:p}=t._zod.bag;typeof l=="number"&&(i.minItems=l),typeof p=="number"&&(i.maxItems=p)},O0=(t,e,r,n)=>{let i=r,o=t._zod.def;i.type="object";let a=o.keyType,u=a._zod.bag?.patterns;if(o.mode==="loose"&&u&&u.size>0){let l=be(o.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});i.patternProperties={};for(let p of u)i.patternProperties[p.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=be(o.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=be(o.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let c=a._zod.values;if(c){let l=[...c].filter(p=>typeof p=="string"||typeof p=="number");l.length>0&&(i.required=l)}},A0=(t,e,r,n)=>{let i=t._zod.def,o=be(i.innerType,e,n),a=e.seen.get(t);e.target==="openapi-3.0"?(a.ref=i.innerType,r.nullable=!0):r.anyOf=[o,{type:"null"}]},R0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType},C0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},N0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},D0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType;let a;try{a=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},U0=(t,e,r,n)=>{let i=t._zod.def,o=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;be(o,e,n);let a=e.seen.get(t);a.ref=o},q0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType,r.readOnly=!0},M0=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType},Lm=(t,e,r,n)=>{let i=t._zod.def;be(i.innerType,e,n);let o=e.seen.get(t);o.ref=i.innerType},L0=(t,e,r,n)=>{let i=t._zod.innerType;be(i,e,n);let o=e.seen.get(t);o.ref=i};function Ni(t){return!!t._zod}function an(t,e){return Ni(t)?ji(t,e):t.safeParse(e)}function Xc(t){if(!t)return;let e;if(Ni(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function V0(t){if(Ni(t)){let o=t._zod?.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Ea={};fi(Ea,{ZodAny:()=>cw,ZodArray:()=>dw,ZodBase64:()=>dh,ZodBase64URL:()=>fh,ZodBigInt:()=>Oa,ZodBigIntFormat:()=>gh,ZodBoolean:()=>ja,ZodCIDRv4:()=>lh,ZodCIDRv6:()=>ph,ZodCUID:()=>nh,ZodCUID2:()=>ih,ZodCatch:()=>Ow,ZodCodec:()=>$h,ZodCustom:()=>cu,ZodCustomStringFormat:()=>Ia,ZodDate:()=>nu,ZodDefault:()=>Ew,ZodDiscriminatedUnion:()=>mw,ZodE164:()=>mh,ZodEmail:()=>Qm,ZodEmoji:()=>th,ZodEnum:()=>Ta,ZodExactOptional:()=>$w,ZodFile:()=>_w,ZodFunction:()=>Lw,ZodGUID:()=>Qc,ZodIPv4:()=>ch,ZodIPv6:()=>uh,ZodIntersection:()=>hw,ZodJWT:()=>hh,ZodKSUID:()=>sh,ZodLazy:()=>Uw,ZodLiteral:()=>bw,ZodMAC:()=>iw,ZodMap:()=>yw,ZodNaN:()=>Rw,ZodNanoID:()=>rh,ZodNever:()=>lw,ZodNonOptional:()=>_h,ZodNull:()=>sw,ZodNullable:()=>Sw,ZodNumber:()=>Pa,ZodNumberFormat:()=>Di,ZodObject:()=>iu,ZodOptional:()=>bh,ZodPipe:()=>wh,ZodPrefault:()=>zw,ZodPromise:()=>Mw,ZodReadonly:()=>Cw,ZodRecord:()=>su,ZodSet:()=>xw,ZodString:()=>za,ZodStringFormat:()=>ve,ZodSuccess:()=>jw,ZodSymbol:()=>ow,ZodTemplateLiteral:()=>Dw,ZodTransform:()=>ww,ZodTuple:()=>gw,ZodType:()=>G,ZodULID:()=>oh,ZodURL:()=>ru,ZodUUID:()=>Nr,ZodUndefined:()=>aw,ZodUnion:()=>ou,ZodUnknown:()=>uw,ZodVoid:()=>pw,ZodXID:()=>ah,ZodXor:()=>fw,_ZodString:()=>Ym,_default:()=>Tw,_function:()=>iA,any:()=>vh,array:()=>I,base64:()=>k2,base64url:()=>S2,bigint:()=>N2,boolean:()=>le,catch:()=>Aw,check:()=>oA,cidrv4:()=>w2,cidrv6:()=>$2,codec:()=>tA,cuid:()=>m2,cuid2:()=>h2,custom:()=>kh,date:()=>Z2,describe:()=>aA,discriminatedUnion:()=>au,e164:()=>E2,email:()=>o2,emoji:()=>d2,enum:()=>Qe,exactOptional:()=>kw,file:()=>X2,float32:()=>O2,float64:()=>A2,function:()=>iA,guid:()=>a2,hash:()=>j2,hex:()=>P2,hostname:()=>I2,httpUrl:()=>p2,instanceof:()=>cA,int:()=>Xm,int32:()=>R2,int64:()=>D2,intersection:()=>Ra,ipv4:()=>x2,ipv6:()=>_2,json:()=>lA,jwt:()=>T2,keyof:()=>F2,ksuid:()=>y2,lazy:()=>qw,literal:()=>A,looseObject:()=>Oe,looseRecord:()=>G2,mac:()=>b2,map:()=>J2,meta:()=>sA,nan:()=>eA,nanoid:()=>f2,nativeEnum:()=>W2,never:()=>yh,nonoptional:()=>Pw,null:()=>Aa,nullable:()=>eu,nullish:()=>Y2,number:()=>oe,object:()=>z,optional:()=>$e,partialRecord:()=>H2,pipe:()=>tu,prefault:()=>Iw,preprocess:()=>uu,promise:()=>nA,readonly:()=>Nw,record:()=>_e,refine:()=>Zw,set:()=>K2,strictObject:()=>V2,string:()=>v,stringFormat:()=>z2,stringbool:()=>uA,success:()=>Q2,superRefine:()=>Fw,symbol:()=>q2,templateLiteral:()=>rA,transform:()=>xh,tuple:()=>vw,uint32:()=>C2,uint64:()=>U2,ulid:()=>g2,undefined:()=>M2,union:()=>de,unknown:()=>ye,url:()=>eh,uuid:()=>s2,uuidv4:()=>c2,uuidv6:()=>u2,uuidv7:()=>l2,void:()=>L2,xid:()=>v2,xor:()=>B2});var Yc={};fi(Yc,{endsWith:()=>xa,gt:()=>Rr,gte:()=>at,includes:()=>va,length:()=>Ri,lowercase:()=>ha,lt:()=>Ar,lte:()=>wt,maxLength:()=>Ai,maxSize:()=>Nn,mime:()=>ba,minLength:()=>on,minSize:()=>Cr,multipleOf:()=>Cn,negative:()=>Im,nonnegative:()=>jm,nonpositive:()=>Pm,normalize:()=>_a,overwrite:()=>fr,positive:()=>zm,property:()=>Om,regex:()=>ma,size:()=>Oi,slugify:()=>Gc,startsWith:()=>ya,toLowerCase:()=>$a,toUpperCase:()=>ka,trim:()=>wa,uppercase:()=>ga});var Dn={};fi(Dn,{ZodISODate:()=>Bm,ZodISODateTime:()=>Fm,ZodISODuration:()=>Km,ZodISOTime:()=>Gm,date:()=>Hm,datetime:()=>Vm,duration:()=>Wm,time:()=>Jm});var Fm=b("ZodISODateTime",(t,e)=>{Xd.init(t,e),ve.init(t,e)});function Vm(t){return tm(Fm,t)}var Bm=b("ZodISODate",(t,e)=>{Yd.init(t,e),ve.init(t,e)});function Hm(t){return rm(Bm,t)}var Gm=b("ZodISOTime",(t,e)=>{Qd.init(t,e),ve.init(t,e)});function Jm(t){return nm(Gm,t)}var Km=b("ZodISODuration",(t,e)=>{ef.init(t,e),ve.init(t,e)});function Wm(t){return im(Km,t)}var B0=(t,e)=>{dc.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>mc(t,r)},flatten:{value:r=>fc(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,zi,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,zi,2)}},isEmpty:{get(){return t.issues.length===0}}})},aY=b("ZodError",B0),$t=b("ZodError",B0,{Parent:Error});var H0=Qo($t),G0=ta($t),J0=na($t),K0=ia($t),W0=o_($t),X0=a_($t),Y0=s_($t),Q0=c_($t),ew=u_($t),tw=l_($t),rw=p_($t),nw=d_($t);var G=b("ZodType",(t,e)=>(Z.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Sa(t,"input"),output:Sa(t,"output")}}),t.toJSONSchema=i0(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(E.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>it(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>H0(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>J0(t,r,n),t.parseAsync=async(r,n)=>G0(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>K0(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>W0(t,r,n),t.decode=(r,n)=>X0(t,r,n),t.encodeAsync=async(r,n)=>Y0(t,r,n),t.decodeAsync=async(r,n)=>Q0(t,r,n),t.safeEncode=(r,n)=>ew(t,r,n),t.safeDecode=(r,n)=>tw(t,r,n),t.safeEncodeAsync=async(r,n)=>rw(t,r,n),t.safeDecodeAsync=async(r,n)=>nw(t,r,n),t.refine=(r,n)=>t.check(Zw(r,n)),t.superRefine=r=>t.check(Fw(r)),t.overwrite=r=>t.check(fr(r)),t.optional=()=>$e(t),t.exactOptional=()=>kw(t),t.nullable=()=>eu(t),t.nullish=()=>$e(eu(t)),t.nonoptional=r=>Pw(t,r),t.array=()=>I(t),t.or=r=>de([t,r]),t.and=r=>Ra(t,r),t.transform=r=>tu(t,xh(r)),t.default=r=>Tw(t,r),t.prefault=r=>Iw(t,r),t.catch=r=>Aw(t,r),t.pipe=r=>tu(t,r),t.readonly=()=>Nw(t),t.describe=r=>{let n=t.clone();return ot.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return ot.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return ot.get(t);let n=t.clone();return ot.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),Ym=b("_ZodString",(t,e)=>{Rn.init(t,e),G.init(t,e),t._zod.processJSONSchema=(n,i,o)=>o0(t,n,i,o);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(ma(...n)),t.includes=(...n)=>t.check(va(...n)),t.startsWith=(...n)=>t.check(ya(...n)),t.endsWith=(...n)=>t.check(xa(...n)),t.min=(...n)=>t.check(on(...n)),t.max=(...n)=>t.check(Ai(...n)),t.length=(...n)=>t.check(Ri(...n)),t.nonempty=(...n)=>t.check(on(1,...n)),t.lowercase=n=>t.check(ha(n)),t.uppercase=n=>t.check(ga(n)),t.trim=()=>t.check(wa()),t.normalize=(...n)=>t.check(_a(...n)),t.toLowerCase=()=>t.check($a()),t.toUpperCase=()=>t.check(ka()),t.slugify=()=>t.check(Gc())}),za=b("ZodString",(t,e)=>{Rn.init(t,e),Ym.init(t,e),t.email=r=>t.check(Tc(Qm,r)),t.url=r=>t.check(fa(ru,r)),t.jwt=r=>t.check(Hc(hh,r)),t.emoji=r=>t.check(Oc(th,r)),t.guid=r=>t.check(da(Qc,r)),t.uuid=r=>t.check(zc(Nr,r)),t.uuidv4=r=>t.check(Ic(Nr,r)),t.uuidv6=r=>t.check(Pc(Nr,r)),t.uuidv7=r=>t.check(jc(Nr,r)),t.nanoid=r=>t.check(Ac(rh,r)),t.guid=r=>t.check(da(Qc,r)),t.cuid=r=>t.check(Rc(nh,r)),t.cuid2=r=>t.check(Cc(ih,r)),t.ulid=r=>t.check(Nc(oh,r)),t.base64=r=>t.check(Fc(dh,r)),t.base64url=r=>t.check(Vc(fh,r)),t.xid=r=>t.check(Dc(ah,r)),t.ksuid=r=>t.check(Uc(sh,r)),t.ipv4=r=>t.check(qc(ch,r)),t.ipv6=r=>t.check(Mc(uh,r)),t.cidrv4=r=>t.check(Lc(lh,r)),t.cidrv6=r=>t.check(Zc(ph,r)),t.e164=r=>t.check(Bc(mh,r)),t.datetime=r=>t.check(Vm(r)),t.date=r=>t.check(Hm(r)),t.time=r=>t.check(Jm(r)),t.duration=r=>t.check(Wm(r))});function v(t){return Yf(za,t)}var ve=b("ZodStringFormat",(t,e)=>{pe.init(t,e),Ym.init(t,e)}),Qm=b("ZodEmail",(t,e)=>{Zd.init(t,e),ve.init(t,e)});function o2(t){return Tc(Qm,t)}var Qc=b("ZodGUID",(t,e)=>{Md.init(t,e),ve.init(t,e)});function a2(t){return da(Qc,t)}var Nr=b("ZodUUID",(t,e)=>{Ld.init(t,e),ve.init(t,e)});function s2(t){return zc(Nr,t)}function c2(t){return Ic(Nr,t)}function u2(t){return Pc(Nr,t)}function l2(t){return jc(Nr,t)}var ru=b("ZodURL",(t,e)=>{Fd.init(t,e),ve.init(t,e)});function eh(t){return fa(ru,t)}function p2(t){return fa(ru,{protocol:/^https?$/,hostname:Rt.domain,...E.normalizeParams(t)})}var th=b("ZodEmoji",(t,e)=>{Vd.init(t,e),ve.init(t,e)});function d2(t){return Oc(th,t)}var rh=b("ZodNanoID",(t,e)=>{Bd.init(t,e),ve.init(t,e)});function f2(t){return Ac(rh,t)}var nh=b("ZodCUID",(t,e)=>{Hd.init(t,e),ve.init(t,e)});function m2(t){return Rc(nh,t)}var ih=b("ZodCUID2",(t,e)=>{Gd.init(t,e),ve.init(t,e)});function h2(t){return Cc(ih,t)}var oh=b("ZodULID",(t,e)=>{Jd.init(t,e),ve.init(t,e)});function g2(t){return Nc(oh,t)}var ah=b("ZodXID",(t,e)=>{Kd.init(t,e),ve.init(t,e)});function v2(t){return Dc(ah,t)}var sh=b("ZodKSUID",(t,e)=>{Wd.init(t,e),ve.init(t,e)});function y2(t){return Uc(sh,t)}var ch=b("ZodIPv4",(t,e)=>{tf.init(t,e),ve.init(t,e)});function x2(t){return qc(ch,t)}var iw=b("ZodMAC",(t,e)=>{nf.init(t,e),ve.init(t,e)});function b2(t){return em(iw,t)}var uh=b("ZodIPv6",(t,e)=>{rf.init(t,e),ve.init(t,e)});function _2(t){return Mc(uh,t)}var lh=b("ZodCIDRv4",(t,e)=>{of.init(t,e),ve.init(t,e)});function w2(t){return Lc(lh,t)}var ph=b("ZodCIDRv6",(t,e)=>{af.init(t,e),ve.init(t,e)});function $2(t){return Zc(ph,t)}var dh=b("ZodBase64",(t,e)=>{sf.init(t,e),ve.init(t,e)});function k2(t){return Fc(dh,t)}var fh=b("ZodBase64URL",(t,e)=>{cf.init(t,e),ve.init(t,e)});function S2(t){return Vc(fh,t)}var mh=b("ZodE164",(t,e)=>{uf.init(t,e),ve.init(t,e)});function E2(t){return Bc(mh,t)}var hh=b("ZodJWT",(t,e)=>{lf.init(t,e),ve.init(t,e)});function T2(t){return Hc(hh,t)}var Ia=b("ZodCustomStringFormat",(t,e)=>{pf.init(t,e),ve.init(t,e)});function z2(t,e,r={}){return Ci(Ia,t,e,r)}function I2(t){return Ci(Ia,"hostname",Rt.hostname,t)}function P2(t){return Ci(Ia,"hex",Rt.hex,t)}function j2(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=Rt[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return Ci(Ia,n,i,e)}var Pa=b("ZodNumber",(t,e)=>{$c.init(t,e),G.init(t,e),t._zod.processJSONSchema=(n,i,o)=>a0(t,n,i,o),t.gt=(n,i)=>t.check(Rr(n,i)),t.gte=(n,i)=>t.check(at(n,i)),t.min=(n,i)=>t.check(at(n,i)),t.lt=(n,i)=>t.check(Ar(n,i)),t.lte=(n,i)=>t.check(wt(n,i)),t.max=(n,i)=>t.check(wt(n,i)),t.int=n=>t.check(Xm(n)),t.safe=n=>t.check(Xm(n)),t.positive=n=>t.check(Rr(0,n)),t.nonnegative=n=>t.check(at(0,n)),t.negative=n=>t.check(Ar(0,n)),t.nonpositive=n=>t.check(wt(0,n)),t.multipleOf=(n,i)=>t.check(Cn(n,i)),t.step=(n,i)=>t.check(Cn(n,i)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function oe(t){return om(Pa,t)}var Di=b("ZodNumberFormat",(t,e)=>{df.init(t,e),Pa.init(t,e)});function Xm(t){return sm(Di,t)}function O2(t){return cm(Di,t)}function A2(t){return um(Di,t)}function R2(t){return lm(Di,t)}function C2(t){return pm(Di,t)}var ja=b("ZodBoolean",(t,e)=>{ua.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>s0(t,r,n,i)});function le(t){return dm(ja,t)}var Oa=b("ZodBigInt",(t,e)=>{kc.init(t,e),G.init(t,e),t._zod.processJSONSchema=(n,i,o)=>c0(t,n,i,o),t.gte=(n,i)=>t.check(at(n,i)),t.min=(n,i)=>t.check(at(n,i)),t.gt=(n,i)=>t.check(Rr(n,i)),t.gte=(n,i)=>t.check(at(n,i)),t.min=(n,i)=>t.check(at(n,i)),t.lt=(n,i)=>t.check(Ar(n,i)),t.lte=(n,i)=>t.check(wt(n,i)),t.max=(n,i)=>t.check(wt(n,i)),t.positive=n=>t.check(Rr(BigInt(0),n)),t.negative=n=>t.check(Ar(BigInt(0),n)),t.nonpositive=n=>t.check(wt(BigInt(0),n)),t.nonnegative=n=>t.check(at(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(Cn(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function N2(t){return mm(Oa,t)}var gh=b("ZodBigIntFormat",(t,e)=>{ff.init(t,e),Oa.init(t,e)});function D2(t){return gm(gh,t)}function U2(t){return vm(gh,t)}var ow=b("ZodSymbol",(t,e)=>{mf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>u0(t,r,n,i)});function q2(t){return ym(ow,t)}var aw=b("ZodUndefined",(t,e)=>{hf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>p0(t,r,n,i)});function M2(t){return xm(aw,t)}var sw=b("ZodNull",(t,e)=>{gf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>l0(t,r,n,i)});function Aa(t){return bm(sw,t)}var cw=b("ZodAny",(t,e)=>{vf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>m0(t,r,n,i)});function vh(){return _m(cw)}var uw=b("ZodUnknown",(t,e)=>{yf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>h0(t,r,n,i)});function ye(){return wm(uw)}var lw=b("ZodNever",(t,e)=>{xf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>f0(t,r,n,i)});function yh(t){return $m(lw,t)}var pw=b("ZodVoid",(t,e)=>{bf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>d0(t,r,n,i)});function L2(t){return km(pw,t)}var nu=b("ZodDate",(t,e)=>{_f.init(t,e),G.init(t,e),t._zod.processJSONSchema=(n,i,o)=>g0(t,n,i,o),t.min=(n,i)=>t.check(at(n,i)),t.max=(n,i)=>t.check(wt(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function Z2(t){return Sm(nu,t)}var dw=b("ZodArray",(t,e)=>{wf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>z0(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(on(r,n)),t.nonempty=r=>t.check(on(1,r)),t.max=(r,n)=>t.check(Ai(r,n)),t.length=(r,n)=>t.check(Ri(r,n)),t.unwrap=()=>t.element});function I(t,e){return n0(dw,t,e)}function F2(t){let e=t._zod.def.shape;return Qe(Object.keys(e))}var iu=b("ZodObject",(t,e)=>{Q_.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>I0(t,r,n,i),E.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Qe(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:ye()}),t.loose=()=>t.clone({...t._zod.def,catchall:ye()}),t.strict=()=>t.clone({...t._zod.def,catchall:yh()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>E.extend(t,r),t.safeExtend=r=>E.safeExtend(t,r),t.merge=r=>E.merge(t,r),t.pick=r=>E.pick(t,r),t.omit=r=>E.omit(t,r),t.partial=(...r)=>E.partial(bh,t,r[0]),t.required=(...r)=>E.required(_h,t,r[0])});function z(t,e){let r={type:"object",shape:t??{},...E.normalizeParams(e)};return new iu(r)}function V2(t,e){return new iu({type:"object",shape:t,catchall:yh(),...E.normalizeParams(e)})}function Oe(t,e){return new iu({type:"object",shape:t,catchall:ye(),...E.normalizeParams(e)})}var ou=b("ZodUnion",(t,e)=>{la.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Mm(t,r,n,i),t.options=e.options});function de(t,e){return new ou({type:"union",options:t,...E.normalizeParams(e)})}var fw=b("ZodXor",(t,e)=>{ou.init(t,e),$f.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Mm(t,r,n,i),t.options=e.options});function B2(t,e){return new fw({type:"union",options:t,inclusive:!1,...E.normalizeParams(e)})}var mw=b("ZodDiscriminatedUnion",(t,e)=>{ou.init(t,e),kf.init(t,e)});function au(t,e,r){return new mw({type:"union",options:e,discriminator:t,...E.normalizeParams(r)})}var hw=b("ZodIntersection",(t,e)=>{Sf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>P0(t,r,n,i)});function Ra(t,e){return new hw({type:"intersection",left:t,right:e})}var gw=b("ZodTuple",(t,e)=>{Sc.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>j0(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function vw(t,e,r){let n=e instanceof Z,i=n?r:e,o=n?e:null;return new gw({type:"tuple",items:t,rest:o,...E.normalizeParams(i)})}var su=b("ZodRecord",(t,e)=>{Ef.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>O0(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function _e(t,e,r){return new su({type:"record",keyType:t,valueType:e,...E.normalizeParams(r)})}function H2(t,e,r){let n=it(t);return n._zod.values=void 0,new su({type:"record",keyType:n,valueType:e,...E.normalizeParams(r)})}function G2(t,e,r){return new su({type:"record",keyType:t,valueType:e,mode:"loose",...E.normalizeParams(r)})}var yw=b("ZodMap",(t,e)=>{Tf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>E0(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(Cr(...r)),t.nonempty=r=>t.check(Cr(1,r)),t.max=(...r)=>t.check(Nn(...r)),t.size=(...r)=>t.check(Oi(...r))});function J2(t,e,r){return new yw({type:"map",keyType:t,valueType:e,...E.normalizeParams(r)})}var xw=b("ZodSet",(t,e)=>{zf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>T0(t,r,n,i),t.min=(...r)=>t.check(Cr(...r)),t.nonempty=r=>t.check(Cr(1,r)),t.max=(...r)=>t.check(Nn(...r)),t.size=(...r)=>t.check(Oi(...r))});function K2(t,e){return new xw({type:"set",valueType:t,...E.normalizeParams(e)})}var Ta=b("ZodEnum",(t,e)=>{If.init(t,e),G.init(t,e),t._zod.processJSONSchema=(n,i,o)=>v0(t,n,i,o),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let o={};for(let a of n)if(r.has(a))o[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Ta({...e,checks:[],...E.normalizeParams(i),entries:o})},t.exclude=(n,i)=>{let o={...e.entries};for(let a of n)if(r.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new Ta({...e,checks:[],...E.normalizeParams(i),entries:o})}});function Qe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Ta({type:"enum",entries:r,...E.normalizeParams(e)})}function W2(t,e){return new Ta({type:"enum",entries:t,...E.normalizeParams(e)})}var bw=b("ZodLiteral",(t,e)=>{Pf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y0(t,r,n,i),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function A(t,e){return new bw({type:"literal",values:Array.isArray(t)?t:[t],...E.normalizeParams(e)})}var _w=b("ZodFile",(t,e)=>{jf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>_0(t,r,n,i),t.min=(r,n)=>t.check(Cr(r,n)),t.max=(r,n)=>t.check(Nn(r,n)),t.mime=(r,n)=>t.check(ba(Array.isArray(r)?r:[r],n))});function X2(t){return Am(_w,t)}var ww=b("ZodTransform",(t,e)=>{Of.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>S0(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new jn(t.constructor.name);r.addIssue=o=>{if(typeof o=="string")r.issues.push(E.issue(o,r.value,e));else{let a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),r.issues.push(E.issue(a))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(o=>(r.value=o,r)):(r.value=i,r)}});function xh(t){return new ww({type:"transform",transform:t})}var bh=b("ZodOptional",(t,e)=>{Ec.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Lm(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function $e(t){return new bh({type:"optional",innerType:t})}var $w=b("ZodExactOptional",(t,e)=>{Af.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Lm(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function kw(t){return new $w({type:"optional",innerType:t})}var Sw=b("ZodNullable",(t,e)=>{Rf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>A0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function eu(t){return new Sw({type:"nullable",innerType:t})}function Y2(t){return $e(eu(t))}var Ew=b("ZodDefault",(t,e)=>{Cf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>C0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function Tw(t,e){return new Ew({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():E.shallowClone(e)}})}var zw=b("ZodPrefault",(t,e)=>{Nf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>N0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Iw(t,e){return new zw({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():E.shallowClone(e)}})}var _h=b("ZodNonOptional",(t,e)=>{Df.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>R0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Pw(t,e){return new _h({type:"nonoptional",innerType:t,...E.normalizeParams(e)})}var jw=b("ZodSuccess",(t,e)=>{Uf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>w0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Q2(t){return new jw({type:"success",innerType:t})}var Ow=b("ZodCatch",(t,e)=>{qf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>D0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Aw(t,e){return new Ow({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Rw=b("ZodNaN",(t,e)=>{Mf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>x0(t,r,n,i)});function eA(t){return Tm(Rw,t)}var wh=b("ZodPipe",(t,e)=>{Lf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>U0(t,r,n,i),t.in=e.in,t.out=e.out});function tu(t,e){return new wh({type:"pipe",in:t,out:e})}var $h=b("ZodCodec",(t,e)=>{wh.init(t,e),pa.init(t,e)});function tA(t,e,r){return new $h({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var Cw=b("ZodReadonly",(t,e)=>{Zf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>q0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Nw(t){return new Cw({type:"readonly",innerType:t})}var Dw=b("ZodTemplateLiteral",(t,e)=>{Ff.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>b0(t,r,n,i)});function rA(t,e){return new Dw({type:"template_literal",parts:t,...E.normalizeParams(e)})}var Uw=b("ZodLazy",(t,e)=>{Hf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>L0(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function qw(t){return new Uw({type:"lazy",getter:t})}var Mw=b("ZodPromise",(t,e)=>{Bf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>M0(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function nA(t){return new Mw({type:"promise",innerType:t})}var Lw=b("ZodFunction",(t,e)=>{Vf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>k0(t,r,n,i)});function iA(t){return new Lw({type:"function",input:Array.isArray(t?.input)?vw(t?.input):t?.input??I(ye()),output:t?.output??ye()})}var cu=b("ZodCustom",(t,e)=>{Gf.init(t,e),G.init(t,e),t._zod.processJSONSchema=(r,n,i)=>$0(t,r,n,i)});function oA(t){let e=new ge({check:"custom"});return e._zod.check=t,e}function kh(t,e){return Rm(cu,t??(()=>!0),e)}function Zw(t,e={}){return Cm(cu,t,e)}function Fw(t){return Nm(t)}var aA=Dm,sA=Um;function cA(t,e={}){let r=new cu({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...E.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var uA=(...t)=>qm({Codec:$h,Boolean:ja,String:za},...t);function lA(t){let e=qw(()=>de([v(t),oe(),le(),Aa(),I(e),_e(v(),e)]));return e}function uu(t,e){return tu(xh(t),e)}var Bw={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};var Vw;Vw||(Vw={});var mY={...Ea,...Yc,iso:Dn};var lu={};fi(lu,{bigint:()=>mA,boolean:()=>fA,date:()=>hA,number:()=>dA,string:()=>pA});function pA(t){return Qf(za,t)}function dA(t){return am(Pa,t)}function fA(t){return fm(ja,t)}function mA(t){return hm(Oa,t)}function hA(t){return Em(nu,t)}Ae(Jf());var Eh="2025-11-25",Hw="2025-03-26",Na=[Eh,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],sn="io.modelcontextprotocol/related-task",du="2.0",Ze=kh(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Gw=de([v(),oe().int()]),Jw=v(),AY=Oe({ttl:de([oe(),Aa()]).optional(),pollInterval:oe().optional()}),vA=z({ttl:oe().optional()}),yA=z({taskId:v()}),Th=Oe({progressToken:Gw.optional(),[sn]:yA.optional()}),kt=z({_meta:Th.optional()}),Da=kt.extend({task:vA.optional()}),Kw=t=>Da.safeParse(t).success,Fe=z({method:v(),params:kt.loose().optional()}),Ct=z({_meta:Th.optional()}),Nt=z({method:v(),params:Ct.loose().optional()}),Ve=Oe({_meta:Th.optional()}),fu=de([v(),oe().int()]),Ww=z({jsonrpc:A(du),id:fu,...Fe.shape}).strict(),cn=t=>Ww.safeParse(t).success,Xw=z({jsonrpc:A(du),...Nt.shape}).strict(),Yw=t=>Xw.safeParse(t).success,zh=z({jsonrpc:A(du),id:fu,result:Ve}).strict(),Dr=t=>zh.safeParse(t).success;var ne;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(ne||(ne={}));var Ih=z({jsonrpc:A(du),id:fu.optional(),error:z({code:oe().int(),message:v(),data:ye().optional()})}).strict();var qi=t=>Ih.safeParse(t).success;var Ua=de([Ww,Xw,zh,Ih]),RY=de([zh,Ih]),mu=Ve.strict(),xA=Ct.extend({requestId:fu.optional(),reason:v().optional()}),hu=Nt.extend({method:A("notifications/cancelled"),params:xA}),bA=z({src:v(),mimeType:v().optional(),sizes:I(v()).optional(),theme:Qe(["light","dark"]).optional()}),qa=z({icons:I(bA).optional()}),Ui=z({name:v(),title:v().optional()}),Qw=Ui.extend({...Ui.shape,...qa.shape,version:v(),websiteUrl:v().optional(),description:v().optional()}),_A=Ra(z({applyDefaults:le().optional()}),_e(v(),ye())),wA=uu(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Ra(z({form:_A.optional(),url:Ze.optional()}),_e(v(),ye()).optional())),$A=Oe({list:Ze.optional(),cancel:Ze.optional(),requests:Oe({sampling:Oe({createMessage:Ze.optional()}).optional(),elicitation:Oe({create:Ze.optional()}).optional()}).optional()}),kA=Oe({list:Ze.optional(),cancel:Ze.optional(),requests:Oe({tools:Oe({call:Ze.optional()}).optional()}).optional()}),SA=z({experimental:_e(v(),Ze).optional(),sampling:z({context:Ze.optional(),tools:Ze.optional()}).optional(),elicitation:wA.optional(),roots:z({listChanged:le().optional()}).optional(),tasks:$A.optional()}),EA=kt.extend({protocolVersion:v(),capabilities:SA,clientInfo:Qw}),gu=Fe.extend({method:A("initialize"),params:EA}),Ph=t=>gu.safeParse(t).success,TA=z({experimental:_e(v(),Ze).optional(),logging:Ze.optional(),completions:Ze.optional(),prompts:z({listChanged:le().optional()}).optional(),resources:z({subscribe:le().optional(),listChanged:le().optional()}).optional(),tools:z({listChanged:le().optional()}).optional(),tasks:kA.optional()}),zA=Ve.extend({protocolVersion:v(),capabilities:TA,serverInfo:Qw,instructions:v().optional()}),jh=Nt.extend({method:A("notifications/initialized"),params:Ct.optional()});var vu=Fe.extend({method:A("ping"),params:kt.optional()}),IA=z({progress:oe(),total:$e(oe()),message:$e(v())}),PA=z({...Ct.shape,...IA.shape,progressToken:Gw}),yu=Nt.extend({method:A("notifications/progress"),params:PA}),jA=kt.extend({cursor:Jw.optional()}),Ma=Fe.extend({params:jA.optional()}),La=Ve.extend({nextCursor:Jw.optional()}),OA=Qe(["working","input_required","completed","failed","cancelled"]),Za=z({taskId:v(),status:OA,ttl:de([oe(),Aa()]),createdAt:v(),lastUpdatedAt:v(),pollInterval:$e(oe()),statusMessage:$e(v())}),Mi=Ve.extend({task:Za}),AA=Ct.merge(Za),Fa=Nt.extend({method:A("notifications/tasks/status"),params:AA}),xu=Fe.extend({method:A("tasks/get"),params:kt.extend({taskId:v()})}),bu=Ve.merge(Za),_u=Fe.extend({method:A("tasks/result"),params:kt.extend({taskId:v()})}),CY=Ve.loose(),wu=Ma.extend({method:A("tasks/list")}),$u=La.extend({tasks:I(Za)}),ku=Fe.extend({method:A("tasks/cancel"),params:kt.extend({taskId:v()})}),e1=Ve.merge(Za),t1=z({uri:v(),mimeType:$e(v()),_meta:_e(v(),ye()).optional()}),r1=t1.extend({text:v()}),Oh=v().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),n1=t1.extend({blob:Oh}),Va=Qe(["user","assistant"]),Li=z({audience:I(Va).optional(),priority:oe().min(0).max(1).optional(),lastModified:Dn.datetime({offset:!0}).optional()}),i1=z({...Ui.shape,...qa.shape,uri:v(),description:$e(v()),mimeType:$e(v()),annotations:Li.optional(),_meta:$e(Oe({}))}),RA=z({...Ui.shape,...qa.shape,uriTemplate:v(),description:$e(v()),mimeType:$e(v()),annotations:Li.optional(),_meta:$e(Oe({}))}),CA=Ma.extend({method:A("resources/list")}),NA=La.extend({resources:I(i1)}),DA=Ma.extend({method:A("resources/templates/list")}),UA=La.extend({resourceTemplates:I(RA)}),Ah=kt.extend({uri:v()}),qA=Ah,MA=Fe.extend({method:A("resources/read"),params:qA}),LA=Ve.extend({contents:I(de([r1,n1]))}),ZA=Nt.extend({method:A("notifications/resources/list_changed"),params:Ct.optional()}),FA=Ah,VA=Fe.extend({method:A("resources/subscribe"),params:FA}),BA=Ah,HA=Fe.extend({method:A("resources/unsubscribe"),params:BA}),GA=Ct.extend({uri:v()}),JA=Nt.extend({method:A("notifications/resources/updated"),params:GA}),KA=z({name:v(),description:$e(v()),required:$e(le())}),WA=z({...Ui.shape,...qa.shape,description:$e(v()),arguments:$e(I(KA)),_meta:$e(Oe({}))}),XA=Ma.extend({method:A("prompts/list")}),YA=La.extend({prompts:I(WA)}),QA=kt.extend({name:v(),arguments:_e(v(),v()).optional()}),eR=Fe.extend({method:A("prompts/get"),params:QA}),Rh=z({type:A("text"),text:v(),annotations:Li.optional(),_meta:_e(v(),ye()).optional()}),Ch=z({type:A("image"),data:Oh,mimeType:v(),annotations:Li.optional(),_meta:_e(v(),ye()).optional()}),Nh=z({type:A("audio"),data:Oh,mimeType:v(),annotations:Li.optional(),_meta:_e(v(),ye()).optional()}),tR=z({type:A("tool_use"),name:v(),id:v(),input:_e(v(),ye()),_meta:_e(v(),ye()).optional()}),rR=z({type:A("resource"),resource:de([r1,n1]),annotations:Li.optional(),_meta:_e(v(),ye()).optional()}),nR=i1.extend({type:A("resource_link")}),Dh=de([Rh,Ch,Nh,nR,rR]),iR=z({role:Va,content:Dh}),oR=Ve.extend({description:v().optional(),messages:I(iR)}),aR=Nt.extend({method:A("notifications/prompts/list_changed"),params:Ct.optional()}),sR=z({title:v().optional(),readOnlyHint:le().optional(),destructiveHint:le().optional(),idempotentHint:le().optional(),openWorldHint:le().optional()}),cR=z({taskSupport:Qe(["required","optional","forbidden"]).optional()}),o1=z({...Ui.shape,...qa.shape,description:v().optional(),inputSchema:z({type:A("object"),properties:_e(v(),Ze).optional(),required:I(v()).optional()}).catchall(ye()),outputSchema:z({type:A("object"),properties:_e(v(),Ze).optional(),required:I(v()).optional()}).catchall(ye()).optional(),annotations:sR.optional(),execution:cR.optional(),_meta:_e(v(),ye()).optional()}),Ba=Ma.extend({method:A("tools/list")}),uR=La.extend({tools:I(o1)}),Su=Ve.extend({content:I(Dh).default([]),structuredContent:_e(v(),ye()).optional(),isError:le().optional()}),NY=Su.or(Ve.extend({toolResult:ye()})),lR=Da.extend({name:v(),arguments:_e(v(),ye()).optional()}),Un=Fe.extend({method:A("tools/call"),params:lR}),pR=Nt.extend({method:A("notifications/tools/list_changed"),params:Ct.optional()}),DY=z({autoRefresh:le().default(!0),debounceMs:oe().int().nonnegative().default(300)}),Ha=Qe(["debug","info","notice","warning","error","critical","alert","emergency"]),dR=kt.extend({level:Ha}),Uh=Fe.extend({method:A("logging/setLevel"),params:dR}),fR=Ct.extend({level:Ha,logger:v().optional(),data:ye()}),mR=Nt.extend({method:A("notifications/message"),params:fR}),hR=z({name:v().optional()}),gR=z({hints:I(hR).optional(),costPriority:oe().min(0).max(1).optional(),speedPriority:oe().min(0).max(1).optional(),intelligencePriority:oe().min(0).max(1).optional()}),vR=z({mode:Qe(["auto","required","none"]).optional()}),yR=z({type:A("tool_result"),toolUseId:v().describe("The unique identifier for the corresponding tool call."),content:I(Dh).default([]),structuredContent:z({}).loose().optional(),isError:le().optional(),_meta:_e(v(),ye()).optional()}),xR=au("type",[Rh,Ch,Nh]),pu=au("type",[Rh,Ch,Nh,tR,yR]),bR=z({role:Va,content:de([pu,I(pu)]),_meta:_e(v(),ye()).optional()}),_R=Da.extend({messages:I(bR),modelPreferences:gR.optional(),systemPrompt:v().optional(),includeContext:Qe(["none","thisServer","allServers"]).optional(),temperature:oe().optional(),maxTokens:oe().int(),stopSequences:I(v()).optional(),metadata:Ze.optional(),tools:I(o1).optional(),toolChoice:vR.optional()}),wR=Fe.extend({method:A("sampling/createMessage"),params:_R}),qh=Ve.extend({model:v(),stopReason:$e(Qe(["endTurn","stopSequence","maxTokens"]).or(v())),role:Va,content:xR}),Mh=Ve.extend({model:v(),stopReason:$e(Qe(["endTurn","stopSequence","maxTokens","toolUse"]).or(v())),role:Va,content:de([pu,I(pu)])}),$R=z({type:A("boolean"),title:v().optional(),description:v().optional(),default:le().optional()}),kR=z({type:A("string"),title:v().optional(),description:v().optional(),minLength:oe().optional(),maxLength:oe().optional(),format:Qe(["email","uri","date","date-time"]).optional(),default:v().optional()}),SR=z({type:Qe(["number","integer"]),title:v().optional(),description:v().optional(),minimum:oe().optional(),maximum:oe().optional(),default:oe().optional()}),ER=z({type:A("string"),title:v().optional(),description:v().optional(),enum:I(v()),default:v().optional()}),TR=z({type:A("string"),title:v().optional(),description:v().optional(),oneOf:I(z({const:v(),title:v()})),default:v().optional()}),zR=z({type:A("string"),title:v().optional(),description:v().optional(),enum:I(v()),enumNames:I(v()).optional(),default:v().optional()}),IR=de([ER,TR]),PR=z({type:A("array"),title:v().optional(),description:v().optional(),minItems:oe().optional(),maxItems:oe().optional(),items:z({type:A("string"),enum:I(v())}),default:I(v()).optional()}),jR=z({type:A("array"),title:v().optional(),description:v().optional(),minItems:oe().optional(),maxItems:oe().optional(),items:z({anyOf:I(z({const:v(),title:v()}))}),default:I(v()).optional()}),OR=de([PR,jR]),AR=de([zR,IR,OR]),RR=de([AR,$R,kR,SR]),CR=Da.extend({mode:A("form").optional(),message:v(),requestedSchema:z({type:A("object"),properties:_e(v(),RR),required:I(v()).optional()})}),NR=Da.extend({mode:A("url"),message:v(),elicitationId:v(),url:v().url()}),DR=de([CR,NR]),UR=Fe.extend({method:A("elicitation/create"),params:DR}),qR=Ct.extend({elicitationId:v()}),MR=Nt.extend({method:A("notifications/elicitation/complete"),params:qR}),Eu=Ve.extend({action:Qe(["accept","decline","cancel"]),content:uu(t=>t===null?void 0:t,_e(v(),de([v(),oe(),le(),I(v())])).optional())}),LR=z({type:A("ref/resource"),uri:v()});var ZR=z({type:A("ref/prompt"),name:v()}),FR=kt.extend({ref:de([ZR,LR]),argument:z({name:v(),value:v()}),context:z({arguments:_e(v(),v()).optional()}).optional()}),VR=Fe.extend({method:A("completion/complete"),params:FR});var BR=Ve.extend({completion:Oe({values:I(v()).max(100),total:$e(oe().int()),hasMore:$e(le())})}),HR=z({uri:v().startsWith("file://"),name:v().optional(),_meta:_e(v(),ye()).optional()}),GR=Fe.extend({method:A("roots/list"),params:kt.optional()}),Lh=Ve.extend({roots:I(HR)}),JR=Nt.extend({method:A("notifications/roots/list_changed"),params:Ct.optional()}),UY=de([vu,gu,VR,Uh,eR,XA,CA,DA,MA,VA,HA,Un,Ba,xu,_u,wu,ku]),qY=de([hu,yu,jh,JR,Fa]),MY=de([mu,qh,Mh,Eu,Lh,bu,$u,Mi]),LY=de([vu,wR,UR,GR,xu,_u,wu,ku]),ZY=de([hu,yu,mR,JA,ZA,pR,aR,Fa,MR]),FY=de([mu,zA,BR,oR,YA,NA,UA,LA,Su,uR,bu,$u,Mi]),K=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===ne.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new Sh(i.elicitations,r)}return new t(e,r,n)}},Sh=class extends K{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(ne.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function un(t){return t==="completed"||t==="failed"||t==="cancelled"}var KR=Symbol("Let zodToJsonSchema decide on which parser to use");var $Q=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Zh(t){let r=Xc(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=V0(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Fh(t,e){let r=an(t,e);if(!r.success)throw r.error;return r.data}var t8=6e4,Tu=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(hu,r=>{this._oncancel(r)}),this.setNotificationHandler(yu,r=>{this._onprogress(r)}),this.setRequestHandler(vu,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(xu,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new K(ne.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(_u,async(r,n)=>{let i=async()=>{let o=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(o,n.sessionId);){if(s.type==="response"||s.type==="error"){let u=s.message,c=u.id,l=this._requestResolvers.get(c);if(l)if(this._requestResolvers.delete(c),s.type==="response")l(u);else{let p=u,d=new K(p.error.code,p.error.message,p.error.data);l(d)}else{let p=s.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${c}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(o,n.sessionId);if(!a)throw new K(ne.InvalidParams,`Task not found: ${o}`);if(!un(a.status))return await this._waitForTaskUpdate(o,n.signal),await i();if(un(a.status)){let s=await this._taskStore.getTaskResult(o,n.sessionId);return this._clearTaskQueue(o),{...s,_meta:{...s._meta,[sn]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(wu,async(r,n)=>{try{let{tasks:i,nextCursor:o}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:o,_meta:{}}}catch(i){throw new K(ne.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(ku,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new K(ne.InvalidParams,`Task not found: ${r.params.taskId}`);if(un(i.status))throw new K(ne.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new K(ne.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...o}}catch(i){throw i instanceof K?i:new K(ne.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,i,o=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:o,onTimeout:i})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),K.fromError(ne.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=o=>{n?.(o),this._onerror(o)};let i=this._transport?.onmessage;this._transport.onmessage=(o,a)=>{i?.(o,a),Dr(o)||qi(o)?this._onresponse(o):cn(o)?this._onrequest(o,a):Yw(o)?this._onnotification(o):this._onerror(new Error(`Unknown message type: ${JSON.stringify(o)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=K.fromError(ne.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,o=e.params?._meta?.[sn]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:ne.MethodNotFound,message:"Method not found"}};o&&this._taskMessageQueue?this._enqueueTaskMessage(o,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):i?.send(l).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let s=Kw(e.params)?e.params.task:void 0,u=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,c={signal:a.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{let p={relatedRequestId:e.id};o&&(p.relatedTask={taskId:o}),await this.notification(l,p)},sendRequest:async(l,p,d)=>{let f={...d,relatedRequestId:e.id};o&&!f.relatedTask&&(f.relatedTask={taskId:o});let m=f.relatedTask?.taskId??o;return m&&u&&await u.updateTaskStatus(m,"input_required"),await this.request(l,p,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:o,taskStore:u,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,c)).then(async l=>{if(a.signal.aborted)return;let p={result:l,jsonrpc:"2.0",id:e.id};o&&this._taskMessageQueue?await this._enqueueTaskMessage(o,{type:"response",message:p,timestamp:Date.now()},i?.sessionId):await i?.send(p)},async l=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:ne.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};o&&this._taskMessageQueue?await this._enqueueTaskMessage(o,{type:"error",message:p,timestamp:Date.now()},i?.sessionId):await i?.send(p)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),o=this._progressHandlers.get(i);if(!o){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(u){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),a(u);return}o(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Dr(e))n(e);else{let a=new K(e.error.code,e.error.message,e.error.data);n(a)}return}let i=this._responseHandlers.get(r);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let o=!1;if(Dr(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(o=!0,this._taskProgressTokens.set(s.taskId,r))}}if(o||this._progressHandlers.delete(r),Dr(e))i(e);else{let a=K.fromError(e.error.code,e.error.message,e.error.data);i(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof K?a:new K(ne.InternalError,String(a))}}return}let o;try{let a=await this.request(e,Mi,n);if(a.task)o=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new K(ne.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:o},n);if(yield{type:"taskStatus",task:s},un(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:o},r,n)}:s.status==="failed"?yield{type:"error",error:new K(ne.InternalError,`Task ${o} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new K(ne.InternalError,`Task ${o} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:o},r,n)};return}let u=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(c=>setTimeout(c,u)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof K?a:new K(ne.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:o,onresumptiontoken:a,task:s,relatedTask:u}=n??{};return new Promise((c,l)=>{let p=w=>{l(w)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(w){p(w);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),s&&(f.params={...f.params,task:s}),u&&(f.params={...f.params,_meta:{...f.params?._meta||{},[sn]:u}});let m=w=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(w)}},{relatedRequestId:i,resumptionToken:o,onresumptiontoken:a}).catch(k=>this._onerror(new Error(`Failed to send cancellation: ${k}`)));let $=w instanceof K?w:new K(ne.RequestTimeout,String(w));l($)};this._responseHandlers.set(d,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return l(w);try{let $=an(r,w.result);$.success?c($.data):l($.error)}catch($){l($)}}}),n?.signal?.addEventListener("abort",()=>{m(n?.signal?.reason)});let h=n?.timeout??t8,g=()=>m(K.fromError(ne.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(d,h,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let x=u?.taskId;if(x){let w=$=>{let k=this._responseHandlers.get(d);k?k($):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,w),this._enqueueTaskMessage(x,{type:"request",message:f,timestamp:Date.now()}).catch($=>{this._cleanupTimeout(d),l($)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:o,onresumptiontoken:a}).catch(w=>{this._cleanupTimeout(d),l(w)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},bu,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},$u,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},e1,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[sn]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[sn]:r.relatedTask}}}),this._transport?.send(s,r).catch(u=>this._onerror(u))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[sn]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=Zh(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,o)=>{let a=Fh(e,i);return Promise.resolve(r(a,o))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=Zh(e);this._notificationHandlers.set(n,i=>{let o=Fh(e,i);return Promise.resolve(r(o))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,i)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let i of n)if(i.type==="request"&&cn(i.message)){let o=i.message.id,a=this._requestResolvers.get(o);a?(a(new K(ne.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(o)):this._onerror(new Error(`Resolver missing for request ${o} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,o)=>{if(r.aborted){o(new K(ne.InvalidRequest,"Request cancelled"));return}let a=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(a),o(new K(ne.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await n.createTask(i,e.id,{method:e.method,params:e.params},r)},getTask:async i=>{let o=await n.getTask(i,r);if(!o)throw new K(ne.InvalidParams,"Failed to retrieve task: Task not found");return o},storeTaskResult:async(i,o,a)=>{await n.storeTaskResult(i,o,a,r);let s=await n.getTask(i,r);if(s){let u=Fa.parse({method:"notifications/tasks/status",params:s});await this.notification(u),un(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,o,a)=>{let s=await n.getTask(i,r);if(!s)throw new K(ne.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(un(s.status))throw new K(ne.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${o}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,o,a,r);let u=await n.getTask(i,r);if(u){let c=Fa.parse({method:"notifications/tasks/status",params:u});await this.notification(c),un(u.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function a1(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function s1(t,e){let r={...t};for(let n in e){let i=n,o=e[i];if(o===void 0)continue;let a=r[i];a1(a)&&a1(o)?r[i]={...a,...o}:r[i]=o}return r}var Gk=Ce(zv(),1),Jk=Ce(Hk(),1);function BU(){let t=new Gk.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Jk.default)(t),t}var ll=class{constructor(e){this._ajv=e??BU()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var pl=class{constructor(e){this._server=e}requestStream(e,r,n){return this._server.requestStream(e,r,n)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._server.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._server.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._server.cancelTask({taskId:e},r)}};function Kk(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Wk(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var io=class extends Tu{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Ha.options.map((n,i)=>[n,i])),this.isMessageIgnored=(n,i)=>{let o=this._loggingLevels.get(i);return o?this.LOG_LEVEL_SEVERITY.get(n)<this.LOG_LEVEL_SEVERITY.get(o):!1},this._capabilities=r?.capabilities??{},this._instructions=r?.instructions,this._jsonSchemaValidator=r?.jsonSchemaValidator??new ll,this.setRequestHandler(gu,n=>this._oninitialize(n)),this.setNotificationHandler(jh,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Uh,async(n,i)=>{let o=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=n.params,s=Ha.safeParse(a);return s.success&&this._loggingLevels.set(o,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new pl(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=s1(this._capabilities,e)}setRequestHandler(e,r){let i=Xc(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let o;if(Ni(i)){let s=i;o=s._zod?.def?.value??s.value}else{let s=i;o=s._def?.value??s.value}if(typeof o!="string")throw new Error("Schema method literal must be a string");if(o==="tools/call"){let s=async(u,c)=>{let l=an(Un,u);if(!l.success){let m=l.error instanceof Error?l.error.message:String(l.error);throw new K(ne.InvalidParams,`Invalid tools/call request: ${m}`)}let{params:p}=l.data,d=await Promise.resolve(r(u,c));if(p.task){let m=an(Mi,d);if(!m.success){let h=m.error instanceof Error?m.error.message:String(m.error);throw new K(ne.InvalidParams,`Invalid task creation result: ${h}`)}return m.data}let f=an(Su,d);if(!f.success){let m=f.error instanceof Error?f.error.message:String(f.error);throw new K(ne.InvalidParams,`Invalid tools/call result: ${m}`)}return f.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,r)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){Wk(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Kk(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Na.includes(r)?r:Eh,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},mu)}async createMessage(e,r){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let n=e.messages[e.messages.length-1],i=Array.isArray(n.content)?n.content:[n.content],o=i.some(c=>c.type==="tool_result"),a=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],u=s.some(c=>c.type==="tool_use");if(o){if(i.some(c=>c.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let c=new Set(s.filter(p=>p.type==="tool_use").map(p=>p.id)),l=new Set(i.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(c.size!==l.size||![...c].every(p=>l.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},Mh,r):this.request({method:"sampling/createMessage",params:e},qh,r)}async elicitInput(e,r){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=e;return this.request({method:"elicitation/create",params:i},Eu,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=e.mode==="form"?e:{...e,mode:"form"},o=await this.request({method:"elicitation/create",params:i},Eu,r);if(o.action==="accept"&&o.content&&i.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(i.requestedSchema)(o.content);if(!s.valid)throw new K(ne.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof K?a:new K(ne.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return o}}}createElicitationCompletionNotifier(e,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},r)}async listRoots(e,r){return this.request({method:"roots/list",params:e},Lh,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var Nv=Ce(require("node:process"),1);var dl=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
98
98
|
`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),HU(r)}clear(){this._buffer=void 0}};function HU(t){return Ua.parse(JSON.parse(t))}function Xk(t){return JSON.stringify(t)+`
|
|
99
|
-
`}var fl=class{constructor(e=Nv.default.stdin,r=Nv.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new dl,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let n=Xk(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var GU="https://app.lexic.io/api";function Yk(){let t=process.env.LEXIC_API_URL||GU,e=process.env.LEXIC_PAT;if(!e)throw new Error("LEXIC_PAT is required");if(!e.startsWith("pat_"))throw new Error("LEXIC_PAT must start with pat_");return{apiUrl:t,pat:e,logLevel:process.env.LOG_LEVEL||"info"}}var JU="https://app.lexic.io/api";var KU="localhost",WU=["lexic:read","lexic:write","lexic:admin"];function XU(){let t=process.env.LEXIC_PAT;if(!t)throw new Error("LEXIC_PAT is required for stdio transport");if(!t.startsWith("pat_"))throw new Error("LEXIC_PAT must start with pat_");return{pat:t}}function YU(){let t=process.env.LEXIC_SUPABASE_URL,e=process.env.LEXIC_SUPABASE_ANON_KEY,r=process.env.LEXIC_SUPABASE_JWT_SECRET;if(!t)throw new Error("LEXIC_SUPABASE_URL is required for HTTP transport");if(!e)throw new Error("LEXIC_SUPABASE_ANON_KEY is required for HTTP transport");if(!r)throw new Error("LEXIC_SUPABASE_JWT_SECRET is required for HTTP transport");try{new URL(t)}catch{throw new Error("LEXIC_SUPABASE_URL must be a valid URL")}let n=parseInt(process.env.LEXIC_HTTP_PORT||String(3e3),10);if(isNaN(n)||n<1||n>65535)throw new Error("LEXIC_HTTP_PORT must be a valid port number (1-65535)");let i=process.env.LEXIC_HTTP_HOST||KU,o=process.env.LEXIC_BASE_URL;if(o)try{new URL(o)}catch{throw new Error("LEXIC_BASE_URL must be a valid URL")}let a=process.env.LEXIC_OAUTH_SCOPES,s=WU;if(a){let u=a.split(",").map(l=>l.trim()),c=new Set(["lexic:read","lexic:write","lexic:admin"]);for(let l of u)if(!c.has(l))throw new Error(`Invalid scope: ${l}. Valid scopes are: ${Array.from(c).join(", ")}`);s=u}return{supabaseUrl:t,supabaseAnonKey:e,supabaseJwtSecret:r,httpPort:n,httpHost:i,baseUrl:o,scopesSupported:s}}function Dv(){let e=process.env.LEXIC_TRANSPORT?.toLowerCase()==="http"?"http":"stdio",r=process.env.LEXIC_API_URL||JU,n=process.env.LOG_LEVEL||"info",i={transport:e,apiUrl:r,logLevel:n};return e==="stdio"?i.patConfig=XU():i.oauthConfig=YU(),i}function Uv(t){return t.transport==="http"&&t.oauthConfig!==void 0}function qv(t){return t.baseUrl?t.baseUrl:`${t.httpHost==="localhost"||t.httpHost==="127.0.0.1"?"http":"https"}://${t.httpHost}:${t.httpPort}`}function Mv(t){let e=t.replace(/\/$/,"");return{authorizationUrl:`${e}/auth/v1/authorize`,tokenUrl:`${e}/auth/v1/token`,userInfoUrl:`${e}/auth/v1/user`,jwksUrl:`${e}/auth/v1/.well-known/jwks.json`}}function ml(t){let r=(t||process.env.LEXIC_API_URL||"https://app.lexic.io/api").replace(/\/api\/?$/,"");return{authorizationUrl:`${r}/cli/auth`,tokenUrl:`${r}/api/auth/token`}}var Lv={debug:0,info:1,warn:2,error:3},Zv=class{level="info";setLevel(e){Lv[e]!==void 0&&(this.level=e)}getLevel(){return this.level}shouldLog(e){return Lv[e]>=Lv[this.level]}format(e,r,n){let o=`[${new Date().toISOString()}] [${e.toUpperCase()}] ${r}`;if(n){let a={...n};return"pat"in a&&(a.pat="[REDACTED]"),"token"in a&&(a.token="[REDACTED]"),"authorization"in a&&(a.authorization="[REDACTED]"),`${o} ${JSON.stringify(a)}`}return o}debug(e,r){this.shouldLog("debug")&&console.error(this.format("debug",e,r))}info(e,r){this.shouldLog("info")&&console.error(this.format("info",e,r))}warn(e,r){this.shouldLog("warn")&&console.error(this.format("warn",e,r))}error(e,r){this.shouldLog("error")&&console.error(this.format("error",e,r))}},_=new Zv;var oo=class extends Error{statusCode;correlationId;constructor(e,r,n){super(e),this.statusCode=r,this.correlationId=n,this.name="LexicApiError"}};var QU="0.2.2";function or(t){return typeof t=="object"&&t!==null&&"_meta"in t&&typeof t._meta=="object"&&t._meta!==null&&t._meta.dataType==="user_content"}var e5=3e4,Qk=1,t5=1e3;function eS(t){return hl({apiUrl:t.apiUrl,auth:{type:"pat",token:t.pat}})}function hl(t){let{apiUrl:e,lexiconId:r}=t,n=t.auth.token,i=t.auth.type,o=null;function a(){let u={Authorization:`Bearer ${n}`,"Content-Type":"application/json","X-Client-Version":`lexic-mcp/${QU}`};return r&&i==="oauth"&&(u["X-Lexicon-Id"]=r),u}async function s(u,c,l=Qk){let p=new AbortController,d=setTimeout(()=>p.abort(),e5);try{let f=await fetch(u,{...c,signal:p.signal,headers:{...a(),...c.headers}});if(clearTimeout(d),f.status>=500&&l>0){let m=t5*Math.pow(2,Qk-l);return _.debug("Retrying request after server error",{url:u,status:f.status,delay:m,retriesLeft:l-1}),await r5(m),s(u,c,l-1)}return f}catch(f){throw clearTimeout(d),f instanceof Error&&f.name==="AbortError"?new oo("Request timeout",408):f}}return{async executeTool(u,c){try{_.debug("Executing tool via API",{toolName:u,args:c});let l=await s(`${e}/mcp/execute`,{method:"POST",body:JSON.stringify({tool:u,arguments:c})}),p=await l.json();return l.ok?{success:p.success??!0,data:p.data,error:p.error}:{success:!1,error:p.error||`Tool execution failed with status ${l.status}`}}catch(l){return _.error("Tool execution failed",{toolName:u,error:l instanceof Error?l.message:String(l)}),{success:!1,error:l instanceof Error?l.message:"Unknown error"}}},async validateConnection(){try{let u=await fetch(`${e}/mcp/validate`,{method:"GET",headers:a()}),c=await u.json();return u.ok?(o={valid:c.valid??!0,lexiconId:c.lexiconId,userId:c.userId,isUserScoped:c.isUserScoped??!c.lexiconId,expiresAt:c.expiresAt?new Date(c.expiresAt):null},o):(o={valid:!1,isUserScoped:!1,error:c.error||"Authentication failed"},o)}catch(u){return o={valid:!1,isUserScoped:!1,error:`Network error: ${u instanceof Error?u.message:String(u)}`},o}},async fetchTriggers(u){let c=new URL(`${e}/mcp/triggers`);u!==void 0&&c.searchParams.set("since",u.toString());try{let l=await s(c.toString(),{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"}});if(!l.ok)throw _.warn("Failed to fetch triggers",{status:l.status,statusText:l.statusText}),new oo(`HTTP ${l.status}`,l.status);return await l.json()}catch(l){throw _.error("Trigger fetch error",{error:l instanceof Error?l.message:String(l)}),l}},async fetchDomains(u){let c=new URL(`${e}/mcp/domains`);u!==void 0&&c.searchParams.set("since",u.toString());try{let l=await s(c.toString(),{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"}});if(!l.ok)throw _.warn("Failed to fetch domains",{status:l.status,statusText:l.statusText}),new oo(`HTTP ${l.status}`,l.status);return await l.json()}catch(l){throw _.error("Domain fetch error",{error:l instanceof Error?l.message:String(l)}),l}},isUserScoped(){return o?.isUserScoped??!1},getCurrentLexiconId(){return o?.lexiconId},getExpiresAt(){return o?.expiresAt},updateToken(u){n=u,_.debug("Token updated")},getAuthType(){return i}}}function r5(t){return new Promise(e=>setTimeout(e,t))}var vt=require("fs"),tS=require("os"),Fv=require("path");var n5=".lexic",i5="credentials.json",gl=1;function Vv(){return(0,Fv.join)((0,tS.homedir)(),n5)}function vl(){return(0,Fv.join)(Vv(),i5)}function o5(){let t=Vv();(0,vt.existsSync)(t)||((0,vt.mkdirSync)(t,{recursive:!0,mode:448}),_.debug("Created Lexic config directory",{path:t}))}function ao(){let t=vl();if(!(0,vt.existsSync)(t))return{version:gl,credentials:{}};try{let e=(0,vt.readFileSync)(t,"utf8"),r=JSON.parse(e);return r.version!==gl&&_.warn("Credentials file version mismatch, may need migration",{fileVersion:r.version,currentVersion:gl}),r}catch(e){return _.warn("Failed to load credentials file, starting fresh",{error:e instanceof Error?e.message:String(e)}),{version:gl,credentials:{}}}}function Bv(t){o5();let e=vl(),r=JSON.stringify(t,null,2);(0,vt.writeFileSync)(e,r,{encoding:"utf8",mode:384});try{(0,vt.chmodSync)(e,384)}catch{}_.debug("Saved credentials file",{path:e})}function Hv(t,e,r){let n=ao(),i=t.replace(/\/$/,""),o={access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,supabase_url:i,stored_at:Math.floor(Date.now()/1e3),user_id:r?.user_id,email:r?.email};e.expires_in&&(o.expires_at=o.stored_at+e.expires_in),n.credentials[i]=o,n.default_project=i,Bv(n),_.info("Stored OAuth credentials",{supabaseUrl:i,expiresAt:o.expires_at?new Date(o.expires_at*1e3).toISOString():"unknown"})}function ar(t){let e=ao(),r=t?.replace(/\/$/,"")||e.default_project;if(!r){_.debug("No Supabase URL provided and no default project set");return}let n=e.credentials[r];if(!n){_.debug("No credentials found for project",{supabaseUrl:r});return}return n}function yn(t){let e=ar(t);if(!e)return!1;if(e.expires_at){let r=Math.floor(Date.now()/1e3),n=5*60,i=e.expires_at-n;if(_.debug("Checking credential validity",{expiresAt:e.expires_at,expiresAtDate:new Date(e.expires_at*1e3).toISOString(),now:r,nowDate:new Date(r*1e3).toISOString(),expiresWithBuffer:i,isExpired:i<r}),i<r)return _.debug("Credentials expired or expiring soon",{expiresAt:new Date(e.expires_at*1e3).toISOString()}),!1}return!0}function Kn(t){let e=ar(t);if(!e||!e.expires_at||!e.refresh_token)return!1;let r=Math.floor(Date.now()/1e3),n=5*60;return e.expires_at-n<r}function $s(t,e){let r=ao(),n=t.replace(/\/$/,""),i=r.credentials[n];if(!i){_.warn("Cannot update tokens - no existing credentials",{supabaseUrl:n});return}i.access_token=e.access_token,i.token_type=e.token_type,i.stored_at=Math.floor(Date.now()/1e3),e.refresh_token&&(i.refresh_token=e.refresh_token),e.expires_in&&(i.expires_at=i.stored_at+e.expires_in),r.credentials[n]=i,Bv(r),_.info("Updated OAuth tokens",{supabaseUrl:n,expiresAt:i.expires_at?new Date(i.expires_at*1e3).toISOString():"unknown"})}function Gv(t){let e=ao(),r=t.replace(/\/$/,"");if(e.credentials[r]){if(delete e.credentials[r],e.default_project===r){let n=Object.keys(e.credentials);e.default_project=n.length>0?n[0]:void 0}Bv(e),_.info("Removed credentials",{supabaseUrl:r})}}function Jv(){let t=vl();(0,vt.existsSync)(t)&&((0,vt.unlinkSync)(t),_.info("Cleared all stored credentials"))}function yl(){let t=ao();return Object.keys(t.credentials)}function xl(){return ao().default_project}var ry=require("http"),ty=require("url"),sS=require("child_process"),cS=require("os");var ks=require("crypto");function rS(){return(0,ks.randomBytes)(32).toString("base64url")}function nS(t){return(0,ks.createHash)("sha256").update(t,"ascii").digest().toString("base64url")}function Kv(){let t=rS(),e=nS(t);return{codeVerifier:t,codeChallenge:e}}function Wv(){return(0,ks.randomBytes)(16).toString("base64url")}function Xv(){return`<!DOCTYPE html>
|
|
99
|
+
`}var fl=class{constructor(e=Nv.default.stdin,r=Nv.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new dl,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let n=Xk(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var GU="https://app.lexic.io/api";function Yk(){let t=process.env.LEXIC_API_URL||GU,e=process.env.LEXIC_PAT;if(!e)throw new Error("LEXIC_PAT is required");if(!e.startsWith("pat_"))throw new Error("LEXIC_PAT must start with pat_");return{apiUrl:t,pat:e,logLevel:process.env.LOG_LEVEL||"info"}}var JU="https://app.lexic.io/api";var KU="localhost",WU=["lexic:read","lexic:write","lexic:admin"];function XU(){let t=process.env.LEXIC_PAT;if(!t)throw new Error("LEXIC_PAT is required for stdio transport");if(!t.startsWith("pat_"))throw new Error("LEXIC_PAT must start with pat_");return{pat:t}}function YU(){let t=process.env.LEXIC_SUPABASE_URL,e=process.env.LEXIC_SUPABASE_ANON_KEY,r=process.env.LEXIC_SUPABASE_JWT_SECRET;if(!t)throw new Error("LEXIC_SUPABASE_URL is required for HTTP transport");if(!e)throw new Error("LEXIC_SUPABASE_ANON_KEY is required for HTTP transport");if(!r)throw new Error("LEXIC_SUPABASE_JWT_SECRET is required for HTTP transport");try{new URL(t)}catch{throw new Error("LEXIC_SUPABASE_URL must be a valid URL")}let n=parseInt(process.env.LEXIC_HTTP_PORT||String(3e3),10);if(isNaN(n)||n<1||n>65535)throw new Error("LEXIC_HTTP_PORT must be a valid port number (1-65535)");let i=process.env.LEXIC_HTTP_HOST||KU,o=process.env.LEXIC_BASE_URL;if(o)try{new URL(o)}catch{throw new Error("LEXIC_BASE_URL must be a valid URL")}let a=process.env.LEXIC_OAUTH_SCOPES,s=WU;if(a){let u=a.split(",").map(l=>l.trim()),c=new Set(["lexic:read","lexic:write","lexic:admin"]);for(let l of u)if(!c.has(l))throw new Error(`Invalid scope: ${l}. Valid scopes are: ${Array.from(c).join(", ")}`);s=u}return{supabaseUrl:t,supabaseAnonKey:e,supabaseJwtSecret:r,httpPort:n,httpHost:i,baseUrl:o,scopesSupported:s}}function Dv(){let e=process.env.LEXIC_TRANSPORT?.toLowerCase()==="http"?"http":"stdio",r=process.env.LEXIC_API_URL||JU,n=process.env.LOG_LEVEL||"info",i={transport:e,apiUrl:r,logLevel:n};return e==="stdio"?i.patConfig=XU():i.oauthConfig=YU(),i}function Uv(t){return t.transport==="http"&&t.oauthConfig!==void 0}function qv(t){return t.baseUrl?t.baseUrl:`${t.httpHost==="localhost"||t.httpHost==="127.0.0.1"?"http":"https"}://${t.httpHost}:${t.httpPort}`}function Mv(t){let e=t.replace(/\/$/,"");return{authorizationUrl:`${e}/auth/v1/authorize`,tokenUrl:`${e}/auth/v1/token`,userInfoUrl:`${e}/auth/v1/user`,jwksUrl:`${e}/auth/v1/.well-known/jwks.json`}}function ml(t){let r=(t||process.env.LEXIC_API_URL||"https://app.lexic.io/api").replace(/\/api\/?$/,"");return{authorizationUrl:`${r}/cli/auth`,tokenUrl:`${r}/api/auth/token`}}var Lv={debug:0,info:1,warn:2,error:3},Zv=class{level="info";setLevel(e){Lv[e]!==void 0&&(this.level=e)}getLevel(){return this.level}shouldLog(e){return Lv[e]>=Lv[this.level]}format(e,r,n){let o=`[${new Date().toISOString()}] [${e.toUpperCase()}] ${r}`;if(n){let a={...n};return"pat"in a&&(a.pat="[REDACTED]"),"token"in a&&(a.token="[REDACTED]"),"authorization"in a&&(a.authorization="[REDACTED]"),`${o} ${JSON.stringify(a)}`}return o}debug(e,r){this.shouldLog("debug")&&console.error(this.format("debug",e,r))}info(e,r){this.shouldLog("info")&&console.error(this.format("info",e,r))}warn(e,r){this.shouldLog("warn")&&console.error(this.format("warn",e,r))}error(e,r){this.shouldLog("error")&&console.error(this.format("error",e,r))}},_=new Zv;var oo=class extends Error{statusCode;correlationId;constructor(e,r,n){super(e),this.statusCode=r,this.correlationId=n,this.name="LexicApiError"}};var QU="0.2.3";function or(t){return typeof t=="object"&&t!==null&&"_meta"in t&&typeof t._meta=="object"&&t._meta!==null&&t._meta.dataType==="user_content"}var e5=3e4,Qk=1,t5=1e3;function eS(t){return hl({apiUrl:t.apiUrl,auth:{type:"pat",token:t.pat}})}function hl(t){let{apiUrl:e,lexiconId:r}=t,n=t.auth.token,i=t.auth.type,o=null;function a(){let u={Authorization:`Bearer ${n}`,"Content-Type":"application/json","X-Client-Version":`lexic-mcp/${QU}`};return r&&i==="oauth"&&(u["X-Lexicon-Id"]=r),u}async function s(u,c,l=Qk){let p=new AbortController,d=setTimeout(()=>p.abort(),e5);try{let f=await fetch(u,{...c,signal:p.signal,headers:{...a(),...c.headers}});if(clearTimeout(d),f.status>=500&&l>0){let m=t5*Math.pow(2,Qk-l);return _.debug("Retrying request after server error",{url:u,status:f.status,delay:m,retriesLeft:l-1}),await r5(m),s(u,c,l-1)}return f}catch(f){throw clearTimeout(d),f instanceof Error&&f.name==="AbortError"?new oo("Request timeout",408):f}}return{async executeTool(u,c){try{_.debug("Executing tool via API",{toolName:u,args:c});let l=await s(`${e}/mcp/execute`,{method:"POST",body:JSON.stringify({tool:u,arguments:c})}),p=await l.json();return l.ok?{success:p.success??!0,data:p.data,error:p.error}:{success:!1,error:p.error||`Tool execution failed with status ${l.status}`}}catch(l){return _.error("Tool execution failed",{toolName:u,error:l instanceof Error?l.message:String(l)}),{success:!1,error:l instanceof Error?l.message:"Unknown error"}}},async validateConnection(){try{let u=await fetch(`${e}/mcp/validate`,{method:"GET",headers:a()}),c=await u.json();return u.ok?(o={valid:c.valid??!0,lexiconId:c.lexiconId,userId:c.userId,isUserScoped:c.isUserScoped??!c.lexiconId,expiresAt:c.expiresAt?new Date(c.expiresAt):null},o):(o={valid:!1,isUserScoped:!1,error:c.error||"Authentication failed"},o)}catch(u){return o={valid:!1,isUserScoped:!1,error:`Network error: ${u instanceof Error?u.message:String(u)}`},o}},async fetchTriggers(u){let c=new URL(`${e}/mcp/triggers`);u!==void 0&&c.searchParams.set("since",u.toString());try{let l=await s(c.toString(),{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"}});if(!l.ok)throw _.warn("Failed to fetch triggers",{status:l.status,statusText:l.statusText}),new oo(`HTTP ${l.status}`,l.status);return await l.json()}catch(l){throw _.error("Trigger fetch error",{error:l instanceof Error?l.message:String(l)}),l}},async fetchDomains(u){let c=new URL(`${e}/mcp/domains`);u!==void 0&&c.searchParams.set("since",u.toString());try{let l=await s(c.toString(),{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"}});if(!l.ok)throw _.warn("Failed to fetch domains",{status:l.status,statusText:l.statusText}),new oo(`HTTP ${l.status}`,l.status);return await l.json()}catch(l){throw _.error("Domain fetch error",{error:l instanceof Error?l.message:String(l)}),l}},isUserScoped(){return o?.isUserScoped??!1},getCurrentLexiconId(){return o?.lexiconId},getExpiresAt(){return o?.expiresAt},updateToken(u){n=u,_.debug("Token updated")},getAuthType(){return i}}}function r5(t){return new Promise(e=>setTimeout(e,t))}var vt=require("fs"),tS=require("os"),Fv=require("path");var n5=".lexic",i5="credentials.json",gl=1;function Vv(){return(0,Fv.join)((0,tS.homedir)(),n5)}function vl(){return(0,Fv.join)(Vv(),i5)}function o5(){let t=Vv();(0,vt.existsSync)(t)||((0,vt.mkdirSync)(t,{recursive:!0,mode:448}),_.debug("Created Lexic config directory",{path:t}))}function ao(){let t=vl();if(!(0,vt.existsSync)(t))return{version:gl,credentials:{}};try{let e=(0,vt.readFileSync)(t,"utf8"),r=JSON.parse(e);return r.version!==gl&&_.warn("Credentials file version mismatch, may need migration",{fileVersion:r.version,currentVersion:gl}),r}catch(e){return _.warn("Failed to load credentials file, starting fresh",{error:e instanceof Error?e.message:String(e)}),{version:gl,credentials:{}}}}function Bv(t){o5();let e=vl(),r=JSON.stringify(t,null,2);(0,vt.writeFileSync)(e,r,{encoding:"utf8",mode:384});try{(0,vt.chmodSync)(e,384)}catch{}_.debug("Saved credentials file",{path:e})}function Hv(t,e,r){let n=ao(),i=t.replace(/\/$/,""),o={access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,supabase_url:i,stored_at:Math.floor(Date.now()/1e3),user_id:r?.user_id,email:r?.email};e.expires_in&&(o.expires_at=o.stored_at+e.expires_in),n.credentials[i]=o,n.default_project=i,Bv(n),_.info("Stored OAuth credentials",{supabaseUrl:i,expiresAt:o.expires_at?new Date(o.expires_at*1e3).toISOString():"unknown"})}function ar(t){let e=ao(),r=t?.replace(/\/$/,"")||e.default_project;if(!r){_.debug("No Supabase URL provided and no default project set");return}let n=e.credentials[r];if(!n){_.debug("No credentials found for project",{supabaseUrl:r});return}return n}function yn(t){let e=ar(t);if(!e)return!1;if(e.expires_at){let r=Math.floor(Date.now()/1e3),n=5*60,i=e.expires_at-n;if(_.debug("Checking credential validity",{expiresAt:e.expires_at,expiresAtDate:new Date(e.expires_at*1e3).toISOString(),now:r,nowDate:new Date(r*1e3).toISOString(),expiresWithBuffer:i,isExpired:i<r}),i<r)return _.debug("Credentials expired or expiring soon",{expiresAt:new Date(e.expires_at*1e3).toISOString()}),!1}return!0}function Kn(t){let e=ar(t);if(!e||!e.expires_at||!e.refresh_token)return!1;let r=Math.floor(Date.now()/1e3),n=5*60;return e.expires_at-n<r}function $s(t,e){let r=ao(),n=t.replace(/\/$/,""),i=r.credentials[n];if(!i){_.warn("Cannot update tokens - no existing credentials",{supabaseUrl:n});return}i.access_token=e.access_token,i.token_type=e.token_type,i.stored_at=Math.floor(Date.now()/1e3),e.refresh_token&&(i.refresh_token=e.refresh_token),e.expires_in&&(i.expires_at=i.stored_at+e.expires_in),r.credentials[n]=i,Bv(r),_.info("Updated OAuth tokens",{supabaseUrl:n,expiresAt:i.expires_at?new Date(i.expires_at*1e3).toISOString():"unknown"})}function Gv(t){let e=ao(),r=t.replace(/\/$/,"");if(e.credentials[r]){if(delete e.credentials[r],e.default_project===r){let n=Object.keys(e.credentials);e.default_project=n.length>0?n[0]:void 0}Bv(e),_.info("Removed credentials",{supabaseUrl:r})}}function Jv(){let t=vl();(0,vt.existsSync)(t)&&((0,vt.unlinkSync)(t),_.info("Cleared all stored credentials"))}function yl(){let t=ao();return Object.keys(t.credentials)}function xl(){return ao().default_project}var ry=require("http"),ty=require("url"),sS=require("child_process"),cS=require("os");var ks=require("crypto");function rS(){return(0,ks.randomBytes)(32).toString("base64url")}function nS(t){return(0,ks.createHash)("sha256").update(t,"ascii").digest().toString("base64url")}function Kv(){let t=rS(),e=nS(t);return{codeVerifier:t,codeChallenge:e}}function Wv(){return(0,ks.randomBytes)(16).toString("base64url")}function Xv(){return`<!DOCTYPE html>
|
|
100
100
|
<html lang="en">
|
|
101
101
|
<head>
|
|
102
102
|
<meta charset="UTF-8">
|
|
@@ -443,13 +443,13 @@ Returns a run_id (use it for all subsequent task operations) and an estimated cr
|
|
|
443
443
|
Free-tier users will receive a clear message if autonomous runs require a plan upgrade.`,inputSchema:{type:"object",properties:{name:{type:"string",description:'A short name for this run (e.g., "Add user authentication", "Make site responsive", "Write Q1 blog posts")'},agent_type:{type:"string",description:'The agent type (e.g., "claude-code"). Defaults to the current agent.'},max_iterations:{type:"number",description:"Maximum task iterations before the run auto-completes. Useful for bounding long runs."}},required:[]},handler:async e=>{let r=await t.executeTool("loop.run.create",e);if(!r.success)throw new Error(r.error||"Failed to create run");let n=r.data;if(!n?.run_id)return n?.message||"Run created (no details returned)";let i=[`Run created: ${n.run_id}`];return n.name&&i.push(`Name: ${n.name}`),n.status&&i.push(`Status: ${n.status}`),n.estimated_credits!==void 0&&i.push(`Estimated credits: ${n.estimated_credits}`),i.join(`
|
|
444
444
|
`)}}}function xS(t){return{name:"loop.run.status",description:`Check the progress of an autonomous run.
|
|
445
445
|
|
|
446
|
-
Shows tasks completed vs total, credits consumed, and current task status. Use this to monitor progress mid-run or to decide whether to continue iterating.`,inputSchema:{type:"object",properties:{run_id:{type:"string",description:"The run ID to check status for"}},required:["run_id"]},handler:async e=>{ay(e.run_id,"run_id");let r=await t.executeTool("loop.run.status",e);if(!r.success)throw new Error(r.error||"Failed to get run status");let n=r.data;if(!n)return"No status data returned";let i=[];if(n.name&&i.push(`Run: ${n.name}`),n.id&&i.push(`ID: ${n.id}`),n.status&&i.push(`Status: ${n.status}`),n.tasks_total!==void 0){let o=n.tasks_failed?` (${n.tasks_failed} failed)`:"";i.push(`Progress: ${n.tasks_completed??0}/${n.tasks_total} tasks completed${o}`)}
|
|
446
|
+
Shows tasks completed vs total, credits consumed, and current task status. Use this to monitor progress mid-run or to decide whether to continue iterating.`,inputSchema:{type:"object",properties:{run_id:{type:"string",description:"The run ID to check status for"}},required:["run_id"]},handler:async e=>{ay(e.run_id,"run_id");let r=await t.executeTool("loop.run.status",e);if(!r.success)throw new Error(r.error||"Failed to get run status");let n=r.data;if(!n)return"No status data returned";let i=[];if(n.name&&i.push(`Run: ${n.name}`),n.id&&i.push(`ID: ${n.id}`),n.status&&i.push(`Status: ${n.status}`),n.tasks_total!==void 0){let o=n.tasks_failed?` (${n.tasks_failed} failed)`:"";i.push(`Progress: ${n.tasks_completed??0}/${n.tasks_total} tasks completed${o}`)}if(n.completion_percent!==void 0&&i.push(`Completion: ${n.completion_percent}%`),n.credits_consumed!==void 0&&i.push(`Credits consumed: ${n.credits_consumed}`),n.credits_estimated!==void 0&&i.push(`Credits estimated: ${n.credits_estimated}`),n.credits_remaining!==void 0&&i.push(`Credits remaining: ${n.credits_remaining}`),n.current_balance!==void 0&&i.push(`Word balance: ${n.current_balance}`),n.account_status){let o=n.account_status;i.push(`Account tier: ${o.tier}`),o.free_pass_active&&i.push("Free pass: active (word consumption bypassed)"),o.is_admin&&i.push("Admin account: yes (elevated privileges)"),i.push(`Balance sufficient: ${o.balance_sufficient?"yes":"no"}`)}return n.message&&i.push(n.message),i.length>0?i.join(`
|
|
447
447
|
`):"No status details available"}}}function bS(t){return{name:"loop.run.update",description:`Update an autonomous run's status (pause, resume, cancel, complete) or add summary/learnings.
|
|
448
448
|
|
|
449
449
|
Valid transitions: pending->running/cancelled, running->paused/completed/failed/cancelled, paused->running/cancelled. Terminal states (completed, failed, cancelled) cannot transition further.`,inputSchema:{type:"object",properties:{run_id:{type:"string",description:"The run ID to update"},status:{type:"string",enum:["running","paused","completed","failed","cancelled"],description:"New status for the run"},summary:{type:"string",description:"Summary of the run (typically set on completion)"},learnings:{type:"object",description:"Structured learnings from the run"}},required:["run_id"]},handler:async e=>{ay(e.run_id,"run_id");let r=await t.executeTool("loop.run.update",e);if(!r.success)throw new Error(r.error||"Failed to update run");let n=r.data;if(!n)return"Run updated (no details returned)";let i=[];return n.previous_status&&n.status&&n.previous_status!==n.status&&i.push(`Run status: ${n.previous_status} -> ${n.status}`),n.message&&i.push(n.message),i.length>0?i.join(`
|
|
450
450
|
`):"Run updated"}}}function _S(t){return{name:"loop.run.estimate",description:`Preview the estimated credit cost for a run before committing to it.
|
|
451
451
|
|
|
452
|
-
Shows task count, estimated credits per task, total cost, and percentage of your remaining word balance. Use this to make informed go/no-go decisions.`,inputSchema:{type:"object",properties:{run_id:{type:"string",description:"The run ID to estimate costs for"}},required:["run_id"]},handler:async e=>{ay(e.run_id,"run_id");let r=await t.executeTool("loop.run.estimate",e);if(!r.success)throw new Error(r.error||"Failed to get run estimate");let n=r.data;if(!n)return"No estimate data returned";let o=["estimated_credits","task_count","credits_per_task_avg","current_balance","balance_after","tier_budget","budget_impact_percent"].filter(s=>n[s]===void 0),a=["Cost Estimate"];
|
|
452
|
+
Shows task count, estimated credits per task, total cost, and percentage of your remaining word balance. Use this to make informed go/no-go decisions.`,inputSchema:{type:"object",properties:{run_id:{type:"string",description:"The run ID to estimate costs for"}},required:["run_id"]},handler:async e=>{ay(e.run_id,"run_id");let r=await t.executeTool("loop.run.estimate",e);if(!r.success)throw new Error(r.error||"Failed to get run estimate");let n=r.data;if(!n)return"No estimate data returned";let o=["estimated_credits","task_count","credits_per_task_avg","current_balance","balance_after","tier_budget","budget_impact_percent"].filter(s=>n[s]===void 0),a=["Cost Estimate"];if(typeof n.task_count=="number"&&a.push(`Tasks: ${n.task_count}`),typeof n.credits_per_task_avg=="number"&&a.push(`Credits per task (avg): ${n.credits_per_task_avg}`),typeof n.estimated_credits=="number"&&a.push(`Total estimated: ${n.estimated_credits} credits`),typeof n.current_balance=="number"&&a.push(`Current balance: ${n.current_balance} words`),typeof n.balance_after=="number"&&a.push(`Balance after: ${n.balance_after} words`),typeof n.budget_impact_percent=="number"&&a.push(`Budget impact: ${n.budget_impact_percent}%`),n.account_status){let s=n.account_status;a.push(`Account tier: ${s.tier}`),s.free_pass_active&&a.push("Free pass: active (word consumption bypassed)"),s.is_admin&&a.push("Admin account: yes (elevated privileges)"),a.push(`Balance sufficient: ${s.balance_sufficient?"yes":"no"}`)}return o.length>0&&a.push(`(Warning: missing fields: ${o.join(", ")})`),n.message&&a.push(n.message),a.length>1?a.join(`
|
|
453
453
|
`):"No estimate details available"}}}var wS=256;function Ss(t,e){if(!t||typeof t!="string"||t.trim().length===0)throw new Error(`${e} is required and must be a non-empty string`);if(t.length>wS)throw new Error(`${e} must be ${wS} characters or fewer`)}function Sl(t,e){if(!t||typeof t!="string"||t.trim().length===0)throw new Error(`${e} is required and must be a non-empty string`)}function $S(t){return{name:"loop.task.create",description:`Define a piece of work for an autonomous run.
|
|
454
454
|
|
|
455
455
|
Use this to break down a goal into individual tasks. Each task should be a concrete, completable unit of work \u2014 something an agent can pick up, execute, and verify.
|
|
@@ -552,7 +552,7 @@ AVOID: searching for general knowledge (use knowledge.query); looking for decisi
|
|
|
552
552
|
|
|
553
553
|
TRIGGERS: "mark task as done", "complete that task", "that's done now", "change task priority"
|
|
554
554
|
|
|
555
|
-
AVOID: creating new tasks (use task.create); storing general notes (use knowledge.store)`,inputSchema:{type:"object",properties:{task_id:{type:"string",description:"The ID of the task to update"},status:{type:"string",enum:["open","in_progress","done","cancelled"],description:"New status for the task"},priority:{type:"string",enum:["low","medium","high","urgent"],description:"New priority level"},title:{type:"string",description:"Updated task title"},due_date:{type:["string","null"],description:"Updated due date in ISO 8601 format, or null to clear"},assignee:{type:["string","null"],description:"Updated assignee, or null to unassign"}},required:["task_id"]}}]}}}var GH=5*60*1e3,JH=1e4,Wt=null;async function Mb(t){let e=Date.now();if(Wt&&e-Wt.fetchedAt<GH)return Wt.data;try{let r=new Promise((i,o)=>{setTimeout(()=>o(new Error("Domain fetch timeout")),JH)}),n=await Promise.race([t.fetchDomains(Wt?.version),r]);return n.unchanged&&Wt?(_.debug("Domains unchanged, refreshing TTL"),Wt.fetchedAt=e,Wt.data):(_.info("Domains loaded",{count:Object.keys(n.domains).length,version:n.version}),Wt={data:n.domains,fetchedAt:e,version:n.version},Wt.data)}catch(r){return Wt?(_.warn("API error, using cached domains",{error:r instanceof Error?r.message:String(r)}),Wt.data):(_.warn("API error, using default domains",{error:r instanceof Error?r.message:String(r)}),pj())}}function dj(){Wt=null,_.debug("Domain cache invalidated")}var Lp=Ce(require("readline"),1),fj="0.2.
|
|
555
|
+
AVOID: creating new tasks (use task.create); storing general notes (use knowledge.store)`,inputSchema:{type:"object",properties:{task_id:{type:"string",description:"The ID of the task to update"},status:{type:"string",enum:["open","in_progress","done","cancelled"],description:"New status for the task"},priority:{type:"string",enum:["low","medium","high","urgent"],description:"New priority level"},title:{type:"string",description:"Updated task title"},due_date:{type:["string","null"],description:"Updated due date in ISO 8601 format, or null to clear"},assignee:{type:["string","null"],description:"Updated assignee, or null to unassign"}},required:["task_id"]}}]}}}var GH=5*60*1e3,JH=1e4,Wt=null;async function Mb(t){let e=Date.now();if(Wt&&e-Wt.fetchedAt<GH)return Wt.data;try{let r=new Promise((i,o)=>{setTimeout(()=>o(new Error("Domain fetch timeout")),JH)}),n=await Promise.race([t.fetchDomains(Wt?.version),r]);return n.unchanged&&Wt?(_.debug("Domains unchanged, refreshing TTL"),Wt.fetchedAt=e,Wt.data):(_.info("Domains loaded",{count:Object.keys(n.domains).length,version:n.version}),Wt={data:n.domains,fetchedAt:e,version:n.version},Wt.data)}catch(r){return Wt?(_.warn("API error, using cached domains",{error:r instanceof Error?r.message:String(r)}),Wt.data):(_.warn("API error, using default domains",{error:r instanceof Error?r.message:String(r)}),pj())}}function dj(){Wt=null,_.debug("Domain cache invalidated")}var Lp=Ce(require("readline"),1),fj="0.2.3";async function Lb(t,e,r){let n=new Map,i=l=>{let p=e[l];return p?kl(p):void 0},o=dS(t,{description:i("knowledge.query")}),a=fS(t,{description:i("knowledge.store")}),s=mS(t,{description:i("knowledge.get_context")});if(n.set(o.name,o),n.set(a.name,a),n.set(s.name,s),_.debug("Registered core tools",{tools:[o.name,a.name,s.name]}),t.isUserScoped()){let l=hS(t,{description:i("lexic.create_project")}),p=gS(t,{description:i("lexic.list_projects")}),d=vS(t,{description:i("lexic.get_project_info")});n.set(l.name,l),n.set(p.name,p),n.set(d.name,d),_.debug("Registered admin tools",{tools:[l.name,p.name,d.name]})}else _.debug("Skipping admin tools (PAT is lexicon-scoped)");let u=oy(r,e,t);for(let l of u)n.set(l.name,l);_.debug("Registered domain tools",{count:u.length,tools:u.map(l=>l.name)});let c=[yS(t),xS(t),_S(t),bS(t),$S(t),kS(t),ES(t),zS(t),TS(t),SS(t),IS(t),PS(t),jS(t),OS(t),AS(t),RS(t)];for(let l of c)n.set(l.name,l);return _.debug("Registered autonomous coding tools",{tools:c.map(l=>l.name)}),n}async function KH(){let t=process.env.LOG_LEVEL||"info";_.setLevel(t),_.info("Starting Lexic MCP Server (stdio transport)");let e,r=process.env.LEXIC_API_URL||"https://app.lexic.io/api",n=xl(),i=n?yn(n):!1,o=n?Kn(n):!1,a=n&&(i||o);if(_.debug("OAuth credential check",{defaultProject:n,hasValidCredentials:i,hasExpiredCredentials:o,hasOAuth:a}),a&&n){_.info("Using OAuth authentication");let g=await ey();g||(_.error("Failed to discover auth config for OAuth"),process.exit(1)),_.debug("Auth config discovered",{supabaseUrl:g.supabaseUrl,matchesDefaultProject:g.supabaseUrl===n});let x=await iy({supabaseUrl:n,supabaseAnonKey:g.supabaseAnonKey});g.supabaseUrl!==n&&_.warn("Supabase URL mismatch between discovery and stored credentials",{discoveredUrl:g.supabaseUrl,storedUrl:n}),_.debug("Token retrieval result",{hasToken:!!x,tokenLength:x?.length}),x||(_.error("Failed to get valid OAuth token. Please run: lexic-mcp login"),process.exit(1));let w=hl({apiUrl:r,auth:{type:"oauth",token:x}});e=pS(w,{supabaseUrl:n,supabaseAnonKey:g.supabaseAnonKey});let $=ar(n);$?.email&&_.info("Authenticated as",{email:$.email}),_.info("Connected to Lexic (OAuth mode with auto-refresh)")}else if(process.env.LEXIC_PAT){_.info("Using PAT authentication");let g=Yk();e=eS(g);let x=await e.validateConnection();if(x.valid||(_.error("Failed to connect to Lexic",{error:x.error}),process.exit(1)),x.expiresAt){let w=new Date,$=Math.ceil((x.expiresAt.getTime()-w.getTime())/(1e3*60*60*24)),k=x.expiresAt.toISOString(),T=$===1?"day":"days";switch(!0){case $<=0:_.error("PAT has expired",{expiresAt:k});break;case $<=3:_.warn(`PAT expires in ${$} ${T}`,{expiresAt:k});break;case $<=7:_.info(`PAT expires in ${$} ${T}`,{expiresAt:k});break}}}else _.error("No authentication found. Please run: lexic-mcp login"),_.error("Or set LEXIC_PAT environment variable"),process.exit(1);let s=await e.validateConnection();s.valid||(_.error("Failed to connect to Lexic",{error:s.error}),process.exit(1)),_.info("Connected to Lexic",{lexiconId:s.lexiconId,isUserScoped:s.isUserScoped});let{domains:u,triggers:c}=await Zb(e),l=await Lb(e,c,u),p=new io({name:"lexic-mcp",version:fj},{capabilities:{tools:{listChanged:!0}}}),d=!1;async function f(){if(d)throw new Error("A tool reload is already in progress. Please wait for it to complete.");d=!0;let g=new Map(l);try{dj(),lj();let{domains:x,triggers:w}=await Zb(e),$=await Lb(e,w,x),k=new Set(g.keys()),T=new Set($.keys()),V=[...T].filter(Ee=>!k.has(Ee)),te=[...k].filter(Ee=>!T.has(Ee));l.clear();for(let[Ee,he]of $)l.set(Ee,he);return l.has("reload.tools")||l.set("reload.tools",m),await p.sendToolListChanged(),_.info("Tools reloaded successfully",{added:V,removed:te,total:l.size}),{added:V,removed:te,total:l.size}}catch(x){l.clear();for(let[$,k]of g)l.set($,k);let w=x instanceof Error?x.message:String(x);throw _.error("Tool reload failed, restored previous tools",{error:w}),new Error(`Tool reload failed: ${w}`)}finally{d=!1}}let m={name:"reload.tools",description:"Force reload of all MCP tool definitions from the Lexic API. Use this after tool configurations have been updated in the database, or if tools seem missing or outdated. Returns a summary of changes.",inputSchema:{type:"object",properties:{},required:[]},handler:async()=>{let g=await f();return{success:!0,data:{message:`Reloaded ${g.total} tools`,added:g.added,removed:g.removed,total:g.total}}}};l.set(m.name,m),p.setRequestHandler(Ba,async()=>({tools:Array.from(l.values()).map(g=>({name:g.name,description:g.description,inputSchema:g.inputSchema}))})),p.setRequestHandler(Un,async g=>{let{name:x,arguments:w}=g.params,$=l.get(x);if(!$)return{content:[{type:"text",text:`Unknown tool: ${x}`}],isError:!0};try{_.debug("Executing tool",{name:x,args:w});let k=await $.handler(w||{});return _.debug("Tool executed successfully",{name:x}),{content:[{type:"text",text:typeof k=="string"?k:JSON.stringify(k,null,2)}]}}catch(k){let T=k instanceof Error?k.message:String(k);return _.error("Tool execution failed",{name:x,error:T}),{content:[{type:"text",text:`Error: ${T}`}],isError:!0}}});let h=new fl;await p.connect(h),_.info("Lexic MCP Server running (stdio)",{toolCount:l.size,tools:Array.from(l.keys())})}async function WH(){let t=Dv();if(!Uv(t))throw new Error("OAuth configuration required for HTTP transport");_.setLevel(t.logLevel),_.info("Starting Lexic MCP Server (HTTP transport with OAuth)");let e=hl({apiUrl:t.apiUrl,auth:{type:"oauth",token:t.oauthConfig.supabaseAnonKey}}),r={},n={};try{let a=await Zb(e);r=a.domains,n=a.triggers}catch(a){_.warn("Could not load configuration during bootstrap, will use defaults",{error:a instanceof Error?a.message:String(a)})}let i=await Lb(e,n,r),o=sj({oauthConfig:t.oauthConfig,tools:i,serverName:"lexic-mcp",serverVersion:"0.1.0"});process.on("SIGTERM",async()=>{_.info("Received SIGTERM, shutting down..."),await o.stop(),process.exit(0)}),process.on("SIGINT",async()=>{_.info("Received SIGINT, shutting down..."),await o.stop(),process.exit(0)}),await o.start(),_.info("Lexic MCP Server running (HTTP with OAuth)",{toolCount:i.size,tools:Array.from(i.keys()),port:t.oauthConfig.httpPort})}async function Zb(t){_.info("Loading domains and triggers...");let e={},r={},n=!1;try{[e,r]=await Promise.all([Mb(t),uj(t)]),_.info("Loaded configuration",{domains:Object.keys(e).length,triggers:Object.keys(r).length})}catch(i){n=!0,_.warn("Failed to load dynamic configuration, starting in degraded mode",{error:i instanceof Error?i.message:String(i)});try{e=await Mb(t),_.info("Loaded domains only (triggers unavailable)",{domains:Object.keys(e).length})}catch(o){_.error("Failed to load domains - will use defaults",{error:o instanceof Error?o.message:String(o)})}}return n&&_.warn("Running in DEGRADED MODE - tool descriptions may be less helpful"),{domains:e,triggers:r}}var di=[{value:"google",label:"Google"},{value:"github",label:"GitHub"},{value:"azure",label:"Microsoft (Azure AD)"}];async function XH(){return new Promise(t=>{let e=0,r=Lp.createInterface({input:process.stdin,output:process.stdout});process.stdin.isTTY&&process.stdin.setRawMode(!0),Lp.emitKeypressEvents(process.stdin);let n=()=>{e>=0&&(process.stdout.write(`\x1B[${di.length+1}A`),process.stdout.write("\x1B[0J")),console.log("Select an OAuth provider:"),di.forEach((a,s)=>{let u=s===e?"> ":" ",c=s===e?"\x1B[36m":"",l=s===e?"\x1B[0m":"";console.log(`${u}${c}${a.label}${l}`)})};console.log("Select an OAuth provider:"),di.forEach((a,s)=>{let u=s===e?"> ":" ",c=s===e?"\x1B[36m":"",l=s===e?"\x1B[0m":"";console.log(`${u}${c}${a.label}${l}`)});let i=()=>{process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.removeListener("keypress",o),r.close()},o=(a,s)=>{s.name==="up"?(e=(e-1+di.length)%di.length,n()):s.name==="down"?(e=(e+1)%di.length,n()):s.name==="return"?(i(),console.log(""),t(di[e].value)):(s.name==="escape"||s.ctrl&&s.name==="c")&&(i(),console.log(`
|
|
556
556
|
Login cancelled.`),process.exit(0))};process.stdin.on("keypress",o)})}function YH(t){let e=t.toLowerCase();if(e==="google"||e==="github"||e==="azure")return e}function QH(){console.log(`
|
|
557
557
|
Lexic MCP Server - Knowledge management for AI-assisted development
|
|
558
558
|
|