@sap-ux/fiori-mcp-server 0.6.16 → 0.6.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -1607,7 +1607,7 @@ ${n.message}`:h,E=[v,t,e].filter(Boolean).join(`
1607
1607
 
1608
1608
  Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let l of this.seen.entries()){let p=l[1];if(t===l[0]){o(l);continue}if(n.external){let f=n.external.registry.get(l[0])?.id;if(t!==l[0]&&f){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(p.cycle){o(l);continue}if(p.count>1&&n.reused==="ref"){o(l);continue}}let s=(l,p)=>{let d=this.seen.get(l),f=d.def??d.schema,h={...f};if(d.ref===null)return;let g=d.ref;if(d.ref=null,g){s(g,p);let v=this.seen.get(g).schema;v.$ref&&(p.target==="draft-7"||p.target==="draft-4"||p.target==="openapi-3.0")?(f.allOf=f.allOf??[],f.allOf.push(v)):(Object.assign(f,v),Object.assign(f,h))}d.isParent||this.override({zodSchema:l,jsonSchema:f,path:d.path??[]})};for(let l of[...this.seen.entries()].reverse())s(l[0],{target:this.target});let c={};if(this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?c.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),n.external?.uri){let l=n.external.registry.get(t)?.id;if(!l)throw new Error("Schema is missing an `id` property");c.$id=n.external.uri(l)}Object.assign(c,i.def);let u=n.external?.defs??{};for(let l of this.seen.entries()){let p=l[1];p.def&&p.defId&&(u[p.defId]=p.def)}n.external||Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};function q0(e,t){if(e instanceof Rx){let n=new KR(t),i={};for(let s of e._idmap.entries()){let[c,u]=s;n.process(u)}let a={},o={registry:e,uri:t?.uri,defs:i};for(let s of e._idmap.entries()){let[c,u]=s;a[c]=n.emit(u,{...t,external:o})}if(Object.keys(i).length>0){let s=n.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[s]:i}}return{schemas:a}}let r=new KR(t);return r.process(e),r.emit(e,t)}function Bc(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Bc(n.element,r);if(n.type==="set")return Bc(n.valueType,r);if(n.type==="lazy")return Bc(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 Bc(n.innerType,r);if(n.type==="intersection")return Bc(n.left,r)||Bc(n.right,r);if(n.type==="record"||n.type==="map")return Bc(n.keyType,r)||Bc(n.valueType,r);if(n.type==="pipe")return Bc(n.in,r)||Bc(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Bc(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Bc(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Bc(i,r))return!0;return!!(n.rest&&Bc(n.rest,r))}return!1}var jUe={};function Yx(e){return!!e._zod}function _b(e,t){return Yx(e)?k0(e,t):e.safeParse(t)}function k4(e){if(!e)return;let t;if(Yx(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function UUe(e){if(Yx(e)){let a=e._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}let r=e._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=e.value;if(n!==void 0)return n}var U0={};Di(U0,{$brand:()=>cR,$input:()=>H3,$output:()=>z3,NEVER:()=>hB,TimePrecision:()=>W3,ZodAny:()=>WUe,ZodArray:()=>QUe,ZodBase64:()=>$oe,ZodBase64URL:()=>Moe,ZodBigInt:()=>QR,ZodBigIntFormat:()=>Voe,ZodBoolean:()=>ZR,ZodCIDRv4:()=>Loe,ZodCIDRv6:()=>koe,ZodCUID:()=>Coe,ZodCUID2:()=>Poe,ZodCatch:()=>gBe,ZodCodec:()=>Yoe,ZodCustom:()=>Y4,ZodCustomStringFormat:()=>XR,ZodDate:()=>H4,ZodDefault:()=>lBe,ZodDiscriminatedUnion:()=>eBe,ZodE164:()=>Foe,ZodEmail:()=>Ooe,ZodEmoji:()=>Aoe,ZodEnum:()=>YR,ZodError:()=>coe,ZodFile:()=>sBe,ZodFirstPartyTypeKind:()=>Xoe,ZodFunction:()=>ABe,ZodGUID:()=>V4,ZodIPv4:()=>Ioe,ZodIPv6:()=>Roe,ZodISODate:()=>M4,ZodISODateTime:()=>$4,ZodISODuration:()=>j4,ZodISOTime:()=>F4,ZodIntersection:()=>tBe,ZodIssueCode:()=>rdr,ZodJWT:()=>joe,ZodKSUID:()=>Noe,ZodLazy:()=>TBe,ZodLiteral:()=>oBe,ZodMAC:()=>HUe,ZodMap:()=>iBe,ZodNaN:()=>vBe,ZodNanoID:()=>xoe,ZodNever:()=>JUe,ZodNonOptional:()=>Goe,ZodNull:()=>YUe,ZodNullable:()=>uBe,ZodNumber:()=>JR,ZodNumberFormat:()=>Xx,ZodObject:()=>G4,ZodOptional:()=>Hoe,ZodPipe:()=>Koe,ZodPrefault:()=>fBe,ZodPromise:()=>SBe,ZodReadonly:()=>bBe,ZodRealError:()=>Nu,ZodRecord:()=>Boe,ZodSet:()=>aBe,ZodString:()=>WR,ZodStringFormat:()=>li,ZodSuccess:()=>mBe,ZodSymbol:()=>GUe,ZodTemplateLiteral:()=>EBe,ZodTransform:()=>cBe,ZodTuple:()=>rBe,ZodType:()=>Sr,ZodULID:()=>Doe,ZodURL:()=>B4,ZodUUID:()=>jg,ZodUndefined:()=>KUe,ZodUnion:()=>Uoe,ZodUnknown:()=>XUe,ZodVoid:()=>ZUe,ZodXID:()=>woe,_ZodString:()=>Toe,_default:()=>pBe,_function:()=>Wfr,any:()=>z4,array:()=>Ut,base64:()=>yfr,base64url:()=>vfr,bigint:()=>Dfr,boolean:()=>wi,catch:()=>yBe,check:()=>Xfr,cidrv4:()=>mfr,cidrv6:()=>gfr,clone:()=>hs,codec:()=>Gfr,coerce:()=>Joe,config:()=>fa,core:()=>Bl,cuid:()=>sfr,cuid2:()=>cfr,custom:()=>Woe,date:()=>kfr,decode:()=>hoe,decodeAsync:()=>goe,describe:()=>Jfr,discriminatedUnion:()=>K4,e164:()=>bfr,email:()=>Zpr,emoji:()=>afr,encode:()=>doe,encodeAsync:()=>moe,endsWith:()=>Ux,enum:()=>ri,file:()=>Ufr,flattenError:()=>_x,float32:()=>Afr,float64:()=>xfr,formatError:()=>Ex,function:()=>Wfr,getErrorMap:()=>idr,globalRegistry:()=>Ks,gt:()=>Eh,gte:()=>Ys,guid:()=>Qpr,hash:()=>Sfr,hex:()=>Ofr,hostname:()=>Tfr,httpUrl:()=>ifr,includes:()=>Vx,instanceof:()=>Qfr,int:()=>Eoe,int32:()=>Cfr,int64:()=>wfr,intersection:()=>tL,ipv4:()=>ffr,ipv6:()=>hfr,iso:()=>Wx,json:()=>tdr,jwt:()=>_fr,keyof:()=>$fr,ksuid:()=>pfr,lazy:()=>OBe,length:()=>j0,literal:()=>ft,locales:()=>Ix,looseObject:()=>Ws,lowercase:()=>Fx,lt:()=>_h,lte:()=>wu,mac:()=>dfr,map:()=>jfr,maxLength:()=>F0,maxSize:()=>M0,meta:()=>Zfr,mime:()=>Bx,minLength:()=>Fg,minSize:()=>bb,multipleOf:()=>vb,nan:()=>Hfr,nanoid:()=>ofr,nativeEnum:()=>qfr,negative:()=>S4,never:()=>qoe,nonnegative:()=>x4,nonoptional:()=>hBe,nonpositive:()=>A4,normalize:()=>zx,null:()=>eL,nullable:()=>q4,nullish:()=>Bfr,number:()=>gn,object:()=>we,optional:()=>kn,overwrite:()=>ld,parse:()=>uoe,parseAsync:()=>loe,partialRecord:()=>Ffr,pipe:()=>U4,positive:()=>O4,prefault:()=>dBe,preprocess:()=>W4,prettifyError:()=>vB,promise:()=>Yfr,property:()=>C4,readonly:()=>_Be,record:()=>$n,refine:()=>xBe,regex:()=>Mx,regexes:()=>Du,registry:()=>AR,safeDecode:()=>voe,safeDecodeAsync:()=>_oe,safeEncode:()=>yoe,safeEncodeAsync:()=>boe,safeParse:()=>poe,safeParseAsync:()=>foe,set:()=>Vfr,setErrorMap:()=>ndr,size:()=>$x,slugify:()=>GR,startsWith:()=>qx,strictObject:()=>Mfr,string:()=>ee,stringFormat:()=>Efr,stringbool:()=>edr,success:()=>zfr,superRefine:()=>CBe,symbol:()=>Ifr,templateLiteral:()=>Kfr,toJSONSchema:()=>q0,toLowerCase:()=>Gx,toUpperCase:()=>Kx,transform:()=>zoe,treeifyError:()=>yB,trim:()=>Hx,tuple:()=>nBe,uint32:()=>Pfr,uint64:()=>Nfr,ulid:()=>ufr,undefined:()=>Rfr,union:()=>nn,unknown:()=>xn,uppercase:()=>jx,url:()=>Soe,util:()=>Le,uuid:()=>efr,uuidv4:()=>tfr,uuidv6:()=>rfr,uuidv7:()=>nfr,void:()=>Lfr,xid:()=>lfr});var Wx={};Di(Wx,{ZodISODate:()=>M4,ZodISODateTime:()=>$4,ZodISODuration:()=>j4,ZodISOTime:()=>F4,date:()=>aoe,datetime:()=>ioe,duration:()=>soe,time:()=>ooe});var $4=ne("ZodISODateTime",(e,t)=>{GB.init(e,t),li.init(e,t)});function ioe(e){return X3($4,e)}var M4=ne("ZodISODate",(e,t)=>{KB.init(e,t),li.init(e,t)});function aoe(e){return J3(M4,e)}var F4=ne("ZodISOTime",(e,t)=>{YB.init(e,t),li.init(e,t)});function ooe(e){return Z3(F4,e)}var j4=ne("ZodISODuration",(e,t)=>{WB.init(e,t),li.init(e,t)});function soe(e){return Q3(j4,e)}var zUe=(e,t)=>{mR.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Ex(e,r)},flatten:{value:r=>_x(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,yx,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,yx,2)}},isEmpty:{get(){return e.issues.length===0}}})},coe=ne("ZodError",zUe),Nu=ne("ZodError",zUe,{Parent:Error});var uoe=Tx(Nu),loe=Sx(Nu),poe=xx(Nu),foe=Cx(Nu),doe=bB(Nu),hoe=_B(Nu),moe=EB(Nu),goe=TB(Nu),yoe=OB(Nu),voe=SB(Nu),boe=AB(Nu),_oe=xB(Nu);var Sr=ne("ZodType",(e,t)=>(Yt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(Le.mergeDefs(t,{checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]})),e.clone=(r,n)=>hs(e,r,n),e.brand=()=>e,e.register=(r,n)=>(r.add(e,n),e),e.parse=(r,n)=>uoe(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>poe(e,r,n),e.parseAsync=async(r,n)=>loe(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>foe(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>doe(e,r,n),e.decode=(r,n)=>hoe(e,r,n),e.encodeAsync=async(r,n)=>moe(e,r,n),e.decodeAsync=async(r,n)=>goe(e,r,n),e.safeEncode=(r,n)=>yoe(e,r,n),e.safeDecode=(r,n)=>voe(e,r,n),e.safeEncodeAsync=async(r,n)=>boe(e,r,n),e.safeDecodeAsync=async(r,n)=>_oe(e,r,n),e.refine=(r,n)=>e.check(xBe(r,n)),e.superRefine=r=>e.check(CBe(r)),e.overwrite=r=>e.check(ld(r)),e.optional=()=>kn(e),e.nullable=()=>q4(e),e.nullish=()=>kn(q4(e)),e.nonoptional=r=>hBe(e,r),e.array=()=>Ut(e),e.or=r=>nn([e,r]),e.and=r=>tL(e,r),e.transform=r=>U4(e,zoe(r)),e.default=r=>pBe(e,r),e.prefault=r=>dBe(e,r),e.catch=r=>yBe(e,r),e.pipe=r=>U4(e,r),e.readonly=()=>_Be(e),e.describe=r=>{let n=e.clone();return Ks.add(n,{description:r}),n},Object.defineProperty(e,"description",{get(){return Ks.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return Ks.get(e);let n=e.clone();return Ks.add(n,r[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),Toe=ne("_ZodString",(e,t)=>{yb.init(e,t),Sr.init(e,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...n)=>e.check(Mx(...n)),e.includes=(...n)=>e.check(Vx(...n)),e.startsWith=(...n)=>e.check(qx(...n)),e.endsWith=(...n)=>e.check(Ux(...n)),e.min=(...n)=>e.check(Fg(...n)),e.max=(...n)=>e.check(F0(...n)),e.length=(...n)=>e.check(j0(...n)),e.nonempty=(...n)=>e.check(Fg(1,...n)),e.lowercase=n=>e.check(Fx(n)),e.uppercase=n=>e.check(jx(n)),e.trim=()=>e.check(Hx()),e.normalize=(...n)=>e.check(zx(...n)),e.toLowerCase=()=>e.check(Gx()),e.toUpperCase=()=>e.check(Kx()),e.slugify=()=>e.check(GR())}),WR=ne("ZodString",(e,t)=>{yb.init(e,t),Toe.init(e,t),e.email=r=>e.check(xR(Ooe,r)),e.url=r=>e.check(kx(B4,r)),e.jwt=r=>e.check(HR(joe,r)),e.emoji=r=>e.check(NR(Aoe,r)),e.guid=r=>e.check(Lx(V4,r)),e.uuid=r=>e.check(CR(jg,r)),e.uuidv4=r=>e.check(PR(jg,r)),e.uuidv6=r=>e.check(DR(jg,r)),e.uuidv7=r=>e.check(wR(jg,r)),e.nanoid=r=>e.check(IR(xoe,r)),e.guid=r=>e.check(Lx(V4,r)),e.cuid=r=>e.check(RR(Coe,r)),e.cuid2=r=>e.check(LR(Poe,r)),e.ulid=r=>e.check(kR(Doe,r)),e.base64=r=>e.check(UR($oe,r)),e.base64url=r=>e.check(BR(Moe,r)),e.xid=r=>e.check($R(woe,r)),e.ksuid=r=>e.check(MR(Noe,r)),e.ipv4=r=>e.check(FR(Ioe,r)),e.ipv6=r=>e.check(jR(Roe,r)),e.cidrv4=r=>e.check(VR(Loe,r)),e.cidrv6=r=>e.check(qR(koe,r)),e.e164=r=>e.check(zR(Foe,r)),e.datetime=r=>e.check(ioe(r)),e.date=r=>e.check(aoe(r)),e.time=r=>e.check(ooe(r)),e.duration=r=>e.check(soe(r))});function ee(e){return G3(WR,e)}var li=ne("ZodStringFormat",(e,t)=>{Kn.init(e,t),Toe.init(e,t)}),Ooe=ne("ZodEmail",(e,t)=>{MB.init(e,t),li.init(e,t)});function Zpr(e){return xR(Ooe,e)}var V4=ne("ZodGUID",(e,t)=>{kB.init(e,t),li.init(e,t)});function Qpr(e){return Lx(V4,e)}var jg=ne("ZodUUID",(e,t)=>{$B.init(e,t),li.init(e,t)});function efr(e){return CR(jg,e)}function tfr(e){return PR(jg,e)}function rfr(e){return DR(jg,e)}function nfr(e){return wR(jg,e)}var B4=ne("ZodURL",(e,t)=>{FB.init(e,t),li.init(e,t)});function Soe(e){return kx(B4,e)}function ifr(e){return kx(B4,{protocol:/^https?$/,hostname:Du.domain,...Le.normalizeParams(e)})}var Aoe=ne("ZodEmoji",(e,t)=>{jB.init(e,t),li.init(e,t)});function afr(e){return NR(Aoe,e)}var xoe=ne("ZodNanoID",(e,t)=>{VB.init(e,t),li.init(e,t)});function ofr(e){return IR(xoe,e)}var Coe=ne("ZodCUID",(e,t)=>{qB.init(e,t),li.init(e,t)});function sfr(e){return RR(Coe,e)}var Poe=ne("ZodCUID2",(e,t)=>{UB.init(e,t),li.init(e,t)});function cfr(e){return LR(Poe,e)}var Doe=ne("ZodULID",(e,t)=>{BB.init(e,t),li.init(e,t)});function ufr(e){return kR(Doe,e)}var woe=ne("ZodXID",(e,t)=>{zB.init(e,t),li.init(e,t)});function lfr(e){return $R(woe,e)}var Noe=ne("ZodKSUID",(e,t)=>{HB.init(e,t),li.init(e,t)});function pfr(e){return MR(Noe,e)}var Ioe=ne("ZodIPv4",(e,t)=>{XB.init(e,t),li.init(e,t)});function ffr(e){return FR(Ioe,e)}var HUe=ne("ZodMAC",(e,t)=>{ZB.init(e,t),li.init(e,t)});function dfr(e){return Y3(HUe,e)}var Roe=ne("ZodIPv6",(e,t)=>{JB.init(e,t),li.init(e,t)});function hfr(e){return jR(Roe,e)}var Loe=ne("ZodCIDRv4",(e,t)=>{QB.init(e,t),li.init(e,t)});function mfr(e){return VR(Loe,e)}var koe=ne("ZodCIDRv6",(e,t)=>{e3.init(e,t),li.init(e,t)});function gfr(e){return qR(koe,e)}var $oe=ne("ZodBase64",(e,t)=>{t3.init(e,t),li.init(e,t)});function yfr(e){return UR($oe,e)}var Moe=ne("ZodBase64URL",(e,t)=>{r3.init(e,t),li.init(e,t)});function vfr(e){return BR(Moe,e)}var Foe=ne("ZodE164",(e,t)=>{n3.init(e,t),li.init(e,t)});function bfr(e){return zR(Foe,e)}var joe=ne("ZodJWT",(e,t)=>{i3.init(e,t),li.init(e,t)});function _fr(e){return HR(joe,e)}var XR=ne("ZodCustomStringFormat",(e,t)=>{a3.init(e,t),li.init(e,t)});function Efr(e,t,r={}){return V0(XR,e,t,r)}function Tfr(e){return V0(XR,"hostname",Du.hostname,e)}function Ofr(e){return V0(XR,"hex",Du.hex,e)}function Sfr(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,i=Du[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return V0(XR,n,i,t)}var JR=ne("ZodNumber",(e,t)=>{bR.init(e,t),Sr.init(e,t),e.gt=(n,i)=>e.check(Eh(n,i)),e.gte=(n,i)=>e.check(Ys(n,i)),e.min=(n,i)=>e.check(Ys(n,i)),e.lt=(n,i)=>e.check(_h(n,i)),e.lte=(n,i)=>e.check(wu(n,i)),e.max=(n,i)=>e.check(wu(n,i)),e.int=n=>e.check(Eoe(n)),e.safe=n=>e.check(Eoe(n)),e.positive=n=>e.check(Eh(0,n)),e.nonnegative=n=>e.check(Ys(0,n)),e.negative=n=>e.check(_h(0,n)),e.nonpositive=n=>e.check(wu(0,n)),e.multipleOf=(n,i)=>e.check(vb(n,i)),e.step=(n,i)=>e.check(vb(n,i)),e.finite=()=>e;let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function gn(e){return e4(JR,e)}var Xx=ne("ZodNumberFormat",(e,t)=>{o3.init(e,t),JR.init(e,t)});function Eoe(e){return r4(Xx,e)}function Afr(e){return n4(Xx,e)}function xfr(e){return i4(Xx,e)}function Cfr(e){return a4(Xx,e)}function Pfr(e){return o4(Xx,e)}var ZR=ne("ZodBoolean",(e,t)=>{wx.init(e,t),Sr.init(e,t)});function wi(e){return s4(ZR,e)}var QR=ne("ZodBigInt",(e,t)=>{_R.init(e,t),Sr.init(e,t),e.gte=(n,i)=>e.check(Ys(n,i)),e.min=(n,i)=>e.check(Ys(n,i)),e.gt=(n,i)=>e.check(Eh(n,i)),e.gte=(n,i)=>e.check(Ys(n,i)),e.min=(n,i)=>e.check(Ys(n,i)),e.lt=(n,i)=>e.check(_h(n,i)),e.lte=(n,i)=>e.check(wu(n,i)),e.max=(n,i)=>e.check(wu(n,i)),e.positive=n=>e.check(Eh(BigInt(0),n)),e.negative=n=>e.check(_h(BigInt(0),n)),e.nonpositive=n=>e.check(wu(BigInt(0),n)),e.nonnegative=n=>e.check(Ys(BigInt(0),n)),e.multipleOf=(n,i)=>e.check(vb(n,i));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null});function Dfr(e){return u4(QR,e)}var Voe=ne("ZodBigIntFormat",(e,t)=>{s3.init(e,t),QR.init(e,t)});function wfr(e){return p4(Voe,e)}function Nfr(e){return f4(Voe,e)}var GUe=ne("ZodSymbol",(e,t)=>{c3.init(e,t),Sr.init(e,t)});function Ifr(e){return d4(GUe,e)}var KUe=ne("ZodUndefined",(e,t)=>{u3.init(e,t),Sr.init(e,t)});function Rfr(e){return h4(KUe,e)}var YUe=ne("ZodNull",(e,t)=>{l3.init(e,t),Sr.init(e,t)});function eL(e){return m4(YUe,e)}var WUe=ne("ZodAny",(e,t)=>{p3.init(e,t),Sr.init(e,t)});function z4(){return g4(WUe)}var XUe=ne("ZodUnknown",(e,t)=>{f3.init(e,t),Sr.init(e,t)});function xn(){return y4(XUe)}var JUe=ne("ZodNever",(e,t)=>{d3.init(e,t),Sr.init(e,t)});function qoe(e){return v4(JUe,e)}var ZUe=ne("ZodVoid",(e,t)=>{h3.init(e,t),Sr.init(e,t)});function Lfr(e){return b4(ZUe,e)}var H4=ne("ZodDate",(e,t)=>{m3.init(e,t),Sr.init(e,t),e.min=(n,i)=>e.check(Ys(n,i)),e.max=(n,i)=>e.check(wu(n,i));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null});function kfr(e){return _4(H4,e)}var QUe=ne("ZodArray",(e,t)=>{g3.init(e,t),Sr.init(e,t),e.element=t.element,e.min=(r,n)=>e.check(Fg(r,n)),e.nonempty=r=>e.check(Fg(1,r)),e.max=(r,n)=>e.check(F0(r,n)),e.length=(r,n)=>e.check(j0(r,n)),e.unwrap=()=>e.element});function Ut(e,t){return noe(QUe,e,t)}function $fr(e){let t=e._zod.def.shape;return ri(Object.keys(t))}var G4=ne("ZodObject",(e,t)=>{roe.init(e,t),Sr.init(e,t),Le.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>ri(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:xn()}),e.loose=()=>e.clone({...e._zod.def,catchall:xn()}),e.strict=()=>e.clone({...e._zod.def,catchall:qoe()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>Le.extend(e,r),e.safeExtend=r=>Le.safeExtend(e,r),e.merge=r=>Le.merge(e,r),e.pick=r=>Le.pick(e,r),e.omit=r=>Le.omit(e,r),e.partial=(...r)=>Le.partial(Hoe,e,r[0]),e.required=(...r)=>Le.required(Goe,e,r[0])});function we(e,t){let r={type:"object",shape:e??{},...Le.normalizeParams(t)};return new G4(r)}function Mfr(e,t){return new G4({type:"object",shape:e,catchall:qoe(),...Le.normalizeParams(t)})}function Ws(e,t){return new G4({type:"object",shape:e,catchall:xn(),...Le.normalizeParams(t)})}var Uoe=ne("ZodUnion",(e,t)=>{ER.init(e,t),Sr.init(e,t),e.options=t.options});function nn(e,t){return new Uoe({type:"union",options:e,...Le.normalizeParams(t)})}var eBe=ne("ZodDiscriminatedUnion",(e,t)=>{Uoe.init(e,t),y3.init(e,t)});function K4(e,t,r){return new eBe({type:"union",options:t,discriminator:e,...Le.normalizeParams(r)})}var tBe=ne("ZodIntersection",(e,t)=>{v3.init(e,t),Sr.init(e,t)});function tL(e,t){return new tBe({type:"intersection",left:e,right:t})}var rBe=ne("ZodTuple",(e,t)=>{TR.init(e,t),Sr.init(e,t),e.rest=r=>e.clone({...e._zod.def,rest:r})});function nBe(e,t,r){let n=t instanceof Yt,i=n?r:t,a=n?t:null;return new rBe({type:"tuple",items:e,rest:a,...Le.normalizeParams(i)})}var Boe=ne("ZodRecord",(e,t)=>{b3.init(e,t),Sr.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function $n(e,t,r){return new Boe({type:"record",keyType:e,valueType:t,...Le.normalizeParams(r)})}function Ffr(e,t,r){let n=hs(e);return n._zod.values=void 0,new Boe({type:"record",keyType:n,valueType:t,...Le.normalizeParams(r)})}var iBe=ne("ZodMap",(e,t)=>{_3.init(e,t),Sr.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function jfr(e,t,r){return new iBe({type:"map",keyType:e,valueType:t,...Le.normalizeParams(r)})}var aBe=ne("ZodSet",(e,t)=>{E3.init(e,t),Sr.init(e,t),e.min=(...r)=>e.check(bb(...r)),e.nonempty=r=>e.check(bb(1,r)),e.max=(...r)=>e.check(M0(...r)),e.size=(...r)=>e.check($x(...r))});function Vfr(e,t){return new aBe({type:"set",valueType:e,...Le.normalizeParams(t)})}var YR=ne("ZodEnum",(e,t)=>{T3.init(e,t),Sr.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let r=new Set(Object.keys(t.entries));e.extract=(n,i)=>{let a={};for(let o of n)if(r.has(o))a[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new YR({...t,checks:[],...Le.normalizeParams(i),entries:a})},e.exclude=(n,i)=>{let a={...t.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new YR({...t,checks:[],...Le.normalizeParams(i),entries:a})}});function ri(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new YR({type:"enum",entries:r,...Le.normalizeParams(t)})}function qfr(e,t){return new YR({type:"enum",entries:e,...Le.normalizeParams(t)})}var oBe=ne("ZodLiteral",(e,t)=>{O3.init(e,t),Sr.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new oBe({type:"literal",values:Array.isArray(e)?e:[e],...Le.normalizeParams(t)})}var sBe=ne("ZodFile",(e,t)=>{S3.init(e,t),Sr.init(e,t),e.min=(r,n)=>e.check(bb(r,n)),e.max=(r,n)=>e.check(M0(r,n)),e.mime=(r,n)=>e.check(Bx(Array.isArray(r)?r:[r],n))});function Ufr(e){return P4(sBe,e)}var cBe=ne("ZodTransform",(e,t)=>{A3.init(e,t),Sr.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new pb(e.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(Le.issue(a,r.value,t));else{let o=a;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=e),r.issues.push(Le.issue(o))}};let i=t.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function zoe(e){return new cBe({type:"transform",transform:e})}var Hoe=ne("ZodOptional",(e,t)=>{x3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function kn(e){return new Hoe({type:"optional",innerType:e})}var uBe=ne("ZodNullable",(e,t)=>{C3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function q4(e){return new uBe({type:"nullable",innerType:e})}function Bfr(e){return kn(q4(e))}var lBe=ne("ZodDefault",(e,t)=>{P3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function pBe(e,t){return new lBe({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Le.shallowClone(t)}})}var fBe=ne("ZodPrefault",(e,t)=>{D3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function dBe(e,t){return new fBe({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Le.shallowClone(t)}})}var Goe=ne("ZodNonOptional",(e,t)=>{w3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function hBe(e,t){return new Goe({type:"nonoptional",innerType:e,...Le.normalizeParams(t)})}var mBe=ne("ZodSuccess",(e,t)=>{N3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function zfr(e){return new mBe({type:"success",innerType:e})}var gBe=ne("ZodCatch",(e,t)=>{I3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function yBe(e,t){return new gBe({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var vBe=ne("ZodNaN",(e,t)=>{R3.init(e,t),Sr.init(e,t)});function Hfr(e){return T4(vBe,e)}var Koe=ne("ZodPipe",(e,t)=>{L3.init(e,t),Sr.init(e,t),e.in=t.in,e.out=t.out});function U4(e,t){return new Koe({type:"pipe",in:e,out:t})}var Yoe=ne("ZodCodec",(e,t)=>{Koe.init(e,t),Nx.init(e,t)});function Gfr(e,t,r){return new Yoe({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var bBe=ne("ZodReadonly",(e,t)=>{k3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _Be(e){return new bBe({type:"readonly",innerType:e})}var EBe=ne("ZodTemplateLiteral",(e,t)=>{$3.init(e,t),Sr.init(e,t)});function Kfr(e,t){return new EBe({type:"template_literal",parts:e,...Le.normalizeParams(t)})}var TBe=ne("ZodLazy",(e,t)=>{j3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.getter()});function OBe(e){return new TBe({type:"lazy",getter:e})}var SBe=ne("ZodPromise",(e,t)=>{F3.init(e,t),Sr.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Yfr(e){return new SBe({type:"promise",innerType:e})}var ABe=ne("ZodFunction",(e,t)=>{M3.init(e,t),Sr.init(e,t)});function Wfr(e){return new ABe({type:"function",input:Array.isArray(e?.input)?nBe(e?.input):e?.input??Ut(xn()),output:e?.output??xn()})}var Y4=ne("ZodCustom",(e,t)=>{V3.init(e,t),Sr.init(e,t)});function Xfr(e){let t=new ti({check:"custom"});return t._zod.check=e,t}function Woe(e,t){return D4(Y4,e??(()=>!0),t)}function xBe(e,t={}){return w4(Y4,e,t)}function CBe(e){return N4(e)}var Jfr=I4,Zfr=R4;function Qfr(e,t={error:`Input not instance of ${e.name}`}){let r=new Y4({type:"custom",check:"custom",fn:n=>n instanceof e,abort:!0,...Le.normalizeParams(t)});return r._zod.bag.Class=e,r}var edr=(...e)=>L4({Codec:Yoe,Boolean:ZR,String:WR},...e);function tdr(e){let t=OBe(()=>nn([ee(e),gn(),wi(),eL(),Ut(t),$n(ee(),t)]));return t}function W4(e,t){return U4(zoe(e),t)}var rdr={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"};function ndr(e){fa({customError:e})}function idr(){return fa().customError}var Xoe;Xoe||(Xoe={});var Joe={};Di(Joe,{bigint:()=>cdr,boolean:()=>sdr,date:()=>udr,number:()=>odr,string:()=>adr});function adr(e){return K3(WR,e)}function odr(e){return t4(JR,e)}function sdr(e){return c4(ZR,e)}function cdr(e){return l4(QR,e)}function udr(e){return E4(H4,e)}fa(q3());var Qoe="2025-11-25";var PBe=[Qoe,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Eb="io.modelcontextprotocol/related-task",J4="2.0",ms=Woe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),DBe=nn([ee(),gn().int()]),wBe=ee(),Tui=Ws({ttl:nn([gn(),eL()]).optional(),pollInterval:gn().optional()}),pdr=we({ttl:gn().optional()}),fdr=we({taskId:ee()}),ese=Ws({progressToken:DBe.optional(),[Eb]:fdr.optional()}),zl=we({_meta:ese.optional()}),rL=zl.extend({task:pdr.optional()}),NBe=e=>rL.safeParse(e).success,gs=we({method:ee(),params:zl.loose().optional()}),Fp=we({_meta:ese.optional()}),jp=we({method:ee(),params:Fp.loose().optional()}),ys=Ws({_meta:ese.optional()}),Z4=nn([ee(),gn().int()]),IBe=we({jsonrpc:ft(J4),id:Z4,...gs.shape}).strict(),tse=e=>IBe.safeParse(e).success,RBe=we({jsonrpc:ft(J4),...jp.shape}).strict(),LBe=e=>RBe.safeParse(e).success,rse=we({jsonrpc:ft(J4),id:Z4,result:ys}).strict(),nL=e=>rse.safeParse(e).success;var an;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(an||(an={}));var nse=we({jsonrpc:ft(J4),id:Z4.optional(),error:we({code:gn().int(),message:ee(),data:xn().optional()})}).strict();var kBe=e=>nse.safeParse(e).success;var $Be=nn([IBe,RBe,rse,nse]),Oui=nn([rse,nse]),Q4=ys.strict(),ddr=Fp.extend({requestId:Z4.optional(),reason:ee().optional()}),ez=jp.extend({method:ft("notifications/cancelled"),params:ddr}),hdr=we({src:ee(),mimeType:ee().optional(),sizes:Ut(ee()).optional(),theme:ri(["light","dark"]).optional()}),iL=we({icons:Ut(hdr).optional()}),Jx=we({name:ee(),title:ee().optional()}),MBe=Jx.extend({...Jx.shape,...iL.shape,version:ee(),websiteUrl:ee().optional(),description:ee().optional()}),mdr=tL(we({applyDefaults:wi().optional()}),$n(ee(),xn())),gdr=W4(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,tL(we({form:mdr.optional(),url:ms.optional()}),$n(ee(),xn()).optional())),ydr=Ws({list:ms.optional(),cancel:ms.optional(),requests:Ws({sampling:Ws({createMessage:ms.optional()}).optional(),elicitation:Ws({create:ms.optional()}).optional()}).optional()}),vdr=Ws({list:ms.optional(),cancel:ms.optional(),requests:Ws({tools:Ws({call:ms.optional()}).optional()}).optional()}),bdr=we({experimental:$n(ee(),ms).optional(),sampling:we({context:ms.optional(),tools:ms.optional()}).optional(),elicitation:gdr.optional(),roots:we({listChanged:wi().optional()}).optional(),tasks:ydr.optional()}),_dr=zl.extend({protocolVersion:ee(),capabilities:bdr,clientInfo:MBe}),aL=gs.extend({method:ft("initialize"),params:_dr});var Edr=we({experimental:$n(ee(),ms).optional(),logging:ms.optional(),completions:ms.optional(),prompts:we({listChanged:wi().optional()}).optional(),resources:we({subscribe:wi().optional(),listChanged:wi().optional()}).optional(),tools:we({listChanged:wi().optional()}).optional(),tasks:vdr.optional()}),Tdr=ys.extend({protocolVersion:ee(),capabilities:Edr,serverInfo:MBe,instructions:ee().optional()}),ise=jp.extend({method:ft("notifications/initialized"),params:Fp.optional()});var tz=gs.extend({method:ft("ping"),params:zl.optional()}),Odr=we({progress:gn(),total:kn(gn()),message:kn(ee())}),Sdr=we({...Fp.shape,...Odr.shape,progressToken:DBe}),rz=jp.extend({method:ft("notifications/progress"),params:Sdr}),Adr=zl.extend({cursor:wBe.optional()}),oL=gs.extend({params:Adr.optional()}),sL=ys.extend({nextCursor:wBe.optional()}),xdr=ri(["working","input_required","completed","failed","cancelled"]),cL=we({taskId:ee(),status:xdr,ttl:nn([gn(),eL()]),createdAt:ee(),lastUpdatedAt:ee(),pollInterval:kn(gn()),statusMessage:kn(ee())}),Zx=ys.extend({task:cL}),Cdr=Fp.merge(cL),uL=jp.extend({method:ft("notifications/tasks/status"),params:Cdr}),nz=gs.extend({method:ft("tasks/get"),params:zl.extend({taskId:ee()})}),iz=ys.merge(cL),az=gs.extend({method:ft("tasks/result"),params:zl.extend({taskId:ee()})}),Sui=ys.loose(),oz=oL.extend({method:ft("tasks/list")}),sz=sL.extend({tasks:Ut(cL)}),cz=gs.extend({method:ft("tasks/cancel"),params:zl.extend({taskId:ee()})}),FBe=ys.merge(cL),jBe=we({uri:ee(),mimeType:kn(ee()),_meta:$n(ee(),xn()).optional()}),VBe=jBe.extend({text:ee()}),ase=ee().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),qBe=jBe.extend({blob:ase}),lL=ri(["user","assistant"]),Qx=we({audience:Ut(lL).optional(),priority:gn().min(0).max(1).optional(),lastModified:Wx.datetime({offset:!0}).optional()}),UBe=we({...Jx.shape,...iL.shape,uri:ee(),description:kn(ee()),mimeType:kn(ee()),annotations:Qx.optional(),_meta:kn(Ws({}))}),Pdr=we({...Jx.shape,...iL.shape,uriTemplate:ee(),description:kn(ee()),mimeType:kn(ee()),annotations:Qx.optional(),_meta:kn(Ws({}))}),Ddr=oL.extend({method:ft("resources/list")}),wdr=sL.extend({resources:Ut(UBe)}),Ndr=oL.extend({method:ft("resources/templates/list")}),Idr=sL.extend({resourceTemplates:Ut(Pdr)}),ose=zl.extend({uri:ee()}),Rdr=ose,Ldr=gs.extend({method:ft("resources/read"),params:Rdr}),kdr=ys.extend({contents:Ut(nn([VBe,qBe]))}),$dr=jp.extend({method:ft("notifications/resources/list_changed"),params:Fp.optional()}),Mdr=ose,Fdr=gs.extend({method:ft("resources/subscribe"),params:Mdr}),jdr=ose,Vdr=gs.extend({method:ft("resources/unsubscribe"),params:jdr}),qdr=Fp.extend({uri:ee()}),Udr=jp.extend({method:ft("notifications/resources/updated"),params:qdr}),Bdr=we({name:ee(),description:kn(ee()),required:kn(wi())}),zdr=we({...Jx.shape,...iL.shape,description:kn(ee()),arguments:kn(Ut(Bdr)),_meta:kn(Ws({}))}),Hdr=oL.extend({method:ft("prompts/list")}),Gdr=sL.extend({prompts:Ut(zdr)}),Kdr=zl.extend({name:ee(),arguments:$n(ee(),ee()).optional()}),Ydr=gs.extend({method:ft("prompts/get"),params:Kdr}),sse=we({type:ft("text"),text:ee(),annotations:Qx.optional(),_meta:$n(ee(),xn()).optional()}),cse=we({type:ft("image"),data:ase,mimeType:ee(),annotations:Qx.optional(),_meta:$n(ee(),xn()).optional()}),use=we({type:ft("audio"),data:ase,mimeType:ee(),annotations:Qx.optional(),_meta:$n(ee(),xn()).optional()}),Wdr=we({type:ft("tool_use"),name:ee(),id:ee(),input:$n(ee(),xn()),_meta:$n(ee(),xn()).optional()}),Xdr=we({type:ft("resource"),resource:nn([VBe,qBe]),annotations:Qx.optional(),_meta:$n(ee(),xn()).optional()}),Jdr=UBe.extend({type:ft("resource_link")}),lse=nn([sse,cse,use,Jdr,Xdr]),Zdr=we({role:lL,content:lse}),Qdr=ys.extend({description:ee().optional(),messages:Ut(Zdr)}),ehr=jp.extend({method:ft("notifications/prompts/list_changed"),params:Fp.optional()}),thr=we({title:ee().optional(),readOnlyHint:wi().optional(),destructiveHint:wi().optional(),idempotentHint:wi().optional(),openWorldHint:wi().optional()}),rhr=we({taskSupport:ri(["required","optional","forbidden"]).optional()}),BBe=we({...Jx.shape,...iL.shape,description:ee().optional(),inputSchema:we({type:ft("object"),properties:$n(ee(),ms).optional(),required:Ut(ee()).optional()}).catchall(xn()),outputSchema:we({type:ft("object"),properties:$n(ee(),ms).optional(),required:Ut(ee()).optional()}).catchall(xn()).optional(),annotations:thr.optional(),execution:rhr.optional(),_meta:$n(ee(),xn()).optional()}),pse=oL.extend({method:ft("tools/list")}),nhr=sL.extend({tools:Ut(BBe)}),uz=ys.extend({content:Ut(lse).default([]),structuredContent:$n(ee(),xn()).optional(),isError:wi().optional()}),Aui=uz.or(ys.extend({toolResult:xn()})),ihr=rL.extend({name:ee(),arguments:$n(ee(),xn()).optional()}),pL=gs.extend({method:ft("tools/call"),params:ihr}),ahr=jp.extend({method:ft("notifications/tools/list_changed"),params:Fp.optional()}),xui=we({autoRefresh:wi().default(!0),debounceMs:gn().int().nonnegative().default(300)}),fL=ri(["debug","info","notice","warning","error","critical","alert","emergency"]),ohr=zl.extend({level:fL}),fse=gs.extend({method:ft("logging/setLevel"),params:ohr}),shr=Fp.extend({level:fL,logger:ee().optional(),data:xn()}),chr=jp.extend({method:ft("notifications/message"),params:shr}),uhr=we({name:ee().optional()}),lhr=we({hints:Ut(uhr).optional(),costPriority:gn().min(0).max(1).optional(),speedPriority:gn().min(0).max(1).optional(),intelligencePriority:gn().min(0).max(1).optional()}),phr=we({mode:ri(["auto","required","none"]).optional()}),fhr=we({type:ft("tool_result"),toolUseId:ee().describe("The unique identifier for the corresponding tool call."),content:Ut(lse).default([]),structuredContent:we({}).loose().optional(),isError:wi().optional(),_meta:$n(ee(),xn()).optional()}),dhr=K4("type",[sse,cse,use]),X4=K4("type",[sse,cse,use,Wdr,fhr]),hhr=we({role:lL,content:nn([X4,Ut(X4)]),_meta:$n(ee(),xn()).optional()}),mhr=rL.extend({messages:Ut(hhr),modelPreferences:lhr.optional(),systemPrompt:ee().optional(),includeContext:ri(["none","thisServer","allServers"]).optional(),temperature:gn().optional(),maxTokens:gn().int(),stopSequences:Ut(ee()).optional(),metadata:ms.optional(),tools:Ut(BBe).optional(),toolChoice:phr.optional()}),ghr=gs.extend({method:ft("sampling/createMessage"),params:mhr}),dse=ys.extend({model:ee(),stopReason:kn(ri(["endTurn","stopSequence","maxTokens"]).or(ee())),role:lL,content:dhr}),hse=ys.extend({model:ee(),stopReason:kn(ri(["endTurn","stopSequence","maxTokens","toolUse"]).or(ee())),role:lL,content:nn([X4,Ut(X4)])}),yhr=we({type:ft("boolean"),title:ee().optional(),description:ee().optional(),default:wi().optional()}),vhr=we({type:ft("string"),title:ee().optional(),description:ee().optional(),minLength:gn().optional(),maxLength:gn().optional(),format:ri(["email","uri","date","date-time"]).optional(),default:ee().optional()}),bhr=we({type:ri(["number","integer"]),title:ee().optional(),description:ee().optional(),minimum:gn().optional(),maximum:gn().optional(),default:gn().optional()}),_hr=we({type:ft("string"),title:ee().optional(),description:ee().optional(),enum:Ut(ee()),default:ee().optional()}),Ehr=we({type:ft("string"),title:ee().optional(),description:ee().optional(),oneOf:Ut(we({const:ee(),title:ee()})),default:ee().optional()}),Thr=we({type:ft("string"),title:ee().optional(),description:ee().optional(),enum:Ut(ee()),enumNames:Ut(ee()).optional(),default:ee().optional()}),Ohr=nn([_hr,Ehr]),Shr=we({type:ft("array"),title:ee().optional(),description:ee().optional(),minItems:gn().optional(),maxItems:gn().optional(),items:we({type:ft("string"),enum:Ut(ee())}),default:Ut(ee()).optional()}),Ahr=we({type:ft("array"),title:ee().optional(),description:ee().optional(),minItems:gn().optional(),maxItems:gn().optional(),items:we({anyOf:Ut(we({const:ee(),title:ee()}))}),default:Ut(ee()).optional()}),xhr=nn([Shr,Ahr]),Chr=nn([Thr,Ohr,xhr]),Phr=nn([Chr,yhr,vhr,bhr]),Dhr=rL.extend({mode:ft("form").optional(),message:ee(),requestedSchema:we({type:ft("object"),properties:$n(ee(),Phr),required:Ut(ee()).optional()})}),whr=rL.extend({mode:ft("url"),message:ee(),elicitationId:ee(),url:ee().url()}),Nhr=nn([Dhr,whr]),Ihr=gs.extend({method:ft("elicitation/create"),params:Nhr}),Rhr=Fp.extend({elicitationId:ee()}),Lhr=jp.extend({method:ft("notifications/elicitation/complete"),params:Rhr}),lz=ys.extend({action:ri(["accept","decline","cancel"]),content:W4(e=>e===null?void 0:e,$n(ee(),nn([ee(),gn(),wi(),Ut(ee())])).optional())}),khr=we({type:ft("ref/resource"),uri:ee()});var $hr=we({type:ft("ref/prompt"),name:ee()}),Mhr=zl.extend({ref:nn([$hr,khr]),argument:we({name:ee(),value:ee()}),context:we({arguments:$n(ee(),ee()).optional()}).optional()}),Fhr=gs.extend({method:ft("completion/complete"),params:Mhr});var jhr=ys.extend({completion:Ws({values:Ut(ee()).max(100),total:kn(gn().int()),hasMore:kn(wi())})}),Vhr=we({uri:ee().startsWith("file://"),name:ee().optional(),_meta:$n(ee(),xn()).optional()}),qhr=gs.extend({method:ft("roots/list"),params:zl.optional()}),mse=ys.extend({roots:Ut(Vhr)}),Uhr=jp.extend({method:ft("notifications/roots/list_changed"),params:Fp.optional()}),Cui=nn([tz,aL,Fhr,fse,Ydr,Hdr,Ddr,Ndr,Ldr,Fdr,Vdr,pL,pse,nz,az,oz,cz]),Pui=nn([ez,rz,ise,Uhr,uL]),Dui=nn([Q4,dse,hse,lz,mse,iz,sz,Zx]),wui=nn([tz,ghr,Ihr,qhr,nz,az,oz,cz]),Nui=nn([ez,rz,chr,Udr,$dr,ahr,ehr,uL,Lhr]),Iui=nn([Q4,Tdr,jhr,Qdr,Gdr,wdr,Idr,kdr,uz,nhr,iz,sz,Zx]),Ar=class e extends Error{constructor(t,r,n){super(`MCP error ${t}: ${r}`),this.code=t,this.data=n,this.name="McpError"}static fromError(t,r,n){if(t===an.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new Zoe(i.elicitations,r)}return new e(t,r,n)}},Zoe=class extends Ar{constructor(t,r=`URL elicitation${t.length>1?"s":""} required`){super(an.UrlElicitationRequired,r,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function Tb(e){return e==="completed"||e==="failed"||e==="cancelled"}var Bhr=Symbol("Let zodToJsonSchema decide on which parser to use");var fli=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function gse(e){let r=k4(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=UUe(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function yse(e,t){let r=_b(e,t);if(!r.success)throw r.error;return r.data}var Whr=6e4,pz=class{constructor(t){this._options=t,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(ez,r=>{this._oncancel(r)}),this.setNotificationHandler(rz,r=>{this._onprogress(r)}),this.setRequestHandler(tz,r=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(nz,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Ar(an.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(az,async(r,n)=>{let i=async()=>{let a=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,n.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let p=c,d=new Ar(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 ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let o=await this._taskStore.getTask(a,n.sessionId);if(!o)throw new Ar(an.InvalidParams,`Task not found: ${a}`);if(!Tb(o.status))return await this._waitForTaskUpdate(a,n.signal),await i();if(Tb(o.status)){let s=await this._taskStore.getTaskResult(a,n.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[Eb]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler(oz,async(r,n)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new Ar(an.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(cz,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Ar(an.InvalidParams,`Task not found: ${r.params.taskId}`);if(Tb(i.status))throw new Ar(an.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 a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new Ar(an.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof Ar?i:new Ar(an.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,r,n,i,a=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(t){let r=this._timeoutInfo.get(t);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(t),Ar.fromError(an.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(t){let r=this._timeoutInfo.get(t);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(t))}async connect(t){this._transport=t;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=a=>{n?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),nL(a)||kBe(a)?this._onresponse(a):tse(a)?this._onrequest(a,o):LBe(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Ar.fromError(an.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of t.values())n(r)}_onerror(t){this.onerror?.(t)}_onnotification(t){let r=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(t,r){let n=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,a=t.params?._meta?.[Eb]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:an.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{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 o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let s=NBe(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{let p={relatedRequestId:t.id};a&&(p.relatedTask={taskId:a}),await this.notification(l,p)},sendRequest:async(l,p,d)=>{let f={...d,relatedRequestId:t.id};a&&!f.relatedTask&&(f.relatedTask={taskId:a});let h=f.relatedTask?.taskId??a;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,p,f)},authInfo:r?.authInfo,requestId:t.id,requestInfo:r?.requestInfo,taskId:a,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(t.method)}).then(()=>n(t,u)).then(async l=>{if(o.signal.aborted)return;let p={result:l,jsonrpc:"2.0",id:t.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"response",message:p,timestamp:Date.now()},i?.sessionId):await i?.send(p)},async l=>{if(o.signal.aborted)return;let p={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:an.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{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(t.id)})}_onprogress(t){let{progressToken:r,...n}=t.params,i=Number(r),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}a(n)}_onresponse(t){let r=Number(t.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),nL(t))n(t);else{let o=new Ar(t.error.code,t.error.message,t.error.data);n(o)}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(t)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let a=!1;if(nL(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,r))}}if(a||this._progressHandlers.delete(r),nL(t))i(t);else{let o=Ar.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(t,r,n)}}catch(o){yield{type:"error",error:o instanceof Ar?o:new Ar(an.InternalError,String(o))}}return}let a;try{let o=await this.request(t,Zx,n);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new Ar(an.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},n);if(yield{type:"taskStatus",task:s},Tb(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)}:s.status==="failed"?yield{type:"error",error:new Ar(an.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new Ar(an.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof Ar?o:new Ar(an.InternalError,String(o))}}}request(t,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let p=O=>{l(O)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(O){p(O);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,f={...t,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...t.params,_meta:{...t.params?._meta||{},progressToken:d}}),s&&(f.params={...f.params,task:s}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[Eb]:c}});let h=O=>{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(O)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(A=>this._onerror(new Error(`Failed to send cancellation: ${A}`)));let S=O instanceof Ar?O:new Ar(an.RequestTimeout,String(O));l(S)};this._responseHandlers.set(d,O=>{if(!n?.signal?.aborted){if(O instanceof Error)return l(O);try{let S=_b(r,O.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let g=n?.timeout??Whr,v=()=>h(Ar.fromError(an.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(d,g,n?.maxTotalTimeout,v,n?.resetTimeoutOnProgress??!1);let E=c?.taskId;if(E){let O=S=>{let A=this._responseHandlers.get(d);A?A(S):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,O),this._enqueueTaskMessage(E,{type:"request",message:f,timestamp:Date.now()}).catch(S=>{this._cleanupTimeout(d),l(S)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(O=>{this._cleanupTimeout(d),l(O)})})}async getTask(t,r){return this.request({method:"tasks/get",params:t},iz,r)}async getTaskResult(t,r,n){return this.request({method:"tasks/result",params:t},r,n)}async listTasks(t,r){return this.request({method:"tasks/list",params:t},sz,r)}async cancelTask(t,r){return this.request({method:"tasks/cancel",params:t},FBe,r)}async notification(t,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let n=r?.relatedTask?.taskId;if(n){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Eb]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Eb]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[Eb]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(t,r){let n=gse(t);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>{let o=yse(t,i);return Promise.resolve(r(o,a))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,r){let n=gse(t);this._notificationHandlers.set(n,i=>{let a=yse(t,i);return Promise.resolve(r(a))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let r=this._taskProgressTokens.get(t);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,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(t,r,n,i)}async _clearTaskQueue(t,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(t,r);for(let i of n)if(i.type==="request"&&tse(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new Ar(an.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,a)=>{if(r.aborted){a(new Ar(an.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),a(new Ar(an.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await n.createTask(i,t.id,{method:t.method,params:t.params},r)},getTask:async i=>{let a=await n.getTask(i,r);if(!a)throw new Ar(an.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await n.storeTaskResult(i,a,o,r);let s=await n.getTask(i,r);if(s){let c=uL.parse({method:"notifications/tasks/status",params:s});await this.notification(c),Tb(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,a,o)=>{let s=await n.getTask(i,r);if(!s)throw new Ar(an.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Tb(s.status))throw new Ar(an.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,a,o,r);let c=await n.getTask(i,r);if(c){let u=uL.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Tb(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function zBe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function HBe(e,t){let r={...e};for(let n in t){let i=n,a=t[i];if(a===void 0)continue;let o=r[i];zBe(o)&&zBe(a)?r[i]={...o,...a}:r[i]=a}return r}var Mze=Pt(Gz(),1),Fze=Pt($ze(),1);function M_r(){let e=new Mze.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Fze.default)(e),e}var Yz=class{constructor(t){this._ajv=t??M_r()}getValidator(t){let r="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Wz=class{constructor(t){this._server=t}requestStream(t,r,n){return this._server.requestStream(t,r,n)}async getTask(t,r){return this._server.getTask({taskId:t},r)}async getTaskResult(t,r,n){return this._server.getTaskResult({taskId:t},r,n)}async listTasks(t,r){return this._server.listTasks(t?{cursor:t}:void 0,r)}async cancelTask(t,r){return this._server.cancelTask({taskId:t},r)}};function jze(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${t})`);break;default:break}}function Vze(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var Xz=class extends pz{constructor(t,r){super(r),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(fL.options.map((n,i)=>[n,i])),this.isMessageIgnored=(n,i)=>{let a=this._loggingLevels.get(i);return a?this.LOG_LEVEL_SEVERITY.get(n)<this.LOG_LEVEL_SEVERITY.get(a):!1},this._capabilities=r?.capabilities??{},this._instructions=r?.instructions,this._jsonSchemaValidator=r?.jsonSchemaValidator??new Yz,this.setRequestHandler(aL,n=>this._oninitialize(n)),this.setNotificationHandler(ise,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(fse,async(n,i)=>{let a=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=n.params,s=fL.safeParse(o);return s.success&&this._loggingLevels.set(a,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Wz(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=HBe(this._capabilities,t)}setRequestHandler(t,r){let i=k4(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(Yx(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");if(a==="tools/call"){let s=async(c,u)=>{let l=_b(pL,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new Ar(an.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:p}=l.data,d=await Promise.resolve(r(c,u));if(p.task){let h=_b(Zx,d);if(!h.success){let g=h.error instanceof Error?h.error.message:String(h.error);throw new Ar(an.InvalidParams,`Invalid task creation result: ${g}`)}return h.data}let f=_b(uz,d);if(!f.success){let h=f.error instanceof Error?f.error.message:String(f.error);throw new Ar(an.InvalidParams,`Invalid tools/call result: ${h}`)}return f.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,r)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);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 ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);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 ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);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 ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){Vze(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&jze(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let r=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:PBe.includes(r)?r:Qoe,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"},Q4)}async createMessage(t,r){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],i=Array.isArray(n.content)?n.content:[n.content],a=i.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],c=s.some(u=>u.type==="tool_use");if(a){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=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(u.size!==l.size||![...u].every(p=>l.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},hse,r):this.request({method:"sampling/createMessage",params:t},dse,r)}async elicitInput(t,r){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=t;return this.request({method:"elicitation/create",params:i},lz,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=t.mode==="form"?t:{...t,mode:"form"},a=await this.request({method:"elicitation/create",params:i},lz,r);if(a.action==="accept"&&a.content&&i.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(i.requestedSchema)(a.content);if(!s.valid)throw new Ar(an.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof Ar?o:new Ar(an.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return a}}}createElicitationCompletionNotifier(t,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:t}},r)}async listRoots(t,r){return this.request({method:"roots/list",params:t},mse,r)}async sendLoggingMessage(t,r){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,r))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}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 cue=Pt(require("node:process"),1);var Jz=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
1609
1609
  `);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),F_r(r)}clear(){this._buffer=void 0}};function F_r(e){return $Be.parse(JSON.parse(e))}function qze(e){return JSON.stringify(e)+`
1610
- `}var Zz=class{constructor(t=cue.default.stdin,r=cue.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new Jz,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 t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}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(t){return new Promise(r=>{let n=qze(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var Bze="0.6.16";var Q0={name:"@sap-ux/fiori-mcp-server",description:"SAP Fiori - Model Context Protocol (MCP) server",version:Bze,keywords:["SAP Fiori tools","SAP Fiori elements","SAP Fiori freestyle","MCP","AI"],repository:{type:"git",url:"https://github.com/SAP/open-ux-tools.git",directory:"packages/fiori-mcp-server"},bugs:{url:"https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Afiori-mcp-server"},license:"Apache-2.0",main:"dist/index.js",scripts:{"build-esbuild-base":"esbuild --bundle --platform=node --target=node20 --outdir=dist --external:vscode --external:@lancedb/lancedb --external:@xenova/transformers --external:@sap-ux/fiori-docs-embeddings --external:@sap-ux/store --main-fields=module,main src/index.ts","build-dev":"pnpm run build-esbuild-base --sourcemap=inline","build-compile":"tsc --noEmit","build-bundle":"pnpm run build-esbuild-base --minify",build:"npm-run-all build-compile build-bundle",watch:"tsc --watch",bundle:"npm-run-all build tgz:package tgz:rename","tgz:package":"pnpm pack","tgz:rename":"node -e \"const fs=require('fs'), p=require('./package.json'), d=new Date().toISOString().split('T')[0], oldName=p.name.startsWith('@') ? `${p.name.replace('@', '').replace('/', '-')}-${p.version}.tgz` : `${p.name}-${p.version}.tgz`; fs.renameSync(oldName, `${oldName.replace('.tgz','')}-${d}.tgz`)\"",clean:"rimraf --glob dist test/test-output *.tsbuildinfo",format:"prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",lint:"eslint","lint:fix":"eslint --fix",test:"jest --ci --forceExit --detectOpenHandles --colors",inspector:"npx @modelcontextprotocol/inspector node dist/index.js","inspector-ts":"npx @modelcontextprotocol/inspector ts-node -T src/index.ts --log-level=debug",start:'npx -y supergateway --port 9881 --sessionTimeout 300000 --stdio "node ./dist/index.js"',"view:integration":"promptfoo view -y","test:integration:once":"promptfoo eval --config test/integration/scenarios/promptfooconfig.yaml --max-concurrency 1 --repeat 1 --output reports/integration.txt","test:integration:dev":"promptfoo eval --config test/integration/scenarios/test-dev.yaml --max-concurrency 1 --repeat 1 --output reports/integration.txt","test:integration:multiple":"npm run test:promptfoo -- --repeat 5"},files:["LICENSE","dist","!dist/**/*.map"],bin:{"fiori-mcp":"./dist/index.js"},devDependencies:{"npm-run-all2":"8.0.4",esbuild:"0.25.6","@modelcontextprotocol/sdk":"1.25.2","@sap-ux/axios-extension":"workspace:*","@sap/ux-specification":"1.142.0","@sap-ux/project-access":"workspace:*","@sap-ux/fiori-annotation-api":"workspace:*","@sap-ux/annotation-converter":"0.10.19","@sap-ux/edmx-parser":"0.9.6","@sap-ux/fiori-docs-embeddings":"workspace:*","@sap-ux/i18n":"workspace:*","@sap-ux/logger":"workspace:*","@sap-ux/odata-annotation-core-types":"workspace:*","@sap-ux/odata-entity-model":"workspace:*","@sap-ux/text-document-utils":"workspace:*","@types/diff":"5.0.9","@types/json-schema":"7.0.5","@types/mem-fs":"1.1.2","@types/mem-fs-editor":"7.0.1","@sap-ux/btp-utils":"workspace:*","@sap-ux/feature-toggle":"workspace:*","@sap-ux/nodejs-utils":"workspace:*","@sap-ux/telemetry":"workspace:*",i18next:"25.8.0","os-name":"4.0.1",zod:"4.1.13","@sap-ai-sdk/foundation-models":"2.3.0","@sap-ai-sdk/langchain":"2.3.0",promptfoo:"0.119.14","@langchain/mcp-adapters":"1.0.2","@langchain/core":"1.1.8"},dependencies:{"@sap-ux/fiori-docs-embeddings":"workspace:*","@sap-ux/store":"workspace:*","@xenova/transformers":"2.17.2","@lancedb/lancedb":"0.22.0","mem-fs":"2.1.0","mem-fs-editor":"9.4.0"},engines:{node:">=20.x"}};var Gze=we({name:ee().describe("Name of the Fiori application. Usually derived from the `sap.app/id` field in the application's manifest.json."),appPath:ee().describe("Absolute path to the Fiori application's root directory."),projectPath:ee().describe("Absolute path to the root directory of the project containing this Fiori application. For EDMXBackend (standalone) projects, this is the same as `appPath`. For CAP projects, this points to the CAP project root, which may contain multiple Fiori applications."),projectType:ri(["EDMXBackend","CAPJava","CAPNodejs"]).describe("Type of project the application belongs to."),odataVersion:ee().describe("OData protocol version used by the application's main service.")}),tT=nn([ee(),Ut(nn([ee(),gn()]))]),Kze=we({functionalityId:tT.describe("Identifier to pass as the `functionalityId` parameter when calling `get_functionality_details` or `execute_functionality`"),description:ee()}),zze=ri(["object","array","string","number","boolean","null","integer","any"]),Hze=we({type:nn([zze,Ut(zze)]).optional(),description:ee().optional(),properties:z4().optional()}).catchall(z4()),Yze=Hze.extend({properties:$n(ee(),nn([Hze,wi()])).optional()});var Wze=we({searchPath:Ut(ee()).describe("Path to search for Fiori applications (defaults to current directory). If VSCode - list of VS Code workspace folder paths(`workspace.workspaceFolders`)")}),Xze=we({appPath:ee().describe("Path to the root folder of the Fiori application (where package.json and ui5.yaml reside) if one exists or to the current directory. Path should be an absolute path.")}),Jze=we({appPath:ee().describe("Path to the Fiori application if one exists or to the current directory. Path should be an absolute path."),functionalityId:tT.describe("The ID of the functionality to get details for")}),Zze=we({functionalityId:tT.describe("The ID of the functionality to execute"),parameters:$n(ee(),xn()).describe("Parameters for the functionality execution"),appPath:ee().describe("Path to the Fiori application if one exists or to the current directory. Path should be an absolute path.")}).describe('Input object for executing a functionality. Only three top-level properties are allowed: "functionalityId", "parameters", and "appPath". All other dynamic or functionality-specific inputs must be included inside the "parameters" object. Do not place any additional fields at the root level.'),Ghi=we({query:ee().min(2).describe("The search query for fiori elements, annotations, sapui5, fiori tools documentation")});var Yhi=ee().describe("Search results as formatted text"),Qze=we({applications:Ut(Gze)}),e5e=we({applicationPath:ee(),functionalities:Ut(Kze)}),t5e=we({functionalityId:tT.describe("Identifier to pass as the `functionalityId` parameter when calling `get_functionality_details` or `execute_functionality`"),name:ee(),description:ee(),technicalDescription:ee().optional(),parameters:Yze,prerequisites:Ut(ee()).optional(),impact:ee().optional(),examples:Ut(ee()).optional(),pageName:ee().optional()}),r5e=we({functionalityId:tT,status:ee(),message:ee(),parameters:xn(),appPath:ee(),changes:Ut(ee()),timestamp:ee()});var L_e=Pt(require("node:fs/promises")),lf=Pt(require("node:path"));var tu=Pt(Kb()),$dt=Pt(Cd()),Mdt=require("node:path");function zZr(){let e=globalThis.LOG_LEVEL,t=process.env.LOG_LEVEL,r=process.argv.find(i=>i.startsWith("--log-level="))?.split("=")[1],n=e??t??r;if(n)switch(n.toUpperCase()){case"OFF":return;case"ERROR":return tu.LogLevel.Error;case"WARN":return tu.LogLevel.Warn;case"INFO":return tu.LogLevel.Info;case"DEBUG":return tu.LogLevel.Debug;case"VERBOSE":return tu.LogLevel.Verbose;case"SILLY":return tu.LogLevel.Silly;default:break}return tu.LogLevel.Error}var kdt=zZr(),dt=new tu.ToolsLogger({logLevel:kdt??tu.LogLevel.Error,transports:kdt===void 0?[new tu.NullTransport]:[new tu.FileTransport({filename:(0,Mdt.join)($dt.fioriToolsDirectory,"fiori-mcp-server.log"),maxsize:10*1024*1024,maxFiles:5})],logPrefix:"fiori-mcp"}),RM={info:(e,...t)=>{dt.info(`@sap/ux-specification: ${e}`);for(let r of t)dt.info(typeof r=="number"?r.toString():r)},warning:(e,...t)=>{dt.warn(`@sap/ux-specification: ${e}`);for(let r of t)dt.warn(typeof r=="number"?r.toString():r)},error:(e,...t)=>{dt.error(`@sap/ux-specification: ${e}`);for(let r of t)dt.error(typeof r=="number"?r.toString():r)},reset:()=>{}};async function Fdt(){try{let r;try{r=require("@sap-ux/fiori-docs-embeddings")}catch{try{r=await import("@sap-ux/fiori-docs-embeddings")}catch{r=null}}if(!r||typeof r.getDataPath!="function")throw new Error("Package not found or invalid");let n=r.getDataPath();return await L_e.default.access(n),dt.log("\u2713 Using @sap-ux/fiori-docs-embeddings package"),{dataPath:n,embeddingsPath:lf.default.join(n,"embeddings"),searchPath:lf.default.join(n,"search"),docsPath:lf.default.join(n,"docs"),isExternalPackage:!0,isAvailable:!0}}catch{dt.warn("Could not load @sap-ux/fiori-docs-embeddings package, trying local data...")}let e=lf.default.join(__dirname,"../../data");try{return await L_e.default.access(e),dt.log("\u2713 Using local data directory"),{dataPath:e,embeddingsPath:lf.default.join(e,"embeddings"),searchPath:lf.default.join(e,"search"),docsPath:lf.default.join(e,"docs"),isExternalPackage:!1,isAvailable:!0}}catch{dt.warn("Local data directory not available either")}let t=lf.default.join(__dirname,"../../data");return dt.warn("\u26A0\uFE0F No embeddings data available - running in limited mode"),{dataPath:t,embeddingsPath:lf.default.join(t,"embeddings"),searchPath:lf.default.join(t,"search"),docsPath:lf.default.join(t,"docs"),isExternalPackage:!1,isAvailable:!1}}var uc=Pt(Cd()),LM=require("node:path");async function ru(e){try{e=(0,LM.join)(e);try{let t=await(0,uc.createApplicationAccess)(e);return{root:t.project.root,appId:t.getAppId(),applicationAccess:t}}catch(t){dt.warn(`Application was not found by given path. Error: ${t}`);let r=await(0,uc.findProjectRoot)(e),n=await(0,uc.getProject)(r);if(n)return{root:n.root,appId:""}}}catch(t){dt.warn(`Project was not found by given path. Error: ${t}`);return}}var c9=e=>{let t;switch(e){case uc.DirName.View:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.View);break}case uc.DirName.Fragment:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.Fragment);break}case uc.DirName.Controller:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.Controller);break}default:t=e}return t},Xh=(e,t,r=new Set)=>{if(!e||typeof e!="object")return{};if(e.$ref?.startsWith("#/definitions/")){let i=e.$ref,a=i.replace("#/definitions/",""),o=t.definitions?.[a]??null;if(r.has(i))return{...o};if(r.add(i),o){let s={...e};return delete s.$ref,Xh({...o,...s},t,r)}}let n={...e};return n.properties&&(n.properties=Object.fromEntries(Object.entries(n.properties).map(([i,a])=>[i,Xh(a,t,r)]))),n.items&&(Array.isArray(n.items)?n.items=n.items.map(i=>Xh(i,t,r)):n.items=Xh(n.items,t,r)),n.allOf&&(n.allOf=n.allOf.map(i=>Xh(i,t,r))),n.anyOf&&(n.anyOf=n.anyOf.map(i=>Xh(i,t,r))),n.oneOf&&(n.oneOf=n.oneOf.map(i=>Xh(i,t,r))),typeof n.additionalProperties=="object"&&(n.additionalProperties=Xh(n.additionalProperties,t,r)),n},jdt=(e,t)=>({type:"object",properties:{[e]:t}}),va=e=>{let t=q0(e);return delete t.$schema,t},Jh=(e,t)=>{try{return e.parse(t)}catch(r){throw r instanceof coe?new Error(`Missing required fields in parameters. ${JSON.stringify(r.issues,null,4)}`):new Error("Unknown error. Recheck input parameters.")}};var NAt=require("node:util"),IAt=require("node:child_process"),RAt=Pt(cSe());async function OY(e="1.18.5"){let t="@sap/generator-fiori";if((await(0,RAt.findInstalledPackages)(t,{minVersion:e}))?.length<1)throw new Error(`Fiori generator not found. Please install the Fiori generator >=${e} with 'npm install -g ${t}' and retry this call`)}var SY=(0,NAt.promisify)(IAt.exec);var LAt=require("@lancedb/lancedb");var uSe=Pt(require("node:fs/promises")),lSe=Pt(require("node:path")),AY=class{connection=null;tables=[];tableIndex=null;metadata=null;dataPath;constructor(t){this.dataPath=t||""}async initialize(){try{dt.log("Loading vector database from pre-built embeddings...");let t=await Fdt();if(!t.isAvailable)throw new Error("No embeddings data available");this.dataPath=t.embeddingsPath,dt.log(`Using embeddings path: ${this.dataPath} (external: ${t.isExternalPackage})`);let r=lSe.default.join(this.dataPath,"metadata.json"),n=await uSe.default.readFile(r,"utf-8");this.metadata=JSON.parse(n),dt.log("\u2713 Embedding metadata loaded:"),dt.log(` Model: ${this?.metadata?.model}`),dt.log(` Dimensions: ${this?.metadata?.dimensions}`),dt.log(` Total vectors: ${this?.metadata?.totalVectors}`),dt.log(` Created: ${this?.metadata?.createdAt}`),this.connection=await(0,LAt.connect)(this.dataPath);let i=lSe.default.join(this.dataPath,"table_index.json");try{let a=await uSe.default.readFile(i,"utf-8");this.tableIndex=JSON.parse(a),this.tables=[];for(let o of this.tableIndex?.tables||[]){let s=await this.connection.openTable(o);this.tables.push(s)}dt.log(`\u2713 Loaded ${this.tables.length} split tables`)}catch{dt.log("No table index found, trying single table...");try{let a=await this.connection.openTable("documents");this.tables=[a],this.tableIndex={tables:["documents"],totalTables:1,maxVectorsPerTable:-1,totalVectors:this.metadata?.totalVectors||0}}catch(a){throw new Error(`No tables found: ${a}`)}}dt.log("\u2713 Vector database loaded and ready")}catch(t){throw new Error(`Failed to load vector database: ${t}`)}}async semanticSearch(t,r=10,n){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let i=[];for(let o of this.tables){let s=o.vectorSearch(t).limit(r*2);n&&(s=s.where(`category = "${n}"`));let c=await s.toArray();i.push(...c)}return i.sort((o,s)=>(o._distance||0)-(s._distance||0)),i.slice(0,r).map(o=>({document:{id:o.document_id,vector:o.vector,content:o.content,title:o.title,category:o.category,path:o.path,chunk_index:o.chunk_index,metadata:{tags:this.parseJsonField(o.tags_json)||[],headers:this.parseJsonField(o.headers_json)||[],lastModified:new Date(o.lastModified),wordCount:o.wordCount,excerpt:o.excerpt}},score:1-(o._distance||0),distance:o._distance||0}))}catch(i){throw dt.error(`Semantic search failed: ${i}`),new Error(`Semantic search failed: ${i}`)}}async findSimilarToText(t,r=5){return dt.warn("findSimilarToText requires embedding generation - not available in simplified mode"),[]}async findSimilarToDocument(t,r=5){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let n=null;for(let s of this.tables){let c=await s.search("").where(`document_id = "${t}" AND chunk_index = 0`).limit(1).toArray();if(c.length>0){n=c[0].vector;break}}if(!n)return[];let i=[];for(let s of this.tables){let c=await s.vectorSearch(n).where(`document_id != "${t}"`).limit(r*2).toArray();i.push(...c)}let a=new Map;for(let s of i){let c=s.document_id,u=1-(s._distance||0);(!a.has(c)||a.get(c).score<u)&&a.set(c,{...s,score:u,distance:s._distance||0})}return Array.from(a.values()).sort((s,c)=>c.score-s.score).slice(0,r).map(s=>({document:{id:s.document_id,vector:s.vector,content:s.content,title:s.title,category:s.category,path:s.path,chunk_index:s.chunk_index,metadata:{tags:this.parseJsonField(s.tags_json)||[],headers:this.parseJsonField(s.headers_json)||[],lastModified:new Date(s.lastModified),wordCount:s.wordCount,excerpt:s.excerpt}},score:s.score,distance:s.distance}))}catch(n){return dt.error(`Find similar documents failed: ${n}`),[]}}async getDocumentsByCategory(t,r){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let n=[];for(let a of this.tables){let o=a.search("").where(`category = "${t}" AND chunk_index = 0`);r&&(o=o.limit(Math.ceil(r/this.tables.length)+10));let s=await o.toArray();n.push(...s)}return(r?n.slice(0,r):n).map(a=>({document:{id:a.document_id,vector:a.vector,content:a.content,title:a.title,category:a.category,path:a.path,chunk_index:a.chunk_index,metadata:{tags:this.parseJsonField(a.tags_json)||[],headers:this.parseJsonField(a.headers_json)||[],lastModified:new Date(a.lastModified),wordCount:a.wordCount,excerpt:a.excerpt}},score:1,distance:0}))}catch(n){return dt.error(`Get documents by category failed: ${n}`),[]}}getMetadata(){return this.metadata}parseJsonField(t){try{return t?JSON.parse(t):[]}catch{return[]}}isInitialized(){return this.tables.length>0&&this.metadata!==null}async close(){this.connection&&(this.connection=null,this.tables=[],dt.log("Vector database connection closed"))}};var xY=class{pipeline=null;initialized=!1;async initialize(){if(!this.initialized)try{let{pipeline:t}=await import("@xenova/transformers");this.pipeline=await t("feature-extraction","Xenova/all-MiniLM-L6-v2",{quantized:!1}),this.initialized=!0}catch(t){throw new Error(`Failed to initialize text embedding service: ${t}. Make sure @xenova/transformers is available.`)}}async generateEmbedding(t){if(!this.initialized||!this.pipeline)throw new Error("Text embedding service not initialized. Call initialize() first.");try{let r=t.replace(/\n+/g," ").replace(/\s+/g," ").trim().substring(0,8192);if(!r)throw new Error("Empty text provided for embedding");let n=await this.pipeline(r,{pooling:"mean",normalize:!0});return Array.from(n.data)}catch(r){throw new Error(`Failed to generate embedding: ${r}`)}}isInitialized(){return this.initialized}};async function pSe(e,t=!1){let{query:r,maxResults:n}=e;try{let i=new AY,a=new xY;await i.initialize(),await a.initialize();let o=await a.generateEmbedding(r),s=await i.semanticSearch(o,n??10);if(t){let c="";for(let[u,l]of s.entries())c+=`Result ${u+1}:
1610
+ `}var Zz=class{constructor(t=cue.default.stdin,r=cue.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new Jz,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 t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}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(t){return new Promise(r=>{let n=qze(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var Bze="0.6.17";var Q0={name:"@sap-ux/fiori-mcp-server",description:"SAP Fiori - Model Context Protocol (MCP) server",version:Bze,keywords:["SAP Fiori tools","SAP Fiori elements","SAP Fiori freestyle","MCP","AI"],repository:{type:"git",url:"https://github.com/SAP/open-ux-tools.git",directory:"packages/fiori-mcp-server"},bugs:{url:"https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Afiori-mcp-server"},license:"Apache-2.0",main:"dist/index.js",scripts:{"build-esbuild-base":"esbuild --bundle --platform=node --target=node20 --outdir=dist --external:vscode --external:@lancedb/lancedb --external:@xenova/transformers --external:@sap-ux/fiori-docs-embeddings --external:@sap-ux/store --main-fields=module,main src/index.ts","build-dev":"pnpm run build-esbuild-base --sourcemap=inline","build-compile":"tsc --noEmit","build-bundle":"pnpm run build-esbuild-base --minify",build:"npm-run-all build-compile build-bundle",watch:"tsc --watch",bundle:"npm-run-all build tgz:package tgz:rename","tgz:package":"pnpm pack","tgz:rename":"node -e \"const fs=require('fs'), p=require('./package.json'), d=new Date().toISOString().split('T')[0], oldName=p.name.startsWith('@') ? `${p.name.replace('@', '').replace('/', '-')}-${p.version}.tgz` : `${p.name}-${p.version}.tgz`; fs.renameSync(oldName, `${oldName.replace('.tgz','')}-${d}.tgz`)\"",clean:"rimraf --glob dist test/test-output *.tsbuildinfo",format:"prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",lint:"eslint","lint:fix":"eslint --fix",test:"jest --ci --forceExit --detectOpenHandles --colors",inspector:"npx @modelcontextprotocol/inspector node dist/index.js","inspector-ts":"npx @modelcontextprotocol/inspector ts-node -T src/index.ts --log-level=debug",start:'npx -y supergateway --port 9881 --sessionTimeout 300000 --stdio "node ./dist/index.js"',"view:integration":"promptfoo view -y","test:integration:once":"promptfoo eval --config test/integration/scenarios/promptfooconfig.yaml --max-concurrency 1 --repeat 1 --output reports/integration.txt","test:integration:dev":"promptfoo eval --config test/integration/scenarios/test-dev.yaml --max-concurrency 1 --repeat 1 --output reports/integration.txt","test:integration:multiple":"npm run test:promptfoo -- --repeat 5"},files:["LICENSE","dist","!dist/**/*.map"],bin:{"fiori-mcp":"./dist/index.js"},devDependencies:{"npm-run-all2":"8.0.4",esbuild:"0.25.6","@modelcontextprotocol/sdk":"1.25.2","@sap-ux/axios-extension":"workspace:*","@sap/ux-specification":"1.142.0","@sap-ux/project-access":"workspace:*","@sap-ux/fiori-annotation-api":"workspace:*","@sap-ux/annotation-converter":"0.10.19","@sap-ux/edmx-parser":"0.9.6","@sap-ux/fiori-docs-embeddings":"workspace:*","@sap-ux/i18n":"workspace:*","@sap-ux/logger":"workspace:*","@sap-ux/odata-annotation-core-types":"workspace:*","@sap-ux/odata-entity-model":"workspace:*","@sap-ux/text-document-utils":"workspace:*","@types/diff":"5.0.9","@types/json-schema":"7.0.5","@types/mem-fs":"1.1.2","@types/mem-fs-editor":"7.0.1","@sap-ux/btp-utils":"workspace:*","@sap-ux/feature-toggle":"workspace:*","@sap-ux/nodejs-utils":"workspace:*","@sap-ux/telemetry":"workspace:*",i18next:"25.8.0","os-name":"4.0.1",zod:"4.1.13","@sap-ai-sdk/foundation-models":"2.3.0","@sap-ai-sdk/langchain":"2.3.0",promptfoo:"0.119.14","@langchain/mcp-adapters":"1.0.2","@langchain/core":"1.1.8"},dependencies:{"@sap-ux/fiori-docs-embeddings":"workspace:*","@sap-ux/store":"workspace:*","@xenova/transformers":"2.17.2","@lancedb/lancedb":"0.22.0","mem-fs":"2.1.0","mem-fs-editor":"9.4.0"},engines:{node:">=20.x"}};var Gze=we({name:ee().describe("Name of the Fiori application. Usually derived from the `sap.app/id` field in the application's manifest.json."),appPath:ee().describe("Absolute path to the Fiori application's root directory."),projectPath:ee().describe("Absolute path to the root directory of the project containing this Fiori application. For EDMXBackend (standalone) projects, this is the same as `appPath`. For CAP projects, this points to the CAP project root, which may contain multiple Fiori applications."),projectType:ri(["EDMXBackend","CAPJava","CAPNodejs"]).describe("Type of project the application belongs to."),odataVersion:ee().describe("OData protocol version used by the application's main service.")}),tT=nn([ee(),Ut(nn([ee(),gn()]))]),Kze=we({functionalityId:tT.describe("Identifier to pass as the `functionalityId` parameter when calling `get_functionality_details` or `execute_functionality`"),description:ee()}),zze=ri(["object","array","string","number","boolean","null","integer","any"]),Hze=we({type:nn([zze,Ut(zze)]).optional(),description:ee().optional(),properties:z4().optional()}).catchall(z4()),Yze=Hze.extend({properties:$n(ee(),nn([Hze,wi()])).optional()});var Wze=we({searchPath:Ut(ee()).describe("Path to search for Fiori applications (defaults to current directory). If VSCode - list of VS Code workspace folder paths(`workspace.workspaceFolders`)")}),Xze=we({appPath:ee().describe("Path to the root folder of the Fiori application (where package.json and ui5.yaml reside) if one exists or to the current directory. Path should be an absolute path.")}),Jze=we({appPath:ee().describe("Path to the Fiori application if one exists or to the current directory. Path should be an absolute path."),functionalityId:tT.describe("The ID of the functionality to get details for")}),Zze=we({functionalityId:tT.describe("The ID of the functionality to execute"),parameters:$n(ee(),xn()).describe("Parameters for the functionality execution"),appPath:ee().describe("Path to the Fiori application if one exists or to the current directory. Path should be an absolute path.")}).describe('Input object for executing a functionality. Only three top-level properties are allowed: "functionalityId", "parameters", and "appPath". All other dynamic or functionality-specific inputs must be included inside the "parameters" object. Do not place any additional fields at the root level.'),Ghi=we({query:ee().min(2).describe("The search query for fiori elements, annotations, sapui5, fiori tools documentation")});var Yhi=ee().describe("Search results as formatted text"),Qze=we({applications:Ut(Gze)}),e5e=we({applicationPath:ee(),functionalities:Ut(Kze)}),t5e=we({functionalityId:tT.describe("Identifier to pass as the `functionalityId` parameter when calling `get_functionality_details` or `execute_functionality`"),name:ee(),description:ee(),technicalDescription:ee().optional(),parameters:Yze,prerequisites:Ut(ee()).optional(),impact:ee().optional(),examples:Ut(ee()).optional(),pageName:ee().optional()}),r5e=we({functionalityId:tT,status:ee(),message:ee(),parameters:xn(),appPath:ee(),changes:Ut(ee()),timestamp:ee()});var L_e=Pt(require("node:fs/promises")),lf=Pt(require("node:path"));var tu=Pt(Kb()),$dt=Pt(Cd()),Mdt=require("node:path");function zZr(){let e=globalThis.LOG_LEVEL,t=process.env.LOG_LEVEL,r=process.argv.find(i=>i.startsWith("--log-level="))?.split("=")[1],n=e??t??r;if(n)switch(n.toUpperCase()){case"OFF":return;case"ERROR":return tu.LogLevel.Error;case"WARN":return tu.LogLevel.Warn;case"INFO":return tu.LogLevel.Info;case"DEBUG":return tu.LogLevel.Debug;case"VERBOSE":return tu.LogLevel.Verbose;case"SILLY":return tu.LogLevel.Silly;default:break}return tu.LogLevel.Error}var kdt=zZr(),dt=new tu.ToolsLogger({logLevel:kdt??tu.LogLevel.Error,transports:kdt===void 0?[new tu.NullTransport]:[new tu.FileTransport({filename:(0,Mdt.join)($dt.fioriToolsDirectory,"fiori-mcp-server.log"),maxsize:10*1024*1024,maxFiles:5})],logPrefix:"fiori-mcp"}),RM={info:(e,...t)=>{dt.info(`@sap/ux-specification: ${e}`);for(let r of t)dt.info(typeof r=="number"?r.toString():r)},warning:(e,...t)=>{dt.warn(`@sap/ux-specification: ${e}`);for(let r of t)dt.warn(typeof r=="number"?r.toString():r)},error:(e,...t)=>{dt.error(`@sap/ux-specification: ${e}`);for(let r of t)dt.error(typeof r=="number"?r.toString():r)},reset:()=>{}};async function Fdt(){try{let r;try{r=require("@sap-ux/fiori-docs-embeddings")}catch{try{r=await import("@sap-ux/fiori-docs-embeddings")}catch{r=null}}if(!r||typeof r.getDataPath!="function")throw new Error("Package not found or invalid");let n=r.getDataPath();return await L_e.default.access(n),dt.log("\u2713 Using @sap-ux/fiori-docs-embeddings package"),{dataPath:n,embeddingsPath:lf.default.join(n,"embeddings"),searchPath:lf.default.join(n,"search"),docsPath:lf.default.join(n,"docs"),isExternalPackage:!0,isAvailable:!0}}catch{dt.warn("Could not load @sap-ux/fiori-docs-embeddings package, trying local data...")}let e=lf.default.join(__dirname,"../../data");try{return await L_e.default.access(e),dt.log("\u2713 Using local data directory"),{dataPath:e,embeddingsPath:lf.default.join(e,"embeddings"),searchPath:lf.default.join(e,"search"),docsPath:lf.default.join(e,"docs"),isExternalPackage:!1,isAvailable:!0}}catch{dt.warn("Local data directory not available either")}let t=lf.default.join(__dirname,"../../data");return dt.warn("\u26A0\uFE0F No embeddings data available - running in limited mode"),{dataPath:t,embeddingsPath:lf.default.join(t,"embeddings"),searchPath:lf.default.join(t,"search"),docsPath:lf.default.join(t,"docs"),isExternalPackage:!1,isAvailable:!1}}var uc=Pt(Cd()),LM=require("node:path");async function ru(e){try{e=(0,LM.join)(e);try{let t=await(0,uc.createApplicationAccess)(e);return{root:t.project.root,appId:t.getAppId(),applicationAccess:t}}catch(t){dt.warn(`Application was not found by given path. Error: ${t}`);let r=await(0,uc.findProjectRoot)(e),n=await(0,uc.getProject)(r);if(n)return{root:n.root,appId:""}}}catch(t){dt.warn(`Project was not found by given path. Error: ${t}`);return}}var c9=e=>{let t;switch(e){case uc.DirName.View:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.View);break}case uc.DirName.Fragment:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.Fragment);break}case uc.DirName.Controller:{t=(0,LM.join)(uc.DirName.Ext,uc.DirName.Controller);break}default:t=e}return t},Xh=(e,t,r=new Set)=>{if(!e||typeof e!="object")return{};if(e.$ref?.startsWith("#/definitions/")){let i=e.$ref,a=i.replace("#/definitions/",""),o=t.definitions?.[a]??null;if(r.has(i))return{...o};if(r.add(i),o){let s={...e};return delete s.$ref,Xh({...o,...s},t,r)}}let n={...e};return n.properties&&(n.properties=Object.fromEntries(Object.entries(n.properties).map(([i,a])=>[i,Xh(a,t,r)]))),n.items&&(Array.isArray(n.items)?n.items=n.items.map(i=>Xh(i,t,r)):n.items=Xh(n.items,t,r)),n.allOf&&(n.allOf=n.allOf.map(i=>Xh(i,t,r))),n.anyOf&&(n.anyOf=n.anyOf.map(i=>Xh(i,t,r))),n.oneOf&&(n.oneOf=n.oneOf.map(i=>Xh(i,t,r))),typeof n.additionalProperties=="object"&&(n.additionalProperties=Xh(n.additionalProperties,t,r)),n},jdt=(e,t)=>({type:"object",properties:{[e]:t}}),va=e=>{let t=q0(e);return delete t.$schema,t},Jh=(e,t)=>{try{return e.parse(t)}catch(r){throw r instanceof coe?new Error(`Missing required fields in parameters. ${JSON.stringify(r.issues,null,4)}`):new Error("Unknown error. Recheck input parameters.")}};var NAt=require("node:util"),IAt=require("node:child_process"),RAt=Pt(cSe());async function OY(e="1.18.5"){let t="@sap/generator-fiori";if((await(0,RAt.findInstalledPackages)(t,{minVersion:e}))?.length<1)throw new Error(`Fiori generator not found. Please install the Fiori generator >=${e} with 'npm install -g ${t}' and retry this call`)}var SY=(0,NAt.promisify)(IAt.exec);var LAt=require("@lancedb/lancedb");var uSe=Pt(require("node:fs/promises")),lSe=Pt(require("node:path")),AY=class{connection=null;tables=[];tableIndex=null;metadata=null;dataPath;constructor(t){this.dataPath=t||""}async initialize(){try{dt.log("Loading vector database from pre-built embeddings...");let t=await Fdt();if(!t.isAvailable)throw new Error("No embeddings data available");this.dataPath=t.embeddingsPath,dt.log(`Using embeddings path: ${this.dataPath} (external: ${t.isExternalPackage})`);let r=lSe.default.join(this.dataPath,"metadata.json"),n=await uSe.default.readFile(r,"utf-8");this.metadata=JSON.parse(n),dt.log("\u2713 Embedding metadata loaded:"),dt.log(` Model: ${this?.metadata?.model}`),dt.log(` Dimensions: ${this?.metadata?.dimensions}`),dt.log(` Total vectors: ${this?.metadata?.totalVectors}`),dt.log(` Created: ${this?.metadata?.createdAt}`),this.connection=await(0,LAt.connect)(this.dataPath);let i=lSe.default.join(this.dataPath,"table_index.json");try{let a=await uSe.default.readFile(i,"utf-8");this.tableIndex=JSON.parse(a),this.tables=[];for(let o of this.tableIndex?.tables||[]){let s=await this.connection.openTable(o);this.tables.push(s)}dt.log(`\u2713 Loaded ${this.tables.length} split tables`)}catch{dt.log("No table index found, trying single table...");try{let a=await this.connection.openTable("documents");this.tables=[a],this.tableIndex={tables:["documents"],totalTables:1,maxVectorsPerTable:-1,totalVectors:this.metadata?.totalVectors||0}}catch(a){throw new Error(`No tables found: ${a}`)}}dt.log("\u2713 Vector database loaded and ready")}catch(t){throw new Error(`Failed to load vector database: ${t}`)}}async semanticSearch(t,r=10,n){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let i=[];for(let o of this.tables){let s=o.vectorSearch(t).limit(r*2);n&&(s=s.where(`category = "${n}"`));let c=await s.toArray();i.push(...c)}return i.sort((o,s)=>(o._distance||0)-(s._distance||0)),i.slice(0,r).map(o=>({document:{id:o.document_id,vector:o.vector,content:o.content,title:o.title,category:o.category,path:o.path,chunk_index:o.chunk_index,metadata:{tags:this.parseJsonField(o.tags_json)||[],headers:this.parseJsonField(o.headers_json)||[],lastModified:new Date(o.lastModified),wordCount:o.wordCount,excerpt:o.excerpt}},score:1-(o._distance||0),distance:o._distance||0}))}catch(i){throw dt.error(`Semantic search failed: ${i}`),new Error(`Semantic search failed: ${i}`)}}async findSimilarToText(t,r=5){return dt.warn("findSimilarToText requires embedding generation - not available in simplified mode"),[]}async findSimilarToDocument(t,r=5){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let n=null;for(let s of this.tables){let c=await s.search("").where(`document_id = "${t}" AND chunk_index = 0`).limit(1).toArray();if(c.length>0){n=c[0].vector;break}}if(!n)return[];let i=[];for(let s of this.tables){let c=await s.vectorSearch(n).where(`document_id != "${t}"`).limit(r*2).toArray();i.push(...c)}let a=new Map;for(let s of i){let c=s.document_id,u=1-(s._distance||0);(!a.has(c)||a.get(c).score<u)&&a.set(c,{...s,score:u,distance:s._distance||0})}return Array.from(a.values()).sort((s,c)=>c.score-s.score).slice(0,r).map(s=>({document:{id:s.document_id,vector:s.vector,content:s.content,title:s.title,category:s.category,path:s.path,chunk_index:s.chunk_index,metadata:{tags:this.parseJsonField(s.tags_json)||[],headers:this.parseJsonField(s.headers_json)||[],lastModified:new Date(s.lastModified),wordCount:s.wordCount,excerpt:s.excerpt}},score:s.score,distance:s.distance}))}catch(n){return dt.error(`Find similar documents failed: ${n}`),[]}}async getDocumentsByCategory(t,r){if(this.tables.length===0)throw new Error("Vector database not initialized");try{let n=[];for(let a of this.tables){let o=a.search("").where(`category = "${t}" AND chunk_index = 0`);r&&(o=o.limit(Math.ceil(r/this.tables.length)+10));let s=await o.toArray();n.push(...s)}return(r?n.slice(0,r):n).map(a=>({document:{id:a.document_id,vector:a.vector,content:a.content,title:a.title,category:a.category,path:a.path,chunk_index:a.chunk_index,metadata:{tags:this.parseJsonField(a.tags_json)||[],headers:this.parseJsonField(a.headers_json)||[],lastModified:new Date(a.lastModified),wordCount:a.wordCount,excerpt:a.excerpt}},score:1,distance:0}))}catch(n){return dt.error(`Get documents by category failed: ${n}`),[]}}getMetadata(){return this.metadata}parseJsonField(t){try{return t?JSON.parse(t):[]}catch{return[]}}isInitialized(){return this.tables.length>0&&this.metadata!==null}async close(){this.connection&&(this.connection=null,this.tables=[],dt.log("Vector database connection closed"))}};var xY=class{pipeline=null;initialized=!1;async initialize(){if(!this.initialized)try{let{pipeline:t}=await import("@xenova/transformers");this.pipeline=await t("feature-extraction","Xenova/all-MiniLM-L6-v2",{quantized:!1}),this.initialized=!0}catch(t){throw new Error(`Failed to initialize text embedding service: ${t}. Make sure @xenova/transformers is available.`)}}async generateEmbedding(t){if(!this.initialized||!this.pipeline)throw new Error("Text embedding service not initialized. Call initialize() first.");try{let r=t.replace(/\n+/g," ").replace(/\s+/g," ").trim().substring(0,8192);if(!r)throw new Error("Empty text provided for embedding");let n=await this.pipeline(r,{pooling:"mean",normalize:!0});return Array.from(n.data)}catch(r){throw new Error(`Failed to generate embedding: ${r}`)}}isInitialized(){return this.initialized}};async function pSe(e,t=!1){let{query:r,maxResults:n}=e;try{let i=new AY,a=new xY;await i.initialize(),await a.initialize();let o=await a.generateEmbedding(r),s=await i.semanticSearch(o,n??10);if(t){let c="";for(let[u,l]of s.entries())c+=`Result ${u+1}:
1611
1611
 
1612
1612
  `,c+=`${l.document.content}
1613
1613
  `,c+=`---
@@ -1659,7 +1659,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
1659
1659
  The output of this tool is required for the final step 'execute_functionality' (Step 3).`,inputSchema:va(Jze),outputSchema:va(t5e)},{name:"execute_functionality",description:`**(Step 3 of 3)**
1660
1660
  Executes a specific functionality to create a new or modify an existing SAP Fiori application with provided parameters.
1661
1661
  This is the **final step** of the workflow and performs the actual creation or modification.
1662
- You MUST provide the exact parameter information obtained from get_functionality_details (Step 2).`,inputSchema:va(Zze),outputSchema:va(r5e)}];var hh=Pt(kQt()),Ptr=Pt(FQt()),Dtr=Pt(WP()),wtr=Pt(dtr());var tr=e=>typeof e=="string",vU=()=>{let e,t,r=new Promise((n,i)=>{e=n,t=i});return r.resolve=e,r.reject=t,r},htr=e=>e==null?"":""+e,Jii=(e,t,r)=>{e.forEach(n=>{t[n]&&(r[n]=t[n])})},Zii=/###/g,mtr=e=>e&&e.indexOf("###")>-1?e.replace(Zii,"."):e,gtr=e=>!e||tr(e),bU=(e,t,r)=>{let n=tr(t)?t.split("."):t,i=0;for(;i<n.length-1;){if(gtr(e))return{};let a=mtr(n[i]);!e[a]&&r&&(e[a]=new r),Object.prototype.hasOwnProperty.call(e,a)?e=e[a]:e={},++i}return gtr(e)?{}:{obj:e,k:mtr(n[i])}},ytr=(e,t,r)=>{let{obj:n,k:i}=bU(e,t,Object);if(n!==void 0||t.length===1){n[i]=r;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=bU(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=bU(e,o,Object),s?.obj&&typeof s.obj[`${s.k}.${a}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=r},Qii=(e,t,r,n)=>{let{obj:i,k:a}=bU(e,t,Object);i[a]=i[a]||[],i[a].push(r)},Ene=(e,t)=>{let{obj:r,k:n}=bU(e,t);if(r&&Object.prototype.hasOwnProperty.call(r,n))return r[n]},eai=(e,t,r)=>{let n=Ene(e,r);return n!==void 0?n:Ene(t,r)},Str=(e,t,r)=>{for(let n in t)n!=="__proto__"&&n!=="constructor"&&(n in e?tr(e[n])||e[n]instanceof String||tr(t[n])||t[n]instanceof String?r&&(e[n]=t[n]):Str(e[n],t[n],r):e[n]=t[n]);return e},NI=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),tai={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},rai=e=>tr(e)?e.replace(/[&<>"'\/]/g,t=>tai[t]):e,xFe=class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){let r=this.regExpMap.get(t);if(r!==void 0)return r;let n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}},nai=[" ",",","?","!",";"],iai=new xFe(20),aai=(e,t,r)=>{t=t||"",r=r||"";let n=nai.filter(o=>t.indexOf(o)<0&&r.indexOf(o)<0);if(n.length===0)return!0;let i=iai.getRegExp(`(${n.map(o=>o==="?"?"\\?":o).join("|")})`),a=!i.test(e);if(!a){let o=e.indexOf(r);o>0&&!i.test(e.substring(0,o))&&(a=!0)}return a},CFe=(e,t,r=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let n=t.split(r),i=e;for(let a=0;a<n.length;){if(!i||typeof i!="object")return;let o,s="";for(let c=a;c<n.length;++c)if(c!==a&&(s+=r),s+=n[c],o=i[s],o!==void 0){if(["string","number","boolean"].indexOf(typeof o)>-1&&c<n.length-1)continue;a+=c-a+1;break}i=o}return i},_U=e=>e?.replace("_","-"),oai={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}},PFe=class e{constructor(t,r={}){this.init(t,r)}init(t,r={}){this.prefix=r.prefix||"i18next:",this.logger=t||oai,this.options=r,this.debug=r.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,r,n,i){return i&&!this.debug?null:(tr(t[0])&&(t[0]=`${n}${this.prefix} ${t[0]}`),this.logger[r](t))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},Og=new PFe,II=class{constructor(){this.observers={}}on(t,r){return t.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);let i=this.observers[n].get(r)||0;this.observers[n].set(r,i+1)}),this}off(t,r){if(this.observers[t]){if(!r){delete this.observers[t];return}this.observers[t].delete(r)}}emit(t,...r){this.observers[t]&&Array.from(this.observers[t].entries()).forEach(([i,a])=>{for(let o=0;o<a;o++)i(...r)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([i,a])=>{for(let o=0;o<a;o++)i.apply(i,[t,...r])})}},Tne=class extends II{constructor(t,r={ns:["translation"],defaultNS:"translation"}){super(),this.data=t||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){let r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}getResource(t,r,n,i={}){let a=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,o=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure,s;t.indexOf(".")>-1?s=t.split("."):(s=[t,r],n&&(Array.isArray(n)?s.push(...n):tr(n)&&a?s.push(...n.split(a)):s.push(n)));let c=Ene(this.data,s);return!c&&!r&&!n&&t.indexOf(".")>-1&&(t=s[0],r=s[1],n=s.slice(2).join(".")),c||!o||!tr(n)?c:CFe(this.data?.[t]?.[r],n,a)}addResource(t,r,n,i,a={silent:!1}){let o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,s=[t,r];n&&(s=s.concat(o?n.split(o):n)),t.indexOf(".")>-1&&(s=t.split("."),i=r,r=s[1]),this.addNamespaces(r),ytr(this.data,s,i),a.silent||this.emit("added",t,r,n,i)}addResources(t,r,n,i={silent:!1}){for(let a in n)(tr(n[a])||Array.isArray(n[a]))&&this.addResource(t,r,a,n[a],{silent:!0});i.silent||this.emit("added",t,r,n)}addResourceBundle(t,r,n,i,a,o={silent:!1,skipCopy:!1}){let s=[t,r];t.indexOf(".")>-1&&(s=t.split("."),i=n,n=r,r=s[1]),this.addNamespaces(r);let c=Ene(this.data,s)||{};o.skipCopy||(n=JSON.parse(JSON.stringify(n))),i?Str(c,n,a):c={...c,...n},ytr(this.data,s,c),o.silent||this.emit("added",t,r,n)}removeResourceBundle(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit("removed",t,r)}hasResourceBundle(t,r){return this.getResource(t,r)!==void 0}getResourceBundle(t,r){return r||(r=this.options.defaultNS),this.getResource(t,r)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){let r=this.getDataByLanguage(t);return!!(r&&Object.keys(r)||[]).find(i=>r[i]&&Object.keys(r[i]).length>0)}toJSON(){return this.data}},Atr={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,n,i){return e.forEach(a=>{t=this.processors[a]?.process(t,r,n,i)??t}),t}},xtr=Symbol("i18next/PATH_KEY");function sai(){let e=[],t=Object.create(null),r;return t.get=(n,i)=>(r?.revoke?.(),i===xtr?e:(e.push(i),r=Proxy.revocable(n,t),r.proxy)),Proxy.revocable(Object.create(null),t).proxy}function DFe(e,t){let{[xtr]:r}=e(sai());return r.join(t?.keySeparator??".")}var vtr={},OFe=e=>!tr(e)&&typeof e!="boolean"&&typeof e!="number",One=class e extends II{constructor(t,r={}){super(),Jii(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Og.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t,r={interpolation:{}}){let n={...r};if(t==null)return!1;let i=this.resolve(t,n);if(i?.res===void 0)return!1;let a=OFe(i.res);return!(n.returnObjects===!1&&a)}extractFromKey(t,r){let n=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");let i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,a=r.ns||this.options.defaultNS||[],o=n&&t.indexOf(n)>-1,s=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!aai(t,n,i);if(o&&!s){let c=t.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:t,namespaces:tr(a)?[a]:a};let u=t.split(n);(n!==i||n===i&&this.options.ns.indexOf(u[0])>-1)&&(a=u.shift()),t=u.join(i)}return{key:t,namespaces:tr(a)?[a]:a}}translate(t,r,n){let i=typeof r=="object"?{...r}:r;if(typeof i!="object"&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i=="object"&&(i={...i}),i||(i={}),t==null)return"";typeof t=="function"&&(t=DFe(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]);let a=i.returnDetails!==void 0?i.returnDetails:this.options.returnDetails,o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),u=c[c.length-1],l=i.nsSeparator!==void 0?i.nsSeparator:this.options.nsSeparator;l===void 0&&(l=":");let p=i.lng||this.language,d=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(p?.toLowerCase()==="cimode")return d?a?{res:`${u}${l}${s}`,usedKey:s,exactUsedKey:s,usedLng:p,usedNS:u,usedParams:this.getUsedParamsDetails(i)}:`${u}${l}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:p,usedNS:u,usedParams:this.getUsedParamsDetails(i)}:s;let f=this.resolve(t,i),h=f?.res,g=f?.usedKey||s,v=f?.exactUsedKey||s,E=["[object Number]","[object Function]","[object RegExp]"],O=i.joinArrays!==void 0?i.joinArrays:this.options.joinArrays,S=!this.i18nFormat||this.i18nFormat.handleAsObject,A=i.count!==void 0&&!tr(i.count),x=e.hasDefaultValue(i),D=A?this.pluralResolver.getSuffix(p,i.count,i):"",k=i.ordinal&&A?this.pluralResolver.getSuffix(p,i.count,{ordinal:!1}):"",N=A&&!i.ordinal&&i.count===0,V=N&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${D}`]||i[`defaultValue${k}`]||i.defaultValue,X=h;S&&!h&&x&&(X=V);let M=OFe(X),G=Object.prototype.toString.apply(X);if(S&&X&&M&&E.indexOf(G)<0&&!(tr(O)&&Array.isArray(X))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let Q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,X,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(f.res=Q,f.usedParams=this.getUsedParamsDetails(i),f):Q}if(o){let Q=Array.isArray(X),re=Q?[]:{},z=Q?v:g;for(let q in X)if(Object.prototype.hasOwnProperty.call(X,q)){let Y=`${z}${o}${q}`;x&&!h?re[q]=this.translate(Y,{...i,defaultValue:OFe(V)?V[q]:void 0,joinArrays:!1,ns:c}):re[q]=this.translate(Y,{...i,joinArrays:!1,ns:c}),re[q]===Y&&(re[q]=X[q])}h=re}}else if(S&&tr(O)&&Array.isArray(h))h=h.join(O),h&&(h=this.extendTranslation(h,t,i,n));else{let Q=!1,re=!1;!this.isValidLookup(h)&&x&&(Q=!0,h=V),this.isValidLookup(h)||(re=!0,h=s);let q=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&re?void 0:h,Y=x&&V!==h&&this.options.updateMissing;if(re||Q||Y){if(this.logger.log(Y?"updateKey":"missingKey",p,u,s,Y?V:h),o){let de=this.resolve(s,{...i,keySeparator:!1});de&&de.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let W=[],ye=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo==="fallback"&&ye&&ye[0])for(let de=0;de<ye.length;de++)W.push(ye[de]);else this.options.saveMissingTo==="all"?W=this.languageUtils.toResolveHierarchy(i.lng||this.language):W.push(i.lng||this.language);let ke=(de,Ge,ht)=>{let Ot=x&&ht!==h?ht:q;this.options.missingKeyHandler?this.options.missingKeyHandler(de,u,Ge,Ot,Y,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(de,u,Ge,Ot,Y,i),this.emit("missingKey",de,u,Ge,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?W.forEach(de=>{let Ge=this.pluralResolver.getSuffixes(de,i);N&&i[`defaultValue${this.options.pluralSeparator}zero`]&&Ge.indexOf(`${this.options.pluralSeparator}zero`)<0&&Ge.push(`${this.options.pluralSeparator}zero`),Ge.forEach(ht=>{ke([de],s+ht,i[`defaultValue${ht}`]||V)})}):ke(W,s,V))}h=this.extendTranslation(h,t,i,f,n),re&&h===s&&this.options.appendNamespaceToMissingKey&&(h=`${u}${l}${s}`),(re||Q)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}${l}${s}`:s,Q?h:void 0,i))}return a?(f.res=h,f.usedParams=this.getUsedParamsDetails(i),f):h}extendTranslation(t,r,n,i,a){if(this.i18nFormat?.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let c=tr(t)&&(n?.interpolation?.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables),u;if(c){let p=t.match(this.interpolator.nestingRegexp);u=p&&p.length}let l=n.replace&&!tr(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(l={...this.options.interpolation.defaultVariables,...l}),t=this.interpolator.interpolate(t,l,n.lng||this.language||i.usedLng,n),c){let p=t.match(this.interpolator.nestingRegexp),d=p&&p.length;u<d&&(n.nest=!1)}!n.lng&&i&&i.res&&(n.lng=this.language||i.usedLng),n.nest!==!1&&(t=this.interpolator.nest(t,(...p)=>a?.[0]===p[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${p[0]} in key: ${r[0]}`),null):this.translate(...p,r),n)),n.interpolation&&this.interpolator.reset()}let o=n.postProcess||this.options.postProcess,s=tr(o)?[o]:o;return t!=null&&s?.length&&n.applyPostProcessor!==!1&&(t=Atr.handle(s,t,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),t}resolve(t,r={}){let n,i,a,o,s;return tr(t)&&(t=[t]),t.forEach(c=>{if(this.isValidLookup(n))return;let u=this.extractFromKey(c,r),l=u.key;i=l;let p=u.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));let d=r.count!==void 0&&!tr(r.count),f=d&&!r.ordinal&&r.count===0,h=r.context!==void 0&&(tr(r.context)||typeof r.context=="number")&&r.context!=="",g=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);p.forEach(v=>{this.isValidLookup(n)||(s=v,!vtr[`${g[0]}-${v}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(s)&&(vtr[`${g[0]}-${v}`]=!0,this.logger.warn(`key "${i}" for languages "${g.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),g.forEach(E=>{if(this.isValidLookup(n))return;o=E;let O=[l];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(O,l,E,v,r);else{let A;d&&(A=this.pluralResolver.getSuffix(E,r.count,r));let x=`${this.options.pluralSeparator}zero`,D=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(d&&(r.ordinal&&A.indexOf(D)===0&&O.push(l+A.replace(D,this.options.pluralSeparator)),O.push(l+A),f&&O.push(l+x)),h){let k=`${l}${this.options.contextSeparator||"_"}${r.context}`;O.push(k),d&&(r.ordinal&&A.indexOf(D)===0&&O.push(k+A.replace(D,this.options.pluralSeparator)),O.push(k+A),f&&O.push(k+x))}}let S;for(;S=O.pop();)this.isValidLookup(n)||(a=S,n=this.getResource(E,v,S,r))}))})}),{res:n,usedKey:i,exactUsedKey:a,usedLng:o,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,r,n,i={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(t,r,n,i):this.resourceStore.getResource(t,r,n,i)}getUsedParamsDetails(t={}){let r=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=t.replace&&!tr(t.replace),i=n?t.replace:t;if(n&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!n){i={...i};for(let a of r)delete i[a]}return i}static hasDefaultValue(t){let r="defaultValue";for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&r===n.substring(0,r.length)&&t[n]!==void 0)return!0;return!1}},Sne=class{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Og.create("languageUtils")}getScriptPartFromCode(t){if(t=_U(t),!t||t.indexOf("-")<0)return null;let r=t.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(t){if(t=_U(t),!t||t.indexOf("-")<0)return t;let r=t.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(t){if(tr(t)&&t.indexOf("-")>-1){let r;try{r=Intl.getCanonicalLocales(t)[0]}catch{}return r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let r;return t.forEach(n=>{if(r)return;let i=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(i))&&(r=i)}),!r&&this.options.supportedLngs&&t.forEach(n=>{if(r)return;let i=this.getScriptPartFromCode(n);if(this.isSupportedCode(i))return r=i;let a=this.getLanguagePartFromCode(n);if(this.isSupportedCode(a))return r=a;r=this.options.supportedLngs.find(o=>{if(o===a)return o;if(!(o.indexOf("-")<0&&a.indexOf("-")<0)&&(o.indexOf("-")>0&&a.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===a||o.indexOf(a)===0&&a.length>1))return o})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(t,r){if(!t)return[];if(typeof t=="function"&&(t=t(r)),tr(t)&&(t=[t]),Array.isArray(t))return t;if(!r)return t.default||[];let n=t[r];return n||(n=t[this.getScriptPartFromCode(r)]),n||(n=t[this.formatLanguageCode(r)]),n||(n=t[this.getLanguagePartFromCode(r)]),n||(n=t.default),n||[]}toResolveHierarchy(t,r){let n=this.getFallbackCodes((r===!1?[]:r)||this.options.fallbackLng||[],t),i=[],a=o=>{o&&(this.isSupportedCode(o)?i.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return tr(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(t))):tr(t)&&a(this.formatLanguageCode(t)),n.forEach(o=>{i.indexOf(o)<0&&a(this.formatLanguageCode(o))}),i}},btr={zero:0,one:1,two:2,few:3,many:4,other:5},_tr={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})},wFe=class{constructor(t,r={}){this.languageUtils=t,this.options=r,this.logger=Og.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,r={}){let n=_U(t==="dev"?"en":t),i=r.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:n,type:i});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let o;try{o=new Intl.PluralRules(n,{type:i})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),_tr;if(!t.match(/-|_/))return _tr;let c=this.languageUtils.getLanguagePartFromCode(t);o=this.getRule(c,r)}return this.pluralRulesCache[a]=o,o}needsPlural(t,r={}){let n=this.getRule(t,r);return n||(n=this.getRule("dev",r)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(t,r,n={}){return this.getSuffixes(t,n).map(i=>`${r}${i}`)}getSuffixes(t,r={}){let n=this.getRule(t,r);return n||(n=this.getRule("dev",r)),n?n.resolvedOptions().pluralCategories.sort((i,a)=>btr[i]-btr[a]).map(i=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(t,r,n={}){let i=this.getRule(t,n);return i?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i.select(r)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",r,n))}},Etr=(e,t,r,n=".",i=!0)=>{let a=eai(e,t,r);return!a&&i&&tr(r)&&(a=CFe(e,r,n),a===void 0&&(a=CFe(t,r,n))),a},SFe=e=>e.replace(/\$/g,"$$$$"),Ane=class{constructor(t={}){this.logger=Og.create("interpolator"),this.options=t,this.format=t?.interpolation?.format||(r=>r),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});let{escape:r,escapeValue:n,useRawValueToEscape:i,prefix:a,prefixEscaped:o,suffix:s,suffixEscaped:c,formatSeparator:u,unescapeSuffix:l,unescapePrefix:p,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:h,nestingSuffixEscaped:g,nestingOptionsSeparator:v,maxReplaces:E,alwaysFormat:O}=t.interpolation;this.escape=r!==void 0?r:rai,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=a?NI(a):o||"{{",this.suffix=s?NI(s):c||"}}",this.formatSeparator=u||",",this.unescapePrefix=l?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":l||"",this.nestingPrefix=d?NI(d):f||NI("$t("),this.nestingSuffix=h?NI(h):g||NI(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=E||1e3,this.alwaysFormat=O!==void 0?O:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let t=(r,n)=>r?.source===n?(r.lastIndex=0,r):new RegExp(n,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,r,n,i){let a,o,s,c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=f=>{if(f.indexOf(this.formatSeparator)<0){let E=Etr(r,c,f,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(E,void 0,n,{...i,...r,interpolationkey:f}):E}let h=f.split(this.formatSeparator),g=h.shift().trim(),v=h.join(this.formatSeparator).trim();return this.format(Etr(r,c,g,this.options.keySeparator,this.options.ignoreJSONStructure),v,n,{...i,...r,interpolationkey:g})};this.resetRegExp();let l=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,p=i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:f=>SFe(f)},{regex:this.regexp,safeValue:f=>this.escapeValue?SFe(this.escape(f)):SFe(f)}].forEach(f=>{for(s=0;a=f.regex.exec(t);){let h=a[1].trim();if(o=u(h),o===void 0)if(typeof l=="function"){let v=l(t,a,i);o=tr(v)?v:""}else if(i&&Object.prototype.hasOwnProperty.call(i,h))o="";else if(p){o=a[0];continue}else this.logger.warn(`missed to pass in variable ${h} for interpolating ${t}`),o="";else!tr(o)&&!this.useRawValueToEscape&&(o=htr(o));let g=f.safeValue(o);if(t=t.replace(a[0],g),p?(f.regex.lastIndex+=o.length,f.regex.lastIndex-=a[0].length):f.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,r,n={}){let i,a,o,s=(c,u)=>{let l=this.nestingOptionsSeparator;if(c.indexOf(l)<0)return c;let p=c.split(new RegExp(`${l}[ ]*{`)),d=`{${p[1]}`;c=p[0],d=this.interpolate(d,o);let f=d.match(/'/g),h=d.match(/"/g);((f?.length??0)%2===0&&!h||h.length%2!==0)&&(d=d.replace(/'/g,'"'));try{o=JSON.parse(d),u&&(o={...u,...o})}catch(g){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,g),`${c}${l}${d}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,c};for(;i=this.nestingRegexp.exec(t);){let c=[];o={...n},o=o.replace&&!tr(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(u!==-1&&(c=i[1].slice(u).split(this.formatSeparator).map(l=>l.trim()).filter(Boolean),i[1]=i[1].slice(0,u)),a=r(s.call(this,i[1].trim(),o),o),a&&i[0]===t&&!tr(a))return a;tr(a)||(a=htr(a)),a||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),a=""),c.length&&(a=c.reduce((l,p)=>this.format(l,p,n.lng,{...n,interpolationkey:i[1].trim()}),a.trim())),t=t.replace(i[0],a),this.regexp.lastIndex=0}return t}},cai=e=>{let t=e.toLowerCase().trim(),r={};if(e.indexOf("(")>-1){let n=e.split("(");t=n[0].toLowerCase().trim();let i=n[1].substring(0,n[1].length-1);t==="currency"&&i.indexOf(":")<0?r.currency||(r.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?r.range||(r.range=i.trim()):i.split(";").forEach(o=>{if(o){let[s,...c]=o.split(":"),u=c.join(":").trim().replace(/^'+|'+$/g,""),l=s.trim();r[l]||(r[l]=u),u==="false"&&(r[l]=!1),u==="true"&&(r[l]=!0),isNaN(u)||(r[l]=parseInt(u,10))}})}return{formatName:t,formatOptions:r}},Ttr=e=>{let t={};return(r,n,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=n+JSON.stringify(a),s=t[o];return s||(s=e(_U(n),i),t[o]=s),s(r)}},uai=e=>(t,r,n)=>e(_U(r),n)(t),NFe=class{constructor(t={}){this.logger=Og.create("formatter"),this.options=t,this.init(t)}init(t,r={interpolation:{}}){this.formatSeparator=r.interpolation.formatSeparator||",";let n=r.cacheInBuiltFormats?Ttr:uai;this.formats={number:n((i,a)=>{let o=new Intl.NumberFormat(i,{...a});return s=>o.format(s)}),currency:n((i,a)=>{let o=new Intl.NumberFormat(i,{...a,style:"currency"});return s=>o.format(s)}),datetime:n((i,a)=>{let o=new Intl.DateTimeFormat(i,{...a});return s=>o.format(s)}),relativetime:n((i,a)=>{let o=new Intl.RelativeTimeFormat(i,{...a});return s=>o.format(s,a.range||"day")}),list:n((i,a)=>{let o=new Intl.ListFormat(i,{...a});return s=>o.format(s)})}}add(t,r){this.formats[t.toLowerCase().trim()]=r}addCached(t,r){this.formats[t.toLowerCase().trim()]=Ttr(r)}format(t,r,n,i={}){let a=r.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(s=>s.indexOf(")")>-1)){let s=a.findIndex(c=>c.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,s)].join(this.formatSeparator)}return a.reduce((s,c)=>{let{formatName:u,formatOptions:l}=cai(c);if(this.formats[u]){let p=s;try{let d=i?.formatParams?.[i.interpolationkey]||{},f=d.locale||d.lng||i.locale||i.lng||n;p=this.formats[u](s,f,{...l,...i,...d})}catch(d){this.logger.warn(d)}return p}else this.logger.warn(`there was no format function for ${u}`);return s},t)}},lai=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},IFe=class extends II{constructor(t,r,n,i={}){super(),this.backend=t,this.store=r,this.services=n,this.languageUtils=n.languageUtils,this.options=i,this.logger=Og.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,i.backend,i)}queueLoad(t,r,n,i){let a={},o={},s={},c={};return t.forEach(u=>{let l=!0;r.forEach(p=>{let d=`${u}|${p}`;!n.reload&&this.store.hasResourceBundle(u,p)?this.state[d]=2:this.state[d]<0||(this.state[d]===1?o[d]===void 0&&(o[d]=!0):(this.state[d]=1,l=!1,o[d]===void 0&&(o[d]=!0),a[d]===void 0&&(a[d]=!0),c[p]===void 0&&(c[p]=!0)))}),l||(s[u]=!0)}),(Object.keys(a).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(a),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(c)}}loaded(t,r,n){let i=t.split("|"),a=i[0],o=i[1];r&&this.emit("failedLoading",a,o,r),!r&&n&&this.store.addResourceBundle(a,o,n,void 0,void 0,{skipCopy:!0}),this.state[t]=r?-1:2,r&&n&&(this.state[t]=0);let s={};this.queue.forEach(c=>{Qii(c.loaded,[a],o),lai(c,t),r&&c.errors.push(r),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(u=>{s[u]||(s[u]={});let l=c.loaded[u];l.length&&l.forEach(p=>{s[u][p]===void 0&&(s[u][p]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(c=>!c.done)}read(t,r,n,i=0,a=this.retryTimeout,o){if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:r,fcName:n,tried:i,wait:a,callback:o});return}this.readingCalls++;let s=(u,l)=>{if(this.readingCalls--,this.waitingReads.length>0){let p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(u&&l&&i<this.maxRetries){setTimeout(()=>{this.read.call(this,t,r,n,i+1,a*2,o)},a);return}o(u,l)},c=this.backend[n].bind(this.backend);if(c.length===2){try{let u=c(t,r);u&&typeof u.then=="function"?u.then(l=>s(null,l)).catch(s):s(null,u)}catch(u){s(u)}return}return c(t,r,s)}prepareLoading(t,r,n={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();tr(t)&&(t=this.languageUtils.toResolveHierarchy(t)),tr(r)&&(r=[r]);let a=this.queueLoad(t,r,n,i);if(!a.toLoad.length)return a.pending.length||i(),null;a.toLoad.forEach(o=>{this.loadOne(o)})}load(t,r,n){this.prepareLoading(t,r,{},n)}reload(t,r,n){this.prepareLoading(t,r,{reload:!0},n)}loadOne(t,r=""){let n=t.split("|"),i=n[0],a=n[1];this.read(i,a,"read",void 0,void 0,(o,s)=>{o&&this.logger.warn(`${r}loading namespace ${a} for language ${i} failed`,o),!o&&s&&this.logger.log(`${r}loaded namespace ${a} for language ${i}`,s),this.loaded(t,o,s)})}saveMissing(t,r,n,i,a,o={},s=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(r)){this.logger.warn(`did not save key "${n}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend?.create){let c={...o,isUpdate:a},u=this.backend.create.bind(this.backend);if(u.length<6)try{let l;u.length===5?l=u(t,r,n,i,c):l=u(t,r,n,i),l&&typeof l.then=="function"?l.then(p=>s(null,p)).catch(s):s(null,l)}catch(l){s(l)}else u(t,r,n,i,s,c)}!t||!t[0]||this.store.addResource(t[0],r,n,i)}}},AFe=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),tr(e[1])&&(t.defaultValue=e[1]),tr(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){let r=e[3]||e[2];Object.keys(r).forEach(n=>{t[n]=r[n]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Otr=e=>(tr(e.ns)&&(e.ns=[e.ns]),tr(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),tr(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e),_ne=()=>{},pai=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(r=>{typeof e[r]=="function"&&(e[r]=e[r].bind(e))})},RFe=class e extends II{constructor(t={},r){if(super(),this.options=Otr(t),this.services={},this.logger=Og,this.modules={external:[]},pai(this),r&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,r),this;setTimeout(()=>{this.init(t,r)},0)}}init(t={},r){this.isInitializing=!0,typeof t=="function"&&(r=t,t={}),t.defaultNS==null&&t.ns&&(tr(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));let n=AFe();this.options={...n,...this.options,...Otr(t)},this.options.interpolation={...n.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),this.options.debug===!0&&typeof console<"u"&&console.warn("i18next is maintained with support from locize.com \u2014 consider powering your project with managed localization (AI, CDN, integrations): https://locize.com");let i=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Og.init(i(this.modules.logger),this.options):Og.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:u=NFe;let l=new Sne(this.options);this.store=new Tne(this.options.resources,this.options);let p=this.services;p.logger=Og,p.resourceStore=this.store,p.languageUtils=l,p.pluralResolver=new wFe(l,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),u&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(p.formatter=i(u),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new Ane(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new IFe(i(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.languageDetector&&(p.languageDetector=i(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=i(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new One(this.services,this.options),this.translator.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,r||(r=_ne),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.length>0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(u=>{this[u]=(...l)=>this.store[u](...l)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(u=>{this[u]=(...l)=>(this.store[u](...l),this)});let s=vU(),c=()=>{let u=(l,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),s.resolve(p),r(l,p)};if(this.languages&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),s}loadResources(t,r=_ne){let n=r,i=tr(t)?t:this.language;if(typeof t=="function"&&(n=t),!this.options.resources||this.options.partialBundledLanguages){if(i?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();let a=[],o=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&a.indexOf(u)<0&&a.push(u)})};i?o(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>o(c)),this.options.preload?.forEach?.(s=>o(s)),this.services.backendConnector.load(a,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(s)})}else n(null)}reloadResources(t,r,n){let i=vU();return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r=void 0),t||(t=this.languages),r||(r=this.options.ns),n||(n=_ne),this.services.backendConnector.reload(t,r,a=>{i.resolve(),n(a)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Atr.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1)){for(let r=0;r<this.languages.length;r++){let n=this.languages[r];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}!this.resolvedLanguage&&this.languages.indexOf(t)<0&&this.store.hasLanguageSomeTranslations(t)&&(this.resolvedLanguage=t,this.languages.unshift(t))}}changeLanguage(t,r){this.isLanguageChangingTo=t;let n=vU();this.emit("languageChanging",t);let i=s=>{this.language=s,this.languages=this.services.languageUtils.toResolveHierarchy(s),this.resolvedLanguage=void 0,this.setResolvedLanguage(s)},a=(s,c)=>{c?this.isLanguageChangingTo===t&&(i(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,n.resolve((...u)=>this.t(...u)),r&&r(s,(...u)=>this.t(...u))},o=s=>{!t&&!s&&this.services.languageDetector&&(s=[]);let c=tr(s)?s:s&&s[0],u=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(tr(s)?[s]:s);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector?.cacheUserLanguage?.(u)),this.loadResources(u,l=>{a(l,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?o(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(o):this.services.languageDetector.detect(o):o(t),n}getFixedT(t,r,n){let i=(a,o,...s)=>{let c;typeof o!="object"?c=this.options.overloadTranslationOptionHandler([a,o].concat(s)):c={...o},c.lng=c.lng||i.lng,c.lngs=c.lngs||i.lngs,c.ns=c.ns||i.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||n||i.keyPrefix);let u=this.options.keySeparator||".",l;return c.keyPrefix&&Array.isArray(a)?l=a.map(p=>(typeof p=="function"&&(p=DFe(p,{...this.options,...o})),`${c.keyPrefix}${u}${p}`)):(typeof a=="function"&&(a=DFe(a,{...this.options,...o})),l=c.keyPrefix?`${c.keyPrefix}${u}${a}`:a),this.t(l,c)};return tr(t)?i.lng=t:i.lngs=t,i.ns=r,i.keyPrefix=n,i}t(...t){return this.translator?.translate(...t)}exists(...t){return this.translator?.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,r={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let n=r.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;let o=(s,c)=>{let u=this.services.backendConnector.state[`${s}|${c}`];return u===-1||u===0||u===2};if(r.precheck){let s=r.precheck(this,o);if(s!==void 0)return s}return!!(this.hasResourceBundle(n,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(n,t)&&(!i||o(a,t)))}loadNamespaces(t,r){let n=vU();return this.options.ns?(tr(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{n.resolve(),r&&r(i)}),n):(r&&r(),Promise.resolve())}loadLanguages(t,r){let n=vU();tr(t)&&(t=[t]);let i=this.options.preload||[],a=t.filter(o=>i.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return a.length?(this.options.preload=i.concat(a),this.loadResources(o=>{n.resolve(),r&&r(o)}),n):(r&&r(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!t)return"rtl";try{let i=new Intl.Locale(t);if(i&&i.getTextInfo){let a=i.getTextInfo();if(a&&a.direction)return a.direction}}catch{}let r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services?.languageUtils||new Sne(AFe());return t.toLowerCase().indexOf("-latn")>1?"ltr":r.indexOf(n.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},r){let n=new e(t,r);return n.createInstance=e.createInstance,n}cloneInstance(t={},r=_ne){let n=t.forkResourceStore;n&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach(s=>{a[s]=this[s]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},n){let s=Object.keys(this.store.data).reduce((c,u)=>(c[u]={...this.store.data[u]},c[u]=Object.keys(c[u]).reduce((l,p)=>(l[p]={...c[u][p]},l),c[u]),c),{});a.store=new Tne(s,i),a.services.resourceStore=a.store}if(t.interpolation){let c={...AFe().interpolation,...this.options.interpolation,...t.interpolation},u={...i,interpolation:c};a.services.interpolator=new Ane(u)}return a.translator=new One(a.services,i),a.translator.on("*",(s,...c)=>{a.emit(s,...c)}),a.init(i,r),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},Mc=RFe.createInstance(),MXi=Mc.createInstance,FXi=Mc.dir,jXi=Mc.init,VXi=Mc.loadResources,qXi=Mc.reloadResources,UXi=Mc.use,BXi=Mc.changeLanguage,zXi=Mc.getFixedT,HXi=Mc.t,GXi=Mc.exists,KXi=Mc.setDefaultNamespace,YXi=Mc.hasLoadedNamespace,WXi=Mc.loadNamespaces,XXi=Mc.loadLanguages;var Ctr="@sap-ux/fiori-mcp-server",Ntr="unknown-tool",fai="0a65e45d-6bf4-421d-b845-61e888c50e9e",BA=class{static _telemetryData;static _previousEventTimestamp;static get telemetryData(){return this._telemetryData}static async initTelemetrySettings(t){let r={consumerModule:{name:Ctr,version:Bze},watchTelemetrySettingStore:!1,internalFeature:(0,Ptr.isInternalFeaturesSettingEnabled)(),resourceId:fai,...t};try{await(0,hh.initTelemetrySettings)(r)}catch(n){dt.error(`Error initializing telemetry settings: ${n}`)}}static createTelemetryData(t,r=!1){let n=new Date().getTime();if(this._previousEventTimestamp||(r=!1,this._previousEventTimestamp=n),!this._telemetryData){let i=Mc.t("telemetry.unknownOs");try{i=(0,wtr.default)()}catch{}this._telemetryData={Platform:(0,Dtr.isAppStudio)()?"SBAS":"VSCode",OperatingSystem:i}}if(r){let i={...this._telemetryData,...t};if(Math.abs(this._previousEventTimestamp-n)<1e3&&JSON.stringify(i)===JSON.stringify(this._telemetryData))return}return this._previousEventTimestamp=n,this._telemetryData=Object.assign(this._telemetryData,t),this._telemetryData}static prepareTelemetryEvent(t,r){this.markToolsEndTime();let n=r.markName?hh.PerformanceMeasurementAPI.getMeasurementDuration(r.markName):void 0;return{eventName:t,properties:r,measurements:n?{RequestTime:n}:{}}}static markToolStartTime(){this.createTelemetryData({markName:hh.PerformanceMeasurementAPI.startMark("MCP_LOADING_TIME")})}static markToolsEndTime(){this._telemetryData?.markName&&(hh.PerformanceMeasurementAPI.endMark(this._telemetryData.markName),hh.PerformanceMeasurementAPI.measure(this._telemetryData.markName))}static async sendTelemetry(t,r,n){let i=this.prepareTelemetryEvent(t,r);await hh.ClientFactory.getTelemetryClient().reportEvent(i,hh.SampleRate.NoSampling,n?{appPath:n}:void 0)}static getTelemetryName(){return Ctr}};var xne=class{server;mcpClientName="unknown-client";mcpClientVersion="unknown-version";constructor(){this.server=new Xz({name:"fiori-mcp",version:Q0.version},{capabilities:{tools:{}}}),this.setupToolHandlers(),this.setupErrorHandling()}setupErrorHandling(){this.server.onerror=t=>dt.error(`[MCP Error] ${t}`),process.on("SIGINT",async()=>{await this.server.close(),process.exit(0)})}async setupTelemetry(){await BA.initTelemetrySettings()}setupToolHandlers(){this.server.setRequestHandler(aL,async t=>(this.mcpClientName=t.params.clientInfo?.name||"unknown-client",this.mcpClientVersion=t.params.clientInfo?.version||"unknown-version",dt.info(`MCP Client connected: ${this.mcpClientName} v${this.mcpClientVersion}`),{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"fiori-mcp",version:Q0.version}})),this.server.setRequestHandler(pse,async()=>({tools:qUt})),this.server.setRequestHandler(pL,async t=>{let{name:r,arguments:n}=t.params;try{let i;BA.markToolStartTime();let a={tool:r,mcpClientName:this.mcpClientName,mcpClientVersion:this.mcpClientVersion};switch("functionalityId"in n&&(a.functionalityId=n.functionalityId),dt.debug(`Executing tool: ${r} with arguments: ${JSON.stringify(n)}`),r){case"search_docs":i=await pSe(n,!0);break;case"list_fiori_apps":i=await fSe(n);break;case"list_functionality":i=await mNe(n);break;case"get_functionality_details":i=await iV(n);break;case"execute_functionality":i=await vNe(n);break;default:throw await BA.sendTelemetry(Ntr,{},n?.appPath),new Error(`Unknown tool: ${r}. Try one of: list_fiori_apps, list_functionality, get_functionality_details, execute_functionality.`)}await BA.sendTelemetry(r,a,n?.appPath);let o=this.convertResultToCallToolResult(i);return dt.debug(`Tool ${r} executed successfully with result:`),dt.debug(o),o}catch(i){return dt.error(`Error executing tool ${r}: ${i}`),dt.debug(i),{content:[{type:"text",text:`Error: ${i instanceof Error?i.message:"Unknown error occurred"}`}]}}})}convertResultToCallToolResult(t){if(typeof t=="string"||t instanceof String)return{content:[{type:"text",text:t.toString()}]};let r={content:[{type:"text",text:JSON.stringify(t)}]};return Array.isArray(t)||(r.structuredContent=t),r}async run(){let t=new Zz;await this.server.connect(t),await this.setupTelemetry(),dt.info(`SAP Fiori - Model Context Protocol (MCP) server (@sap-ux/fiori-mcp-server@${Q0.version}) running on stdio`)}};var dai=new xne;dai.run().catch(e=>dt.error(`Server error: ${e}`));
1662
+ You MUST provide the exact parameter information obtained from get_functionality_details (Step 2).`,inputSchema:va(Zze),outputSchema:va(r5e)}];var hh=Pt(kQt()),Ptr=Pt(FQt()),Dtr=Pt(WP()),wtr=Pt(dtr());var tr=e=>typeof e=="string",vU=()=>{let e,t,r=new Promise((n,i)=>{e=n,t=i});return r.resolve=e,r.reject=t,r},htr=e=>e==null?"":""+e,Jii=(e,t,r)=>{e.forEach(n=>{t[n]&&(r[n]=t[n])})},Zii=/###/g,mtr=e=>e&&e.indexOf("###")>-1?e.replace(Zii,"."):e,gtr=e=>!e||tr(e),bU=(e,t,r)=>{let n=tr(t)?t.split("."):t,i=0;for(;i<n.length-1;){if(gtr(e))return{};let a=mtr(n[i]);!e[a]&&r&&(e[a]=new r),Object.prototype.hasOwnProperty.call(e,a)?e=e[a]:e={},++i}return gtr(e)?{}:{obj:e,k:mtr(n[i])}},ytr=(e,t,r)=>{let{obj:n,k:i}=bU(e,t,Object);if(n!==void 0||t.length===1){n[i]=r;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=bU(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=bU(e,o,Object),s?.obj&&typeof s.obj[`${s.k}.${a}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=r},Qii=(e,t,r,n)=>{let{obj:i,k:a}=bU(e,t,Object);i[a]=i[a]||[],i[a].push(r)},Ene=(e,t)=>{let{obj:r,k:n}=bU(e,t);if(r&&Object.prototype.hasOwnProperty.call(r,n))return r[n]},eai=(e,t,r)=>{let n=Ene(e,r);return n!==void 0?n:Ene(t,r)},Str=(e,t,r)=>{for(let n in t)n!=="__proto__"&&n!=="constructor"&&(n in e?tr(e[n])||e[n]instanceof String||tr(t[n])||t[n]instanceof String?r&&(e[n]=t[n]):Str(e[n],t[n],r):e[n]=t[n]);return e},NI=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),tai={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},rai=e=>tr(e)?e.replace(/[&<>"'\/]/g,t=>tai[t]):e,xFe=class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){let r=this.regExpMap.get(t);if(r!==void 0)return r;let n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}},nai=[" ",",","?","!",";"],iai=new xFe(20),aai=(e,t,r)=>{t=t||"",r=r||"";let n=nai.filter(o=>t.indexOf(o)<0&&r.indexOf(o)<0);if(n.length===0)return!0;let i=iai.getRegExp(`(${n.map(o=>o==="?"?"\\?":o).join("|")})`),a=!i.test(e);if(!a){let o=e.indexOf(r);o>0&&!i.test(e.substring(0,o))&&(a=!0)}return a},CFe=(e,t,r=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let n=t.split(r),i=e;for(let a=0;a<n.length;){if(!i||typeof i!="object")return;let o,s="";for(let c=a;c<n.length;++c)if(c!==a&&(s+=r),s+=n[c],o=i[s],o!==void 0){if(["string","number","boolean"].indexOf(typeof o)>-1&&c<n.length-1)continue;a+=c-a+1;break}i=o}return i},_U=e=>e?.replace("_","-"),oai={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}},PFe=class e{constructor(t,r={}){this.init(t,r)}init(t,r={}){this.prefix=r.prefix||"i18next:",this.logger=t||oai,this.options=r,this.debug=r.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,r,n,i){return i&&!this.debug?null:(tr(t[0])&&(t[0]=`${n}${this.prefix} ${t[0]}`),this.logger[r](t))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},Og=new PFe,II=class{constructor(){this.observers={}}on(t,r){return t.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);let i=this.observers[n].get(r)||0;this.observers[n].set(r,i+1)}),this}off(t,r){if(this.observers[t]){if(!r){delete this.observers[t];return}this.observers[t].delete(r)}}emit(t,...r){this.observers[t]&&Array.from(this.observers[t].entries()).forEach(([i,a])=>{for(let o=0;o<a;o++)i(...r)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([i,a])=>{for(let o=0;o<a;o++)i.apply(i,[t,...r])})}},Tne=class extends II{constructor(t,r={ns:["translation"],defaultNS:"translation"}){super(),this.data=t||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){let r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}getResource(t,r,n,i={}){let a=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,o=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure,s;t.indexOf(".")>-1?s=t.split("."):(s=[t,r],n&&(Array.isArray(n)?s.push(...n):tr(n)&&a?s.push(...n.split(a)):s.push(n)));let c=Ene(this.data,s);return!c&&!r&&!n&&t.indexOf(".")>-1&&(t=s[0],r=s[1],n=s.slice(2).join(".")),c||!o||!tr(n)?c:CFe(this.data?.[t]?.[r],n,a)}addResource(t,r,n,i,a={silent:!1}){let o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,s=[t,r];n&&(s=s.concat(o?n.split(o):n)),t.indexOf(".")>-1&&(s=t.split("."),i=r,r=s[1]),this.addNamespaces(r),ytr(this.data,s,i),a.silent||this.emit("added",t,r,n,i)}addResources(t,r,n,i={silent:!1}){for(let a in n)(tr(n[a])||Array.isArray(n[a]))&&this.addResource(t,r,a,n[a],{silent:!0});i.silent||this.emit("added",t,r,n)}addResourceBundle(t,r,n,i,a,o={silent:!1,skipCopy:!1}){let s=[t,r];t.indexOf(".")>-1&&(s=t.split("."),i=n,n=r,r=s[1]),this.addNamespaces(r);let c=Ene(this.data,s)||{};o.skipCopy||(n=JSON.parse(JSON.stringify(n))),i?Str(c,n,a):c={...c,...n},ytr(this.data,s,c),o.silent||this.emit("added",t,r,n)}removeResourceBundle(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit("removed",t,r)}hasResourceBundle(t,r){return this.getResource(t,r)!==void 0}getResourceBundle(t,r){return r||(r=this.options.defaultNS),this.getResource(t,r)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){let r=this.getDataByLanguage(t);return!!(r&&Object.keys(r)||[]).find(i=>r[i]&&Object.keys(r[i]).length>0)}toJSON(){return this.data}},Atr={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,n,i){return e.forEach(a=>{t=this.processors[a]?.process(t,r,n,i)??t}),t}},xtr=Symbol("i18next/PATH_KEY");function sai(){let e=[],t=Object.create(null),r;return t.get=(n,i)=>(r?.revoke?.(),i===xtr?e:(e.push(i),r=Proxy.revocable(n,t),r.proxy)),Proxy.revocable(Object.create(null),t).proxy}function DFe(e,t){let{[xtr]:r}=e(sai());return r.join(t?.keySeparator??".")}var vtr={},OFe=e=>!tr(e)&&typeof e!="boolean"&&typeof e!="number",One=class e extends II{constructor(t,r={}){super(),Jii(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Og.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t,r={interpolation:{}}){let n={...r};if(t==null)return!1;let i=this.resolve(t,n);if(i?.res===void 0)return!1;let a=OFe(i.res);return!(n.returnObjects===!1&&a)}extractFromKey(t,r){let n=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");let i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,a=r.ns||this.options.defaultNS||[],o=n&&t.indexOf(n)>-1,s=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!aai(t,n,i);if(o&&!s){let c=t.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:t,namespaces:tr(a)?[a]:a};let u=t.split(n);(n!==i||n===i&&this.options.ns.indexOf(u[0])>-1)&&(a=u.shift()),t=u.join(i)}return{key:t,namespaces:tr(a)?[a]:a}}translate(t,r,n){let i=typeof r=="object"?{...r}:r;if(typeof i!="object"&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i=="object"&&(i={...i}),i||(i={}),t==null)return"";typeof t=="function"&&(t=DFe(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]);let a=i.returnDetails!==void 0?i.returnDetails:this.options.returnDetails,o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),u=c[c.length-1],l=i.nsSeparator!==void 0?i.nsSeparator:this.options.nsSeparator;l===void 0&&(l=":");let p=i.lng||this.language,d=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(p?.toLowerCase()==="cimode")return d?a?{res:`${u}${l}${s}`,usedKey:s,exactUsedKey:s,usedLng:p,usedNS:u,usedParams:this.getUsedParamsDetails(i)}:`${u}${l}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:p,usedNS:u,usedParams:this.getUsedParamsDetails(i)}:s;let f=this.resolve(t,i),h=f?.res,g=f?.usedKey||s,v=f?.exactUsedKey||s,E=["[object Number]","[object Function]","[object RegExp]"],O=i.joinArrays!==void 0?i.joinArrays:this.options.joinArrays,S=!this.i18nFormat||this.i18nFormat.handleAsObject,A=i.count!==void 0&&!tr(i.count),x=e.hasDefaultValue(i),D=A?this.pluralResolver.getSuffix(p,i.count,i):"",k=i.ordinal&&A?this.pluralResolver.getSuffix(p,i.count,{ordinal:!1}):"",N=A&&!i.ordinal&&i.count===0,V=N&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${D}`]||i[`defaultValue${k}`]||i.defaultValue,X=h;S&&!h&&x&&(X=V);let M=OFe(X),G=Object.prototype.toString.apply(X);if(S&&X&&M&&E.indexOf(G)<0&&!(tr(O)&&Array.isArray(X))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let Q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,X,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(f.res=Q,f.usedParams=this.getUsedParamsDetails(i),f):Q}if(o){let Q=Array.isArray(X),re=Q?[]:{},z=Q?v:g;for(let q in X)if(Object.prototype.hasOwnProperty.call(X,q)){let Y=`${z}${o}${q}`;x&&!h?re[q]=this.translate(Y,{...i,defaultValue:OFe(V)?V[q]:void 0,joinArrays:!1,ns:c}):re[q]=this.translate(Y,{...i,joinArrays:!1,ns:c}),re[q]===Y&&(re[q]=X[q])}h=re}}else if(S&&tr(O)&&Array.isArray(h))h=h.join(O),h&&(h=this.extendTranslation(h,t,i,n));else{let Q=!1,re=!1;!this.isValidLookup(h)&&x&&(Q=!0,h=V),this.isValidLookup(h)||(re=!0,h=s);let q=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&re?void 0:h,Y=x&&V!==h&&this.options.updateMissing;if(re||Q||Y){if(this.logger.log(Y?"updateKey":"missingKey",p,u,s,Y?V:h),o){let de=this.resolve(s,{...i,keySeparator:!1});de&&de.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let W=[],ye=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo==="fallback"&&ye&&ye[0])for(let de=0;de<ye.length;de++)W.push(ye[de]);else this.options.saveMissingTo==="all"?W=this.languageUtils.toResolveHierarchy(i.lng||this.language):W.push(i.lng||this.language);let ke=(de,Ge,ht)=>{let Ot=x&&ht!==h?ht:q;this.options.missingKeyHandler?this.options.missingKeyHandler(de,u,Ge,Ot,Y,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(de,u,Ge,Ot,Y,i),this.emit("missingKey",de,u,Ge,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?W.forEach(de=>{let Ge=this.pluralResolver.getSuffixes(de,i);N&&i[`defaultValue${this.options.pluralSeparator}zero`]&&Ge.indexOf(`${this.options.pluralSeparator}zero`)<0&&Ge.push(`${this.options.pluralSeparator}zero`),Ge.forEach(ht=>{ke([de],s+ht,i[`defaultValue${ht}`]||V)})}):ke(W,s,V))}h=this.extendTranslation(h,t,i,f,n),re&&h===s&&this.options.appendNamespaceToMissingKey&&(h=`${u}${l}${s}`),(re||Q)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}${l}${s}`:s,Q?h:void 0,i))}return a?(f.res=h,f.usedParams=this.getUsedParamsDetails(i),f):h}extendTranslation(t,r,n,i,a){if(this.i18nFormat?.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let c=tr(t)&&(n?.interpolation?.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables),u;if(c){let p=t.match(this.interpolator.nestingRegexp);u=p&&p.length}let l=n.replace&&!tr(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(l={...this.options.interpolation.defaultVariables,...l}),t=this.interpolator.interpolate(t,l,n.lng||this.language||i.usedLng,n),c){let p=t.match(this.interpolator.nestingRegexp),d=p&&p.length;u<d&&(n.nest=!1)}!n.lng&&i&&i.res&&(n.lng=this.language||i.usedLng),n.nest!==!1&&(t=this.interpolator.nest(t,(...p)=>a?.[0]===p[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${p[0]} in key: ${r[0]}`),null):this.translate(...p,r),n)),n.interpolation&&this.interpolator.reset()}let o=n.postProcess||this.options.postProcess,s=tr(o)?[o]:o;return t!=null&&s?.length&&n.applyPostProcessor!==!1&&(t=Atr.handle(s,t,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),t}resolve(t,r={}){let n,i,a,o,s;return tr(t)&&(t=[t]),t.forEach(c=>{if(this.isValidLookup(n))return;let u=this.extractFromKey(c,r),l=u.key;i=l;let p=u.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));let d=r.count!==void 0&&!tr(r.count),f=d&&!r.ordinal&&r.count===0,h=r.context!==void 0&&(tr(r.context)||typeof r.context=="number")&&r.context!=="",g=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);p.forEach(v=>{this.isValidLookup(n)||(s=v,!vtr[`${g[0]}-${v}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(s)&&(vtr[`${g[0]}-${v}`]=!0,this.logger.warn(`key "${i}" for languages "${g.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),g.forEach(E=>{if(this.isValidLookup(n))return;o=E;let O=[l];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(O,l,E,v,r);else{let A;d&&(A=this.pluralResolver.getSuffix(E,r.count,r));let x=`${this.options.pluralSeparator}zero`,D=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(d&&(r.ordinal&&A.indexOf(D)===0&&O.push(l+A.replace(D,this.options.pluralSeparator)),O.push(l+A),f&&O.push(l+x)),h){let k=`${l}${this.options.contextSeparator||"_"}${r.context}`;O.push(k),d&&(r.ordinal&&A.indexOf(D)===0&&O.push(k+A.replace(D,this.options.pluralSeparator)),O.push(k+A),f&&O.push(k+x))}}let S;for(;S=O.pop();)this.isValidLookup(n)||(a=S,n=this.getResource(E,v,S,r))}))})}),{res:n,usedKey:i,exactUsedKey:a,usedLng:o,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,r,n,i={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(t,r,n,i):this.resourceStore.getResource(t,r,n,i)}getUsedParamsDetails(t={}){let r=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=t.replace&&!tr(t.replace),i=n?t.replace:t;if(n&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!n){i={...i};for(let a of r)delete i[a]}return i}static hasDefaultValue(t){let r="defaultValue";for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&r===n.substring(0,r.length)&&t[n]!==void 0)return!0;return!1}},Sne=class{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Og.create("languageUtils")}getScriptPartFromCode(t){if(t=_U(t),!t||t.indexOf("-")<0)return null;let r=t.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(t){if(t=_U(t),!t||t.indexOf("-")<0)return t;let r=t.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(t){if(tr(t)&&t.indexOf("-")>-1){let r;try{r=Intl.getCanonicalLocales(t)[0]}catch{}return r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let r;return t.forEach(n=>{if(r)return;let i=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(i))&&(r=i)}),!r&&this.options.supportedLngs&&t.forEach(n=>{if(r)return;let i=this.getScriptPartFromCode(n);if(this.isSupportedCode(i))return r=i;let a=this.getLanguagePartFromCode(n);if(this.isSupportedCode(a))return r=a;r=this.options.supportedLngs.find(o=>{if(o===a)return o;if(!(o.indexOf("-")<0&&a.indexOf("-")<0)&&(o.indexOf("-")>0&&a.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===a||o.indexOf(a)===0&&a.length>1))return o})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(t,r){if(!t)return[];if(typeof t=="function"&&(t=t(r)),tr(t)&&(t=[t]),Array.isArray(t))return t;if(!r)return t.default||[];let n=t[r];return n||(n=t[this.getScriptPartFromCode(r)]),n||(n=t[this.formatLanguageCode(r)]),n||(n=t[this.getLanguagePartFromCode(r)]),n||(n=t.default),n||[]}toResolveHierarchy(t,r){let n=this.getFallbackCodes((r===!1?[]:r)||this.options.fallbackLng||[],t),i=[],a=o=>{o&&(this.isSupportedCode(o)?i.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return tr(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(t))):tr(t)&&a(this.formatLanguageCode(t)),n.forEach(o=>{i.indexOf(o)<0&&a(this.formatLanguageCode(o))}),i}},btr={zero:0,one:1,two:2,few:3,many:4,other:5},_tr={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})},wFe=class{constructor(t,r={}){this.languageUtils=t,this.options=r,this.logger=Og.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,r={}){let n=_U(t==="dev"?"en":t),i=r.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:n,type:i});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let o;try{o=new Intl.PluralRules(n,{type:i})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),_tr;if(!t.match(/-|_/))return _tr;let c=this.languageUtils.getLanguagePartFromCode(t);o=this.getRule(c,r)}return this.pluralRulesCache[a]=o,o}needsPlural(t,r={}){let n=this.getRule(t,r);return n||(n=this.getRule("dev",r)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(t,r,n={}){return this.getSuffixes(t,n).map(i=>`${r}${i}`)}getSuffixes(t,r={}){let n=this.getRule(t,r);return n||(n=this.getRule("dev",r)),n?n.resolvedOptions().pluralCategories.sort((i,a)=>btr[i]-btr[a]).map(i=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(t,r,n={}){let i=this.getRule(t,n);return i?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i.select(r)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",r,n))}},Etr=(e,t,r,n=".",i=!0)=>{let a=eai(e,t,r);return!a&&i&&tr(r)&&(a=CFe(e,r,n),a===void 0&&(a=CFe(t,r,n))),a},SFe=e=>e.replace(/\$/g,"$$$$"),Ane=class{constructor(t={}){this.logger=Og.create("interpolator"),this.options=t,this.format=t?.interpolation?.format||(r=>r),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});let{escape:r,escapeValue:n,useRawValueToEscape:i,prefix:a,prefixEscaped:o,suffix:s,suffixEscaped:c,formatSeparator:u,unescapeSuffix:l,unescapePrefix:p,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:h,nestingSuffixEscaped:g,nestingOptionsSeparator:v,maxReplaces:E,alwaysFormat:O}=t.interpolation;this.escape=r!==void 0?r:rai,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=a?NI(a):o||"{{",this.suffix=s?NI(s):c||"}}",this.formatSeparator=u||",",this.unescapePrefix=l?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":l||"",this.nestingPrefix=d?NI(d):f||NI("$t("),this.nestingSuffix=h?NI(h):g||NI(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=E||1e3,this.alwaysFormat=O!==void 0?O:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let t=(r,n)=>r?.source===n?(r.lastIndex=0,r):new RegExp(n,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,r,n,i){let a,o,s,c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=f=>{if(f.indexOf(this.formatSeparator)<0){let E=Etr(r,c,f,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(E,void 0,n,{...i,...r,interpolationkey:f}):E}let h=f.split(this.formatSeparator),g=h.shift().trim(),v=h.join(this.formatSeparator).trim();return this.format(Etr(r,c,g,this.options.keySeparator,this.options.ignoreJSONStructure),v,n,{...i,...r,interpolationkey:g})};this.resetRegExp();let l=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,p=i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:f=>SFe(f)},{regex:this.regexp,safeValue:f=>this.escapeValue?SFe(this.escape(f)):SFe(f)}].forEach(f=>{for(s=0;a=f.regex.exec(t);){let h=a[1].trim();if(o=u(h),o===void 0)if(typeof l=="function"){let v=l(t,a,i);o=tr(v)?v:""}else if(i&&Object.prototype.hasOwnProperty.call(i,h))o="";else if(p){o=a[0];continue}else this.logger.warn(`missed to pass in variable ${h} for interpolating ${t}`),o="";else!tr(o)&&!this.useRawValueToEscape&&(o=htr(o));let g=f.safeValue(o);if(t=t.replace(a[0],g),p?(f.regex.lastIndex+=o.length,f.regex.lastIndex-=a[0].length):f.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,r,n={}){let i,a,o,s=(c,u)=>{let l=this.nestingOptionsSeparator;if(c.indexOf(l)<0)return c;let p=c.split(new RegExp(`${l}[ ]*{`)),d=`{${p[1]}`;c=p[0],d=this.interpolate(d,o);let f=d.match(/'/g),h=d.match(/"/g);((f?.length??0)%2===0&&!h||h.length%2!==0)&&(d=d.replace(/'/g,'"'));try{o=JSON.parse(d),u&&(o={...u,...o})}catch(g){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,g),`${c}${l}${d}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,c};for(;i=this.nestingRegexp.exec(t);){let c=[];o={...n},o=o.replace&&!tr(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(u!==-1&&(c=i[1].slice(u).split(this.formatSeparator).map(l=>l.trim()).filter(Boolean),i[1]=i[1].slice(0,u)),a=r(s.call(this,i[1].trim(),o),o),a&&i[0]===t&&!tr(a))return a;tr(a)||(a=htr(a)),a||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),a=""),c.length&&(a=c.reduce((l,p)=>this.format(l,p,n.lng,{...n,interpolationkey:i[1].trim()}),a.trim())),t=t.replace(i[0],a),this.regexp.lastIndex=0}return t}},cai=e=>{let t=e.toLowerCase().trim(),r={};if(e.indexOf("(")>-1){let n=e.split("(");t=n[0].toLowerCase().trim();let i=n[1].substring(0,n[1].length-1);t==="currency"&&i.indexOf(":")<0?r.currency||(r.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?r.range||(r.range=i.trim()):i.split(";").forEach(o=>{if(o){let[s,...c]=o.split(":"),u=c.join(":").trim().replace(/^'+|'+$/g,""),l=s.trim();r[l]||(r[l]=u),u==="false"&&(r[l]=!1),u==="true"&&(r[l]=!0),isNaN(u)||(r[l]=parseInt(u,10))}})}return{formatName:t,formatOptions:r}},Ttr=e=>{let t={};return(r,n,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=n+JSON.stringify(a),s=t[o];return s||(s=e(_U(n),i),t[o]=s),s(r)}},uai=e=>(t,r,n)=>e(_U(r),n)(t),NFe=class{constructor(t={}){this.logger=Og.create("formatter"),this.options=t,this.init(t)}init(t,r={interpolation:{}}){this.formatSeparator=r.interpolation.formatSeparator||",";let n=r.cacheInBuiltFormats?Ttr:uai;this.formats={number:n((i,a)=>{let o=new Intl.NumberFormat(i,{...a});return s=>o.format(s)}),currency:n((i,a)=>{let o=new Intl.NumberFormat(i,{...a,style:"currency"});return s=>o.format(s)}),datetime:n((i,a)=>{let o=new Intl.DateTimeFormat(i,{...a});return s=>o.format(s)}),relativetime:n((i,a)=>{let o=new Intl.RelativeTimeFormat(i,{...a});return s=>o.format(s,a.range||"day")}),list:n((i,a)=>{let o=new Intl.ListFormat(i,{...a});return s=>o.format(s)})}}add(t,r){this.formats[t.toLowerCase().trim()]=r}addCached(t,r){this.formats[t.toLowerCase().trim()]=Ttr(r)}format(t,r,n,i={}){let a=r.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(s=>s.indexOf(")")>-1)){let s=a.findIndex(c=>c.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,s)].join(this.formatSeparator)}return a.reduce((s,c)=>{let{formatName:u,formatOptions:l}=cai(c);if(this.formats[u]){let p=s;try{let d=i?.formatParams?.[i.interpolationkey]||{},f=d.locale||d.lng||i.locale||i.lng||n;p=this.formats[u](s,f,{...l,...i,...d})}catch(d){this.logger.warn(d)}return p}else this.logger.warn(`there was no format function for ${u}`);return s},t)}},lai=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},IFe=class extends II{constructor(t,r,n,i={}){super(),this.backend=t,this.store=r,this.services=n,this.languageUtils=n.languageUtils,this.options=i,this.logger=Og.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,i.backend,i)}queueLoad(t,r,n,i){let a={},o={},s={},c={};return t.forEach(u=>{let l=!0;r.forEach(p=>{let d=`${u}|${p}`;!n.reload&&this.store.hasResourceBundle(u,p)?this.state[d]=2:this.state[d]<0||(this.state[d]===1?o[d]===void 0&&(o[d]=!0):(this.state[d]=1,l=!1,o[d]===void 0&&(o[d]=!0),a[d]===void 0&&(a[d]=!0),c[p]===void 0&&(c[p]=!0)))}),l||(s[u]=!0)}),(Object.keys(a).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(a),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(c)}}loaded(t,r,n){let i=t.split("|"),a=i[0],o=i[1];r&&this.emit("failedLoading",a,o,r),!r&&n&&this.store.addResourceBundle(a,o,n,void 0,void 0,{skipCopy:!0}),this.state[t]=r?-1:2,r&&n&&(this.state[t]=0);let s={};this.queue.forEach(c=>{Qii(c.loaded,[a],o),lai(c,t),r&&c.errors.push(r),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(u=>{s[u]||(s[u]={});let l=c.loaded[u];l.length&&l.forEach(p=>{s[u][p]===void 0&&(s[u][p]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(c=>!c.done)}read(t,r,n,i=0,a=this.retryTimeout,o){if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:r,fcName:n,tried:i,wait:a,callback:o});return}this.readingCalls++;let s=(u,l)=>{if(this.readingCalls--,this.waitingReads.length>0){let p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(u&&l&&i<this.maxRetries){setTimeout(()=>{this.read.call(this,t,r,n,i+1,a*2,o)},a);return}o(u,l)},c=this.backend[n].bind(this.backend);if(c.length===2){try{let u=c(t,r);u&&typeof u.then=="function"?u.then(l=>s(null,l)).catch(s):s(null,u)}catch(u){s(u)}return}return c(t,r,s)}prepareLoading(t,r,n={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();tr(t)&&(t=this.languageUtils.toResolveHierarchy(t)),tr(r)&&(r=[r]);let a=this.queueLoad(t,r,n,i);if(!a.toLoad.length)return a.pending.length||i(),null;a.toLoad.forEach(o=>{this.loadOne(o)})}load(t,r,n){this.prepareLoading(t,r,{},n)}reload(t,r,n){this.prepareLoading(t,r,{reload:!0},n)}loadOne(t,r=""){let n=t.split("|"),i=n[0],a=n[1];this.read(i,a,"read",void 0,void 0,(o,s)=>{o&&this.logger.warn(`${r}loading namespace ${a} for language ${i} failed`,o),!o&&s&&this.logger.log(`${r}loaded namespace ${a} for language ${i}`,s),this.loaded(t,o,s)})}saveMissing(t,r,n,i,a,o={},s=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(r)){this.logger.warn(`did not save key "${n}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend?.create){let c={...o,isUpdate:a},u=this.backend.create.bind(this.backend);if(u.length<6)try{let l;u.length===5?l=u(t,r,n,i,c):l=u(t,r,n,i),l&&typeof l.then=="function"?l.then(p=>s(null,p)).catch(s):s(null,l)}catch(l){s(l)}else u(t,r,n,i,s,c)}!t||!t[0]||this.store.addResource(t[0],r,n,i)}}},AFe=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),tr(e[1])&&(t.defaultValue=e[1]),tr(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){let r=e[3]||e[2];Object.keys(r).forEach(n=>{t[n]=r[n]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Otr=e=>(tr(e.ns)&&(e.ns=[e.ns]),tr(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),tr(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e),_ne=()=>{},pai=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(r=>{typeof e[r]=="function"&&(e[r]=e[r].bind(e))})},RFe=class e extends II{constructor(t={},r){if(super(),this.options=Otr(t),this.services={},this.logger=Og,this.modules={external:[]},pai(this),r&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,r),this;setTimeout(()=>{this.init(t,r)},0)}}init(t={},r){this.isInitializing=!0,typeof t=="function"&&(r=t,t={}),t.defaultNS==null&&t.ns&&(tr(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));let n=AFe();this.options={...n,...this.options,...Otr(t)},this.options.interpolation={...n.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),this.options.debug===!0&&typeof console<"u"&&console.warn("i18next is maintained with support from locize.com \u2014 consider powering your project with managed localization (AI, CDN, integrations): https://locize.com");let i=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Og.init(i(this.modules.logger),this.options):Og.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:u=NFe;let l=new Sne(this.options);this.store=new Tne(this.options.resources,this.options);let p=this.services;p.logger=Og,p.resourceStore=this.store,p.languageUtils=l,p.pluralResolver=new wFe(l,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),u&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(p.formatter=i(u),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new Ane(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new IFe(i(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.languageDetector&&(p.languageDetector=i(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=i(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new One(this.services,this.options),this.translator.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,r||(r=_ne),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.length>0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(u=>{this[u]=(...l)=>this.store[u](...l)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(u=>{this[u]=(...l)=>(this.store[u](...l),this)});let s=vU(),c=()=>{let u=(l,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),s.resolve(p),r(l,p)};if(this.languages&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),s}loadResources(t,r=_ne){let n=r,i=tr(t)?t:this.language;if(typeof t=="function"&&(n=t),!this.options.resources||this.options.partialBundledLanguages){if(i?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();let a=[],o=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&a.indexOf(u)<0&&a.push(u)})};i?o(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>o(c)),this.options.preload?.forEach?.(s=>o(s)),this.services.backendConnector.load(a,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(s)})}else n(null)}reloadResources(t,r,n){let i=vU();return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r=void 0),t||(t=this.languages),r||(r=this.options.ns),n||(n=_ne),this.services.backendConnector.reload(t,r,a=>{i.resolve(),n(a)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Atr.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1)){for(let r=0;r<this.languages.length;r++){let n=this.languages[r];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}!this.resolvedLanguage&&this.languages.indexOf(t)<0&&this.store.hasLanguageSomeTranslations(t)&&(this.resolvedLanguage=t,this.languages.unshift(t))}}changeLanguage(t,r){this.isLanguageChangingTo=t;let n=vU();this.emit("languageChanging",t);let i=s=>{this.language=s,this.languages=this.services.languageUtils.toResolveHierarchy(s),this.resolvedLanguage=void 0,this.setResolvedLanguage(s)},a=(s,c)=>{c?this.isLanguageChangingTo===t&&(i(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,n.resolve((...u)=>this.t(...u)),r&&r(s,(...u)=>this.t(...u))},o=s=>{!t&&!s&&this.services.languageDetector&&(s=[]);let c=tr(s)?s:s&&s[0],u=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(tr(s)?[s]:s);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector?.cacheUserLanguage?.(u)),this.loadResources(u,l=>{a(l,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?o(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(o):this.services.languageDetector.detect(o):o(t),n}getFixedT(t,r,n){let i=(a,o,...s)=>{let c;typeof o!="object"?c=this.options.overloadTranslationOptionHandler([a,o].concat(s)):c={...o},c.lng=c.lng||i.lng,c.lngs=c.lngs||i.lngs,c.ns=c.ns||i.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||n||i.keyPrefix);let u=this.options.keySeparator||".",l;return c.keyPrefix&&Array.isArray(a)?l=a.map(p=>(typeof p=="function"&&(p=DFe(p,{...this.options,...o})),`${c.keyPrefix}${u}${p}`)):(typeof a=="function"&&(a=DFe(a,{...this.options,...o})),l=c.keyPrefix?`${c.keyPrefix}${u}${a}`:a),this.t(l,c)};return tr(t)?i.lng=t:i.lngs=t,i.ns=r,i.keyPrefix=n,i}t(...t){return this.translator?.translate(...t)}exists(...t){return this.translator?.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,r={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let n=r.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;let o=(s,c)=>{let u=this.services.backendConnector.state[`${s}|${c}`];return u===-1||u===0||u===2};if(r.precheck){let s=r.precheck(this,o);if(s!==void 0)return s}return!!(this.hasResourceBundle(n,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(n,t)&&(!i||o(a,t)))}loadNamespaces(t,r){let n=vU();return this.options.ns?(tr(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{n.resolve(),r&&r(i)}),n):(r&&r(),Promise.resolve())}loadLanguages(t,r){let n=vU();tr(t)&&(t=[t]);let i=this.options.preload||[],a=t.filter(o=>i.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return a.length?(this.options.preload=i.concat(a),this.loadResources(o=>{n.resolve(),r&&r(o)}),n):(r&&r(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!t)return"rtl";try{let i=new Intl.Locale(t);if(i&&i.getTextInfo){let a=i.getTextInfo();if(a&&a.direction)return a.direction}}catch{}let r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services?.languageUtils||new Sne(AFe());return t.toLowerCase().indexOf("-latn")>1?"ltr":r.indexOf(n.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},r){let n=new e(t,r);return n.createInstance=e.createInstance,n}cloneInstance(t={},r=_ne){let n=t.forkResourceStore;n&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach(s=>{a[s]=this[s]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},n){let s=Object.keys(this.store.data).reduce((c,u)=>(c[u]={...this.store.data[u]},c[u]=Object.keys(c[u]).reduce((l,p)=>(l[p]={...c[u][p]},l),c[u]),c),{});a.store=new Tne(s,i),a.services.resourceStore=a.store}if(t.interpolation){let c={...AFe().interpolation,...this.options.interpolation,...t.interpolation},u={...i,interpolation:c};a.services.interpolator=new Ane(u)}return a.translator=new One(a.services,i),a.translator.on("*",(s,...c)=>{a.emit(s,...c)}),a.init(i,r),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},Mc=RFe.createInstance(),MXi=Mc.createInstance,FXi=Mc.dir,jXi=Mc.init,VXi=Mc.loadResources,qXi=Mc.reloadResources,UXi=Mc.use,BXi=Mc.changeLanguage,zXi=Mc.getFixedT,HXi=Mc.t,GXi=Mc.exists,KXi=Mc.setDefaultNamespace,YXi=Mc.hasLoadedNamespace,WXi=Mc.loadNamespaces,XXi=Mc.loadLanguages;var Ctr="@sap-ux/fiori-mcp-server",Ntr="unknown-tool",fai="0a65e45d-6bf4-421d-b845-61e888c50e9e",BA=class{static _telemetryData;static _previousEventTimestamp;static get telemetryData(){return this._telemetryData}static async initTelemetrySettings(t){let r={consumerModule:{name:Ctr,version:Bze},watchTelemetrySettingStore:!1,internalFeature:(0,Ptr.isInternalFeaturesSettingEnabled)(),resourceId:fai,...t};try{await(0,hh.initTelemetrySettings)(r)}catch(n){dt.error(`Error initializing telemetry settings: ${n}`)}}static createTelemetryData(t,r=!1){let n=new Date().getTime();if(this._previousEventTimestamp||(r=!1,this._previousEventTimestamp=n),!this._telemetryData){let i=Mc.t("telemetry.unknownOs");try{i=(0,wtr.default)()}catch{}this._telemetryData={Platform:(0,Dtr.isAppStudio)()?"SBAS":"VSCode",OperatingSystem:i}}if(r){let i={...this._telemetryData,...t};if(Math.abs(this._previousEventTimestamp-n)<1e3&&JSON.stringify(i)===JSON.stringify(this._telemetryData))return}return this._previousEventTimestamp=n,this._telemetryData=Object.assign(this._telemetryData,t),this._telemetryData}static prepareTelemetryEvent(t,r){this.markToolsEndTime();let n=r.markName?hh.PerformanceMeasurementAPI.getMeasurementDuration(r.markName):void 0;return{eventName:t,properties:r,measurements:n?{RequestTime:n}:{}}}static markToolStartTime(){this.createTelemetryData({markName:hh.PerformanceMeasurementAPI.startMark("MCP_LOADING_TIME")})}static markToolsEndTime(){this._telemetryData?.markName&&(hh.PerformanceMeasurementAPI.endMark(this._telemetryData.markName),hh.PerformanceMeasurementAPI.measure(this._telemetryData.markName))}static async sendTelemetry(t,r,n){let i=this.prepareTelemetryEvent(t,r);await hh.ClientFactory.getTelemetryClient().reportEvent(i,hh.SampleRate.NoSampling,n?{appPath:n}:void 0)}static getTelemetryName(){return Ctr}};var xne=class{server;mcpClientName="unknown-client";mcpClientVersion="unknown-version";constructor(){this.server=new Xz({name:"fiori-mcp",version:Q0.version},{capabilities:{tools:{}}}),this.setupToolHandlers(),this.setupErrorHandling()}setupErrorHandling(){this.server.onerror=t=>dt.error(`[MCP Error] ${t}`),process.on("SIGINT",async()=>{await this.server.close(),process.exit(0)})}async setupTelemetry(){await BA.initTelemetrySettings()}setupToolHandlers(){this.server.setRequestHandler(aL,async t=>(this.mcpClientName=t.params.clientInfo?.name||"unknown-client",this.mcpClientVersion=t.params.clientInfo?.version||"unknown-version",dt.info(`MCP Client connected: ${this.mcpClientName} v${this.mcpClientVersion}`),{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"fiori-mcp",version:Q0.version}})),this.server.setRequestHandler(pse,async()=>({tools:qUt})),this.server.setRequestHandler(pL,async t=>{let{name:r,arguments:n}=t.params;try{let i;BA.markToolStartTime();let a={tool:r,mcpClientName:this.mcpClientName,mcpClientVersion:this.mcpClientVersion};if("functionalityId"in n){let{functionalityId:s}=n;Array.isArray(s)&&s.length>=1?a.functionalityId=`property-change:${s.at(-1)}`:a.functionalityId=s}switch(dt.debug(`Executing tool: ${r} with arguments: ${JSON.stringify(n)}`),r){case"search_docs":i=await pSe(n,!0);break;case"list_fiori_apps":i=await fSe(n);break;case"list_functionality":i=await mNe(n);break;case"get_functionality_details":i=await iV(n);break;case"execute_functionality":i=await vNe(n);break;default:throw await BA.sendTelemetry(Ntr,{},n?.appPath),new Error(`Unknown tool: ${r}. Try one of: list_fiori_apps, list_functionality, get_functionality_details, execute_functionality.`)}await BA.sendTelemetry(r,a,n?.appPath);let o=this.convertResultToCallToolResult(i);return dt.debug(`Tool ${r} executed successfully with result:`),dt.debug(o),o}catch(i){return dt.error(`Error executing tool ${r}: ${i}`),dt.debug(i),{content:[{type:"text",text:`Error: ${i instanceof Error?i.message:"Unknown error occurred"}`}]}}})}convertResultToCallToolResult(t){if(typeof t=="string"||t instanceof String)return{content:[{type:"text",text:t.toString()}]};let r={content:[{type:"text",text:JSON.stringify(t)}]};return Array.isArray(t)||(r.structuredContent=t),r}async run(){let t=new Zz;await this.server.connect(t),await this.setupTelemetry(),dt.info(`SAP Fiori - Model Context Protocol (MCP) server (@sap-ux/fiori-mcp-server@${Q0.version}) running on stdio`)}};var dai=new xne;dai.run().catch(e=>dt.error(`Server error: ${e}`));
1663
1663
  /*! Bundled license information:
1664
1664
 
1665
1665
  safe-buffer/index.js:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sap-ux/fiori-mcp-server",
3
3
  "description": "SAP Fiori - Model Context Protocol (MCP) server",
4
- "version": "0.6.16",
4
+ "version": "0.6.17",
5
5
  "keywords": [
6
6
  "SAP Fiori tools",
7
7
  "SAP Fiori elements",
@@ -49,15 +49,15 @@
49
49
  "@sap-ux/axios-extension": "1.25.7",
50
50
  "@sap-ux/project-access": "1.34.2",
51
51
  "@sap-ux/fiori-annotation-api": "0.9.4",
52
- "@sap-ux/i18n": "0.3.7",
53
52
  "@sap-ux/fiori-docs-embeddings": "0.4.11",
54
- "@sap-ux/odata-annotation-core-types": "0.5.2",
53
+ "@sap-ux/i18n": "0.3.7",
55
54
  "@sap-ux/logger": "0.8.0",
56
55
  "@sap-ux/odata-entity-model": "0.3.4",
57
- "@sap-ux/text-document-utils": "0.3.3",
56
+ "@sap-ux/odata-annotation-core-types": "0.5.2",
58
57
  "@sap-ux/btp-utils": "1.1.6",
59
58
  "@sap-ux/feature-toggle": "0.3.5",
60
59
  "@sap-ux/nodejs-utils": "0.2.11",
60
+ "@sap-ux/text-document-utils": "0.3.3",
61
61
  "@sap-ux/telemetry": "0.6.59"
62
62
  },
63
63
  "dependencies": {