{"version":3,"sources":["../src/storage/domains/mcp-servers/base.ts","../src/storage/domains/mcp-servers/inmemory.ts","../src/storage/domains/mcp-servers/filesystem.ts"],"names":["VersionedStorageDomain","normalizePerPage","deepEqual","calculatePagination","version","FilesystemVersionedHelpers"],"mappings":";;;;;;AA8DO,IAAe,iBAAA,GAAf,cAAyCA,wCAAA,CAa9C;AAAA,EACmB,OAAA,GAAU,YAAA;AAAA,EACV,qBAAA,GAAwB;AAAA,IACzC,IAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEA,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM;AAAA,MACJ,SAAA,EAAW,SAAA;AAAA,MACX,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AACF;;;ACtEO,IAAM,yBAAA,GAAN,cAAwC,iBAAA,CAAkB;AAAA,EACvD,EAAA;AAAA,EAER,WAAA,CAAY,EAAE,EAAA,EAAG,EAAuB;AACtC,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,EAAA,GAAK,EAAA;AAAA,EACZ;AAAA,EAEA,MAAM,mBAAA,GAAqC;AACzC,IAAA,IAAA,CAAK,EAAA,CAAG,WAAW,KAAA,EAAM;AACzB,IAAA,IAAA,CAAK,EAAA,CAAG,kBAAkB,KAAA,EAAM;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAQ,EAAA,EAAkD;AAC9D,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW,IAAI,EAAE,CAAA;AACxC,IAAA,OAAO,MAAA,GAAS,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,GAAI,IAAA;AAAA,EAChD;AAAA,EAEA,MAAM,OAAO,KAAA,EAAkF;AAC7F,IAAA,MAAM,EAAE,WAAU,GAAI,KAAA;AAEtB,IAAA,IAAI,KAAK,EAAA,CAAG,UAAA,CAAW,GAAA,CAAI,SAAA,CAAU,EAAE,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,mBAAA,EAAsB,SAAA,CAAU,EAAE,CAAA,eAAA,CAAiB,CAAA;AAAA,IACrE;AAEA,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,IAAA,MAAM,SAAA,GAAkC;AAAA,MACtC,IAAI,SAAA,CAAU,EAAA;AAAA,MACd,MAAA,EAAQ,OAAA;AAAA,MACR,eAAA,EAAiB,MAAA;AAAA,MACjB,UAAU,SAAA,CAAU,QAAA;AAAA,MACpB,UAAU,SAAA,CAAU,QAAA;AAAA,MACpB,SAAA,EAAW,GAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACb;AAEA,IAAA,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW,GAAA,CAAI,SAAA,CAAU,IAAI,SAAS,CAAA;AAG9C,IAAA,MAAM,EAAE,IAAI,GAAA,EAAK,QAAA,EAAU,WAAW,QAAA,EAAU,SAAA,EAAW,GAAG,cAAA,EAAe,GAAI,SAAA;AAGjF,IAAA,MAAM,SAAA,GAAY,OAAO,UAAA,EAAW;AACpC,IAAA,MAAM,KAAK,aAAA,CAAc;AAAA,MACvB,EAAA,EAAI,SAAA;AAAA,MACJ,aAAa,SAAA,CAAU,EAAA;AAAA,MACvB,aAAA,EAAe,CAAA;AAAA,MACf,GAAG,cAAA;AAAA,MACH,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA;AAAA,MACzC,aAAA,EAAe;AAAA,KAChB,CAAA;AAGD,IAAA,OAAO,IAAA,CAAK,eAAe,SAAS,CAAA;AAAA,EACtC;AAAA,EAEA,MAAM,OAAO,KAAA,EAAmE;AAC9E,IAAA,MAAM,EAAE,EAAA,EAAI,GAAG,OAAA,EAAQ,GAAI,KAAA;AAE3B,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW,IAAI,EAAE,CAAA;AAChD,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,mBAAA,EAAsB,EAAE,CAAA,UAAA,CAAY,CAAA;AAAA,IACtD;AAGA,IAAA,MAAM,EAAE,QAAA,EAAU,eAAA,EAAiB,QAAA,EAAU,QAAO,GAAI,OAAA;AAGxD,IAAA,MAAM,aAAA,GAAsC;AAAA,MAC1C,GAAG,cAAA;AAAA,MACH,GAAI,QAAA,KAAa,MAAA,IAAa,EAAE,QAAA,EAAS;AAAA,MACzC,GAAI,eAAA,KAAoB,MAAA,IAAa,EAAE,eAAA,EAAgB;AAAA,MACvD,GAAI,MAAA,KAAW,MAAA,IAAa,EAAE,MAAA,EAAiD;AAAA,MAC/E,GAAI,aAAa,MAAA,IAAa;AAAA,QAC5B,UAAU,EAAE,GAAG,cAAA,CAAe,QAAA,EAAU,GAAG,QAAA;AAAS,OACtD;AAAA,MACA,SAAA,sBAAe,IAAA;AAAK,KACtB;AAGA,IAAA,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW,GAAA,CAAI,EAAA,EAAI,aAAa,CAAA;AACxC,IAAA,OAAO,IAAA,CAAK,eAAe,aAAa,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,OAAO,EAAA,EAA2B;AAEtC,IAAA,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW,MAAA,CAAO,EAAE,CAAA;AAE5B,IAAA,MAAM,IAAA,CAAK,yBAAyB,EAAE,CAAA;AAAA,EACxC;AAAA,EAEA,MAAM,KAAK,IAAA,EAAyE;AAClF,IAAA,MAAM,EAAE,IAAA,GAAO,CAAA,EAAG,OAAA,EAAS,YAAA,EAAc,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,MAAA,GAAS,WAAA,EAAY,GAAI,IAAA,IAAQ,EAAC;AACxG,IAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,IAAA,CAAK,aAAa,OAAO,CAAA;AAGtD,IAAA,MAAM,OAAA,GAAUC,kCAAA,CAAiB,YAAA,EAAc,GAAG,CAAA;AAElD,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,MAAM,IAAI,MAAM,mBAAmB,CAAA;AAAA,IACrC;AAGA,IAAA,MAAM,SAAA,GAAY,OAAO,gBAAA,GAAmB,CAAA;AAC5C,IAAA,IAAI,IAAA,GAAO,UAAU,SAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AAGA,IAAA,IAAI,UAAU,KAAA,CAAM,IAAA,CAAK,KAAK,EAAA,CAAG,UAAA,CAAW,QAAQ,CAAA;AAGpD,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,OAAA,GAAU,OAAA,CAAQ,MAAA,CAAO,CAAA,MAAA,KAAU,MAAA,CAAO,WAAW,MAAM,CAAA;AAAA,IAC7D;AAGA,IAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,MAAA,OAAA,GAAU,OAAA,CAAQ,MAAA,CAAO,CAAA,MAAA,KAAU,MAAA,CAAO,aAAa,QAAQ,CAAA;AAAA,IACjE;AAGA,IAAA,IAAI,YAAY,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,SAAS,CAAA,EAAG;AAChD,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAO,CAAA,MAAA,KAAU;AACjC,QAAA,IAAI,CAAC,MAAA,CAAO,QAAA,EAAU,OAAO,KAAA;AAC7B,QAAA,OAAO,OAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,KAAA,CAAM,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAMC,4BAAU,MAAA,CAAO,QAAA,CAAU,GAAG,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,MACjG,CAAC,CAAA;AAAA,IACH;AAGA,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,WAAA,CAAY,OAAA,EAAS,OAAO,SAAS,CAAA;AAGhE,IAAA,MAAM,gBAAgB,aAAA,CAAc,GAAA,CAAI,YAAU,IAAA,CAAK,cAAA,CAAe,MAAM,CAAC,CAAA;AAE7E,IAAA,MAAM,EAAE,QAAQ,OAAA,EAAS,kBAAA,KAAuBC,qCAAA,CAAoB,IAAA,EAAM,cAAc,OAAO,CAAA;AAE/F,IAAA,OAAO;AAAA,MACL,UAAA,EAAY,aAAA,CAAc,KAAA,CAAM,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,MACxD,OAAO,aAAA,CAAc,MAAA;AAAA,MACrB,IAAA;AAAA,MACA,OAAA,EAAS,kBAAA;AAAA,MACT,OAAA,EAAS,MAAA,GAAS,OAAA,GAAU,aAAA,CAAc;AAAA,KAC5C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAc,KAAA,EAA+D;AAEjF,IAAA,IAAI,KAAK,EAAA,CAAG,iBAAA,CAAkB,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA,EAAG;AAC3C,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,KAAA,CAAM,EAAE,CAAA,eAAA,CAAiB,CAAA;AAAA,IAC9D;AAGA,IAAA,KAAA,MAAWC,QAAAA,IAAW,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,QAAO,EAAG;AACxD,MAAA,IAAIA,SAAQ,WAAA,KAAgB,KAAA,CAAM,eAAeA,QAAAA,CAAQ,aAAA,KAAkB,MAAM,aAAA,EAAe;AAC9F,QAAA,MAAM,IAAI,MAAM,CAAA,eAAA,EAAkB,KAAA,CAAM,aAAa,CAAA,+BAAA,EAAkC,KAAA,CAAM,WAAW,CAAA,CAAE,CAAA;AAAA,MAC5G;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAA4B;AAAA,MAChC,GAAG,KAAA;AAAA,MACH,SAAA,sBAAe,IAAA;AAAK,KACtB;AAGA,IAAA,IAAA,CAAK,EAAA,CAAG,kBAAkB,GAAA,CAAI,KAAA,CAAM,IAAI,IAAA,CAAK,eAAA,CAAgB,OAAO,CAAC,CAAA;AACrE,IAAA,OAAO,IAAA,CAAK,gBAAgB,OAAO,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,WAAW,EAAA,EAA8C;AAC7D,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,IAAI,EAAE,CAAA;AAChD,IAAA,OAAO,OAAA,GAAU,IAAA,CAAK,eAAA,CAAgB,OAAO,CAAA,GAAI,IAAA;AAAA,EACnD;AAAA,EAEA,MAAM,kBAAA,CAAmB,WAAA,EAAqB,aAAA,EAAyD;AACrG,IAAA,KAAA,MAAW,OAAA,IAAW,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,QAAO,EAAG;AACxD,MAAA,IAAI,OAAA,CAAQ,WAAA,KAAgB,WAAA,IAAe,OAAA,CAAQ,kBAAkB,aAAA,EAAe;AAClF,QAAA,OAAO,IAAA,CAAK,gBAAgB,OAAO,CAAA;AAAA,MACrC;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,iBAAiB,WAAA,EAAuD;AAC5E,IAAA,IAAI,MAAA,GAAkC,IAAA;AACtC,IAAA,KAAA,MAAW,OAAA,IAAW,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,QAAO,EAAG;AACxD,MAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,QAAA,IAAI,CAAC,MAAA,IAAU,OAAA,CAAQ,aAAA,GAAgB,OAAO,aAAA,EAAe;AAC3D,UAAA,MAAA,GAAS,OAAA;AAAA,QACX;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA,GAAS,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA,GAAI,IAAA;AAAA,EACjD;AAAA,EAEA,MAAM,aAAa,KAAA,EAAyE;AAC1F,IAAA,MAAM,EAAE,WAAA,EAAa,IAAA,GAAO,GAAG,OAAA,EAAS,YAAA,EAAc,SAAQ,GAAI,KAAA;AAClE,IAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,IAAA,CAAK,oBAAoB,OAAO,CAAA;AAG7D,IAAA,MAAM,OAAA,GAAUH,kCAAA,CAAiB,YAAA,EAAc,EAAE,CAAA;AAEjD,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,MAAM,IAAI,MAAM,mBAAmB,CAAA;AAAA,IACrC;AAEA,IAAA,MAAM,SAAA,GAAY,OAAO,gBAAA,GAAmB,CAAA;AAC5C,IAAA,IAAI,IAAA,GAAO,UAAU,SAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AAGA,IAAA,IAAI,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,gBAAgB,WAAW,CAAA;AAGvG,IAAA,QAAA,GAAW,IAAA,CAAK,YAAA,CAAa,QAAA,EAAU,KAAA,EAAO,SAAS,CAAA;AAGvD,IAAA,MAAM,iBAAiB,QAAA,CAAS,GAAA,CAAI,OAAK,IAAA,CAAK,eAAA,CAAgB,CAAC,CAAC,CAAA;AAEhE,IAAA,MAAM,QAAQ,cAAA,CAAe,MAAA;AAC7B,IAAA,MAAM,EAAE,QAAQ,OAAA,EAAS,kBAAA,KAAuBE,qCAAA,CAAoB,IAAA,EAAM,cAAc,OAAO,CAAA;AAC/F,IAAA,MAAM,iBAAA,GAAoB,cAAA,CAAe,KAAA,CAAM,MAAA,EAAQ,SAAS,OAAO,CAAA;AAEvE,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,iBAAA;AAAA,MACV,KAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA,EAAS,kBAAA;AAAA,MACT,OAAA,EAAS,SAAS,OAAA,GAAU;AAAA,KAC9B;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,EAAA,EAA2B;AAC7C,IAAA,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,MAAA,CAAO,EAAE,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,yBAAyB,QAAA,EAAiC;AAC9D,IAAA,MAAM,cAAwB,EAAC;AAC/B,IAAA,KAAA,MAAW,CAAC,IAAI,OAAO,CAAA,IAAK,KAAK,EAAA,CAAG,iBAAA,CAAkB,SAAQ,EAAG;AAC/D,MAAA,IAAI,OAAA,CAAQ,gBAAgB,QAAA,EAAU;AACpC,QAAA,WAAA,CAAY,KAAK,EAAE,CAAA;AAAA,MACrB;AAAA,IACF;AAEA,IAAA,KAAA,MAAW,MAAM,WAAA,EAAa;AAC5B,MAAA,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,MAAA,CAAO,EAAE,CAAA;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,WAAA,EAAsC;AACxD,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,OAAA,IAAW,IAAA,CAAK,EAAA,CAAG,iBAAA,CAAkB,QAAO,EAAG;AACxD,MAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,QAAA,KAAA,EAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAMQ,eAAe,MAAA,EAAoD;AACzE,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,QAAA,EAAU,OAAO,QAAA,GAAW,EAAE,GAAG,MAAA,CAAO,QAAA,KAAa,MAAA,CAAO;AAAA,KAC9D;AAAA,EACF;AAAA,EAEQ,gBAAgB,OAAA,EAA6C;AACnE,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,KAAA,EAAO,OAAA,CAAQ,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,KAAK,CAAC,CAAA,GAAI,OAAA,CAAQ,KAAA;AAAA,MAC3E,MAAA,EAAQ,OAAA,CAAQ,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,MAAM,CAAC,CAAA,GAAI,OAAA,CAAQ,MAAA;AAAA,MAC9E,SAAA,EAAW,OAAA,CAAQ,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,SAAS,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAA;AAAA,MACvF,UAAA,EAAY,QAAQ,UAAA,GAAa,EAAE,GAAG,OAAA,CAAQ,UAAA,KAAe,OAAA,CAAQ,UAAA;AAAA,MACrE,aAAA,EAAe,QAAQ,aAAA,GAAgB,CAAC,GAAG,OAAA,CAAQ,aAAa,IAAI,OAAA,CAAQ;AAAA,KAC9E;AAAA,EACF;AAAA,EAEQ,WAAA,CACN,OAAA,EACA,KAAA,EACA,SAAA,EACwB;AACxB,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC5B,MAAA,MAAM,MAAA,GAAS,CAAA,CAAE,KAAK,CAAA,CAAE,OAAA,EAAQ;AAChC,MAAA,MAAM,MAAA,GAAS,CAAA,CAAE,KAAK,CAAA,CAAE,OAAA,EAAQ;AAEhC,MAAA,OAAO,SAAA,KAAc,KAAA,GAAQ,MAAA,GAAS,MAAA,GAAS,MAAA,GAAS,MAAA;AAAA,IAC1D,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,YAAA,CACN,QAAA,EACA,KAAA,EACA,SAAA,EACoB;AACpB,IAAA,OAAO,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC7B,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI,IAAA;AAEJ,MAAA,IAAI,UAAU,WAAA,EAAa;AACzB,QAAA,IAAA,GAAO,CAAA,CAAE,UAAU,OAAA,EAAQ;AAC3B,QAAA,IAAA,GAAO,CAAA,CAAE,UAAU,OAAA,EAAQ;AAAA,MAC7B,CAAA,MAAO;AAEL,QAAA,IAAA,GAAO,CAAA,CAAE,aAAA;AACT,QAAA,IAAA,GAAO,CAAA,CAAE,aAAA;AAAA,MACX;AAEA,MAAA,OAAO,SAAA,KAAc,KAAA,GAAQ,IAAA,GAAO,IAAA,GAAO,IAAA,GAAO,IAAA;AAAA,IACpD,CAAC,CAAA;AAAA,EACH;AACF;;;ACzUO,IAAM,2BAAA,GAAN,cAA0C,iBAAA,CAAkB;AAAA,EACzD,OAAA;AAAA,EAER,WAAA,CAAY,EAAE,EAAA,EAAG,EAAyB;AACxC,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,OAAA,GAAU,IAAIE,4CAAA,CAA2B;AAAA,MAC5C,EAAA;AAAA,MACA,YAAA,EAAc,kBAAA;AAAA,MACd,aAAA,EAAe,aAAA;AAAA,MACf,IAAA,EAAM,6BAAA;AAAA,MACN,uBAAuB,CAAC,IAAA,EAAM,eAAe,eAAA,EAAiB,eAAA,EAAiB,iBAAiB,WAAW;AAAA,KAC5G,CAAA;AAAA,EACH;AAAA,EAEA,MAAe,IAAA,GAAsB;AACnC,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,IAAA,EAAK;AAAA,EAC7B;AAAA,EAEA,MAAM,mBAAA,GAAqC;AACzC,IAAA,MAAM,IAAA,CAAK,QAAQ,mBAAA,EAAoB;AAAA,EACzC;AAAA,EAEA,MAAM,QAAQ,EAAA,EAAkD;AAC9D,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,EAAE,CAAA;AAAA,EAChC;AAAA,EAEA,MAAM,OAAO,KAAA,EAAkF;AAC7F,IAAA,MAAM,EAAE,WAAU,GAAI,KAAA;AACtB,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,IAAA,MAAM,MAAA,GAA+B;AAAA,MACnC,IAAI,SAAA,CAAU,EAAA;AAAA,MACd,MAAA,EAAQ,OAAA;AAAA,MACR,eAAA,EAAiB,MAAA;AAAA,MACjB,UAAU,SAAA,CAAU,QAAA;AAAA,MACpB,UAAU,SAAA,CAAU,QAAA;AAAA,MACpB,SAAA,EAAW,GAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACb;AAEA,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,SAAA,CAAU,IAAI,MAAM,CAAA;AAEpD,IAAA,MAAM,EAAE,IAAI,GAAA,EAAK,QAAA,EAAU,WAAW,QAAA,EAAU,SAAA,EAAW,GAAG,cAAA,EAAe,GAAI,SAAA;AACjF,IAAA,MAAM,SAAA,GAAY,OAAO,UAAA,EAAW;AACpC,IAAA,MAAM,KAAK,aAAA,CAAc;AAAA,MACvB,EAAA,EAAI,SAAA;AAAA,MACJ,aAAa,SAAA,CAAU,EAAA;AAAA,MACvB,aAAA,EAAe,CAAA;AAAA,MACf,GAAG,cAAA;AAAA,MACH,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA;AAAA,MACzC,aAAA,EAAe;AAAA,KACe,CAAA;AAEhC,IAAA,OAAO,gBAAgB,MAAM,CAAA;AAAA,EAC/B;AAAA,EAEA,MAAM,OAAO,KAAA,EAAmE;AAC9E,IAAA,MAAM,EAAE,EAAA,EAAI,GAAG,OAAA,EAAQ,GAAI,KAAA;AAC3B,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,EAAA,EAAI,OAAO,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,EAAE,CAAA;AAAA,EACpC;AAAA,EAEA,MAAM,KAAK,IAAA,EAAyE;AAClF,IAAA,MAAM,EAAE,MAAM,OAAA,EAAS,OAAA,EAAS,UAAU,QAAA,EAAU,MAAA,EAAO,GAAI,IAAA,IAAQ,EAAC;AACxE,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa;AAAA,MAC7C,IAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA,EAAS,YAAA;AAAA,MACT,OAAA,EAAS,EAAE,QAAA,EAAU,QAAA,EAAU,MAAA;AAAO,KACvC,CAAA;AACD,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,KAAA,EAA+D;AACjF,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAyB,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,WAAW,EAAA,EAA8C;AAC7D,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,UAAA,CAAW,EAAE,CAAA;AAAA,EACnC;AAAA,EAEA,MAAM,kBAAA,CAAmB,WAAA,EAAqB,aAAA,EAAyD;AACrG,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,kBAAA,CAAmB,WAAA,EAAa,aAAa,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,iBAAiB,WAAA,EAAuD;AAC5E,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,gBAAA,CAAiB,WAAW,CAAA;AAAA,EAClD;AAAA,EAEA,MAAM,aAAa,KAAA,EAAyE;AAC1F,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,OAAO,aAAa,CAAA;AACnE,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,EAAA,EAA2B;AAC7C,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,EAAE,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,yBAAyB,QAAA,EAAiC;AAC9D,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,wBAAA,CAAyB,QAAQ,CAAA;AAAA,EACtD;AAAA,EAEA,MAAM,cAAc,WAAA,EAAsC;AACxD,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,WAAW,CAAA;AAAA,EAC/C;AACF","file":"chunk-N6ERFPTM.cjs","sourcesContent":["import type {\n  StorageMCPServerType,\n  StorageMCPServerSnapshotType,\n  StorageResolvedMCPServerType,\n  StorageCreateMCPServerInput,\n  StorageUpdateMCPServerInput,\n  StorageListMCPServersInput,\n  StorageListMCPServersOutput,\n  StorageListMCPServersResolvedOutput,\n} from '../../types';\nimport { VersionedStorageDomain } from '../versioned';\nimport type { VersionBase, CreateVersionInputBase, ListVersionsInputBase, ListVersionsOutputBase } from '../versioned';\n\n// ============================================================================\n// MCP Server Version Types\n// ============================================================================\n\n/**\n * Represents a stored version of an MCP server's content.\n * Server fields are top-level on the version row (no nested snapshot object).\n */\nexport interface MCPServerVersion extends StorageMCPServerSnapshotType, VersionBase {\n  /** ID of the MCP server this version belongs to */\n  mcpServerId: string;\n}\n\n/**\n * Input for creating a new MCP server version.\n * Server fields are top-level (no nested snapshot object).\n */\nexport interface CreateMCPServerVersionInput extends StorageMCPServerSnapshotType, CreateVersionInputBase {\n  /** ID of the MCP server this version belongs to */\n  mcpServerId: string;\n}\n\n/**\n * Sort direction for version listings.\n */\nexport type MCPServerVersionSortDirection = 'ASC' | 'DESC';\n\n/**\n * Fields that can be used for ordering version listings.\n */\nexport type MCPServerVersionOrderBy = 'versionNumber' | 'createdAt';\n\n/**\n * Input for listing MCP server versions with pagination and sorting.\n */\nexport interface ListMCPServerVersionsInput extends ListVersionsInputBase {\n  /** ID of the MCP server to list versions for */\n  mcpServerId: string;\n}\n\n/**\n * Output for listing MCP server versions with pagination info.\n */\nexport interface ListMCPServerVersionsOutput extends ListVersionsOutputBase<MCPServerVersion> {}\n\n// ============================================================================\n// MCPServersStorage Base Class\n// ============================================================================\n\nexport abstract class MCPServersStorage extends VersionedStorageDomain<\n  StorageMCPServerType,\n  StorageMCPServerSnapshotType,\n  StorageResolvedMCPServerType,\n  MCPServerVersion,\n  CreateMCPServerVersionInput,\n  ListMCPServerVersionsInput,\n  ListMCPServerVersionsOutput,\n  { mcpServer: StorageCreateMCPServerInput },\n  StorageUpdateMCPServerInput,\n  StorageListMCPServersInput | undefined,\n  StorageListMCPServersOutput,\n  StorageListMCPServersResolvedOutput\n> {\n  protected readonly listKey = 'mcpServers';\n  protected readonly versionMetadataFields = [\n    'id',\n    'mcpServerId',\n    'versionNumber',\n    'changedFields',\n    'changeMessage',\n    'createdAt',\n  ] satisfies (keyof MCPServerVersion)[];\n\n  constructor() {\n    super({\n      component: 'STORAGE',\n      name: 'MCP_SERVERS',\n    });\n  }\n}\n","import { deepEqual } from '../../../utils';\nimport { normalizePerPage, calculatePagination } from '../../base';\nimport type {\n  StorageMCPServerType,\n  StorageCreateMCPServerInput,\n  StorageUpdateMCPServerInput,\n  StorageListMCPServersInput,\n  StorageListMCPServersOutput,\n  ThreadOrderBy,\n  ThreadSortDirection,\n} from '../../types';\nimport type { InMemoryDB } from '../inmemory-db';\nimport type {\n  MCPServerVersion,\n  CreateMCPServerVersionInput,\n  ListMCPServerVersionsInput,\n  ListMCPServerVersionsOutput,\n  MCPServerVersionOrderBy,\n  MCPServerVersionSortDirection,\n} from './base';\nimport { MCPServersStorage } from './base';\n\nexport class InMemoryMCPServersStorage extends MCPServersStorage {\n  private db: InMemoryDB;\n\n  constructor({ db }: { db: InMemoryDB }) {\n    super();\n    this.db = db;\n  }\n\n  async dangerouslyClearAll(): Promise<void> {\n    this.db.mcpServers.clear();\n    this.db.mcpServerVersions.clear();\n  }\n\n  // ==========================================================================\n  // MCP Server CRUD Methods\n  // ==========================================================================\n\n  async getById(id: string): Promise<StorageMCPServerType | null> {\n    const config = this.db.mcpServers.get(id);\n    return config ? this.deepCopyConfig(config) : null;\n  }\n\n  async create(input: { mcpServer: StorageCreateMCPServerInput }): Promise<StorageMCPServerType> {\n    const { mcpServer } = input;\n\n    if (this.db.mcpServers.has(mcpServer.id)) {\n      throw new Error(`MCP server with id ${mcpServer.id} already exists`);\n    }\n\n    const now = new Date();\n    const newConfig: StorageMCPServerType = {\n      id: mcpServer.id,\n      status: 'draft',\n      activeVersionId: undefined,\n      authorId: mcpServer.authorId,\n      metadata: mcpServer.metadata,\n      createdAt: now,\n      updatedAt: now,\n    };\n\n    this.db.mcpServers.set(mcpServer.id, newConfig);\n\n    // Extract config fields from the flat input (everything except record fields)\n    const { id: _id, authorId: _authorId, metadata: _metadata, ...snapshotConfig } = mcpServer;\n\n    // Create version 1 from the config\n    const versionId = crypto.randomUUID();\n    await this.createVersion({\n      id: versionId,\n      mcpServerId: mcpServer.id,\n      versionNumber: 1,\n      ...snapshotConfig,\n      changedFields: Object.keys(snapshotConfig),\n      changeMessage: 'Initial version',\n    });\n\n    // Return the thin record\n    return this.deepCopyConfig(newConfig);\n  }\n\n  async update(input: StorageUpdateMCPServerInput): Promise<StorageMCPServerType> {\n    const { id, ...updates } = input;\n\n    const existingConfig = this.db.mcpServers.get(id);\n    if (!existingConfig) {\n      throw new Error(`MCP server with id ${id} not found`);\n    }\n\n    // Separate metadata fields from config fields\n    const { authorId, activeVersionId, metadata, status } = updates;\n\n    // Update metadata fields on the record\n    const updatedConfig: StorageMCPServerType = {\n      ...existingConfig,\n      ...(authorId !== undefined && { authorId }),\n      ...(activeVersionId !== undefined && { activeVersionId }),\n      ...(status !== undefined && { status: status as StorageMCPServerType['status'] }),\n      ...(metadata !== undefined && {\n        metadata: { ...existingConfig.metadata, ...metadata },\n      }),\n      updatedAt: new Date(),\n    };\n\n    // Save the updated record\n    this.db.mcpServers.set(id, updatedConfig);\n    return this.deepCopyConfig(updatedConfig);\n  }\n\n  async delete(id: string): Promise<void> {\n    // Idempotent delete\n    this.db.mcpServers.delete(id);\n    // Also delete all versions for this server\n    await this.deleteVersionsByParentId(id);\n  }\n\n  async list(args?: StorageListMCPServersInput): Promise<StorageListMCPServersOutput> {\n    const { page = 0, perPage: perPageInput, orderBy, authorId, metadata, status = 'published' } = args || {};\n    const { field, direction } = this.parseOrderBy(orderBy);\n\n    // Normalize perPage for query (false → MAX_SAFE_INTEGER, 0 → 0, undefined → 100)\n    const perPage = normalizePerPage(perPageInput, 100);\n\n    if (page < 0) {\n      throw new Error('page must be >= 0');\n    }\n\n    // Prevent unreasonably large page values\n    const maxOffset = Number.MAX_SAFE_INTEGER / 2;\n    if (page * perPage > maxOffset) {\n      throw new Error('page value too large');\n    }\n\n    // Get all MCP servers and apply filters\n    let configs = Array.from(this.db.mcpServers.values());\n\n    // Filter by status\n    if (status) {\n      configs = configs.filter(config => config.status === status);\n    }\n\n    // Filter by authorId if provided\n    if (authorId !== undefined) {\n      configs = configs.filter(config => config.authorId === authorId);\n    }\n\n    // Filter by metadata if provided (AND logic)\n    if (metadata && Object.keys(metadata).length > 0) {\n      configs = configs.filter(config => {\n        if (!config.metadata) return false;\n        return Object.entries(metadata).every(([key, value]) => deepEqual(config.metadata![key], value));\n      });\n    }\n\n    // Sort filtered configs\n    const sortedConfigs = this.sortConfigs(configs, field, direction);\n\n    // Deep clone to avoid mutation\n    const clonedConfigs = sortedConfigs.map(config => this.deepCopyConfig(config));\n\n    const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);\n\n    return {\n      mcpServers: clonedConfigs.slice(offset, offset + perPage),\n      total: clonedConfigs.length,\n      page,\n      perPage: perPageForResponse,\n      hasMore: offset + perPage < clonedConfigs.length,\n    };\n  }\n\n  // ==========================================================================\n  // MCP Server Version Methods\n  // ==========================================================================\n\n  async createVersion(input: CreateMCPServerVersionInput): Promise<MCPServerVersion> {\n    // Check if version with this ID already exists\n    if (this.db.mcpServerVersions.has(input.id)) {\n      throw new Error(`Version with id ${input.id} already exists`);\n    }\n\n    // Check for duplicate (mcpServerId, versionNumber) pair\n    for (const version of this.db.mcpServerVersions.values()) {\n      if (version.mcpServerId === input.mcpServerId && version.versionNumber === input.versionNumber) {\n        throw new Error(`Version number ${input.versionNumber} already exists for MCP server ${input.mcpServerId}`);\n      }\n    }\n\n    const version: MCPServerVersion = {\n      ...input,\n      createdAt: new Date(),\n    };\n\n    // Deep clone before storing\n    this.db.mcpServerVersions.set(input.id, this.deepCopyVersion(version));\n    return this.deepCopyVersion(version);\n  }\n\n  async getVersion(id: string): Promise<MCPServerVersion | null> {\n    const version = this.db.mcpServerVersions.get(id);\n    return version ? this.deepCopyVersion(version) : null;\n  }\n\n  async getVersionByNumber(mcpServerId: string, versionNumber: number): Promise<MCPServerVersion | null> {\n    for (const version of this.db.mcpServerVersions.values()) {\n      if (version.mcpServerId === mcpServerId && version.versionNumber === versionNumber) {\n        return this.deepCopyVersion(version);\n      }\n    }\n    return null;\n  }\n\n  async getLatestVersion(mcpServerId: string): Promise<MCPServerVersion | null> {\n    let latest: MCPServerVersion | null = null;\n    for (const version of this.db.mcpServerVersions.values()) {\n      if (version.mcpServerId === mcpServerId) {\n        if (!latest || version.versionNumber > latest.versionNumber) {\n          latest = version;\n        }\n      }\n    }\n    return latest ? this.deepCopyVersion(latest) : null;\n  }\n\n  async listVersions(input: ListMCPServerVersionsInput): Promise<ListMCPServerVersionsOutput> {\n    const { mcpServerId, page = 0, perPage: perPageInput, orderBy } = input;\n    const { field, direction } = this.parseVersionOrderBy(orderBy);\n\n    // Normalize perPage (false -> MAX_SAFE_INTEGER, 0 -> 0, undefined -> 20)\n    const perPage = normalizePerPage(perPageInput, 20);\n\n    if (page < 0) {\n      throw new Error('page must be >= 0');\n    }\n\n    const maxOffset = Number.MAX_SAFE_INTEGER / 2;\n    if (page * perPage > maxOffset) {\n      throw new Error('page value too large');\n    }\n\n    // Filter versions by mcpServerId\n    let versions = Array.from(this.db.mcpServerVersions.values()).filter(v => v.mcpServerId === mcpServerId);\n\n    // Sort versions\n    versions = this.sortVersions(versions, field, direction);\n\n    // Deep clone\n    const clonedVersions = versions.map(v => this.deepCopyVersion(v));\n\n    const total = clonedVersions.length;\n    const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);\n    const paginatedVersions = clonedVersions.slice(offset, offset + perPage);\n\n    return {\n      versions: paginatedVersions,\n      total,\n      page,\n      perPage: perPageForResponse,\n      hasMore: offset + perPage < total,\n    };\n  }\n\n  async deleteVersion(id: string): Promise<void> {\n    this.db.mcpServerVersions.delete(id);\n  }\n\n  async deleteVersionsByParentId(entityId: string): Promise<void> {\n    const idsToDelete: string[] = [];\n    for (const [id, version] of this.db.mcpServerVersions.entries()) {\n      if (version.mcpServerId === entityId) {\n        idsToDelete.push(id);\n      }\n    }\n\n    for (const id of idsToDelete) {\n      this.db.mcpServerVersions.delete(id);\n    }\n  }\n\n  async countVersions(mcpServerId: string): Promise<number> {\n    let count = 0;\n    for (const version of this.db.mcpServerVersions.values()) {\n      if (version.mcpServerId === mcpServerId) {\n        count++;\n      }\n    }\n    return count;\n  }\n\n  // ==========================================================================\n  // Private Helper Methods\n  // ==========================================================================\n\n  private deepCopyConfig(config: StorageMCPServerType): StorageMCPServerType {\n    return {\n      ...config,\n      metadata: config.metadata ? { ...config.metadata } : config.metadata,\n    };\n  }\n\n  private deepCopyVersion(version: MCPServerVersion): MCPServerVersion {\n    return {\n      ...version,\n      tools: version.tools ? JSON.parse(JSON.stringify(version.tools)) : version.tools,\n      agents: version.agents ? JSON.parse(JSON.stringify(version.agents)) : version.agents,\n      workflows: version.workflows ? JSON.parse(JSON.stringify(version.workflows)) : version.workflows,\n      repository: version.repository ? { ...version.repository } : version.repository,\n      changedFields: version.changedFields ? [...version.changedFields] : version.changedFields,\n    };\n  }\n\n  private sortConfigs(\n    configs: StorageMCPServerType[],\n    field: ThreadOrderBy,\n    direction: ThreadSortDirection,\n  ): StorageMCPServerType[] {\n    return configs.sort((a, b) => {\n      const aValue = a[field].getTime();\n      const bValue = b[field].getTime();\n\n      return direction === 'ASC' ? aValue - bValue : bValue - aValue;\n    });\n  }\n\n  private sortVersions(\n    versions: MCPServerVersion[],\n    field: MCPServerVersionOrderBy,\n    direction: MCPServerVersionSortDirection,\n  ): MCPServerVersion[] {\n    return versions.sort((a, b) => {\n      let aVal: number;\n      let bVal: number;\n\n      if (field === 'createdAt') {\n        aVal = a.createdAt.getTime();\n        bVal = b.createdAt.getTime();\n      } else {\n        // versionNumber\n        aVal = a.versionNumber;\n        bVal = b.versionNumber;\n      }\n\n      return direction === 'ASC' ? aVal - bVal : bVal - aVal;\n    });\n  }\n}\n","import type { FilesystemDB } from '../../filesystem-db';\nimport { FilesystemVersionedHelpers } from '../../filesystem-versioned';\nimport type {\n  StorageMCPServerType,\n  StorageCreateMCPServerInput,\n  StorageUpdateMCPServerInput,\n  StorageListMCPServersInput,\n  StorageListMCPServersOutput,\n} from '../../types';\nimport type {\n  MCPServerVersion,\n  CreateMCPServerVersionInput,\n  ListMCPServerVersionsInput,\n  ListMCPServerVersionsOutput,\n} from './base';\nimport { MCPServersStorage } from './base';\n\nexport class FilesystemMCPServersStorage extends MCPServersStorage {\n  private helpers: FilesystemVersionedHelpers<StorageMCPServerType, MCPServerVersion>;\n\n  constructor({ db }: { db: FilesystemDB }) {\n    super();\n    this.helpers = new FilesystemVersionedHelpers({\n      db,\n      entitiesFile: 'mcp-servers.json',\n      parentIdField: 'mcpServerId',\n      name: 'FilesystemMCPServersStorage',\n      versionMetadataFields: ['id', 'mcpServerId', 'versionNumber', 'changedFields', 'changeMessage', 'createdAt'],\n    });\n  }\n\n  override async init(): Promise<void> {\n    await this.helpers.db.init();\n  }\n\n  async dangerouslyClearAll(): Promise<void> {\n    await this.helpers.dangerouslyClearAll();\n  }\n\n  async getById(id: string): Promise<StorageMCPServerType | null> {\n    return this.helpers.getById(id);\n  }\n\n  async create(input: { mcpServer: StorageCreateMCPServerInput }): Promise<StorageMCPServerType> {\n    const { mcpServer } = input;\n    const now = new Date();\n    const entity: StorageMCPServerType = {\n      id: mcpServer.id,\n      status: 'draft',\n      activeVersionId: undefined,\n      authorId: mcpServer.authorId,\n      metadata: mcpServer.metadata,\n      createdAt: now,\n      updatedAt: now,\n    };\n\n    await this.helpers.createEntity(mcpServer.id, entity);\n\n    const { id: _id, authorId: _authorId, metadata: _metadata, ...snapshotConfig } = mcpServer;\n    const versionId = crypto.randomUUID();\n    await this.createVersion({\n      id: versionId,\n      mcpServerId: mcpServer.id,\n      versionNumber: 1,\n      ...snapshotConfig,\n      changedFields: Object.keys(snapshotConfig),\n      changeMessage: 'Initial version',\n    } as CreateMCPServerVersionInput);\n\n    return structuredClone(entity);\n  }\n\n  async update(input: StorageUpdateMCPServerInput): Promise<StorageMCPServerType> {\n    const { id, ...updates } = input;\n    return this.helpers.updateEntity(id, updates);\n  }\n\n  async delete(id: string): Promise<void> {\n    await this.helpers.deleteEntity(id);\n  }\n\n  async list(args?: StorageListMCPServersInput): Promise<StorageListMCPServersOutput> {\n    const { page, perPage, orderBy, authorId, metadata, status } = args || {};\n    const result = await this.helpers.listEntities({\n      page,\n      perPage,\n      orderBy,\n      listKey: 'mcpServers',\n      filters: { authorId, metadata, status },\n    });\n    return result as unknown as StorageListMCPServersOutput;\n  }\n\n  async createVersion(input: CreateMCPServerVersionInput): Promise<MCPServerVersion> {\n    return this.helpers.createVersion(input as MCPServerVersion);\n  }\n\n  async getVersion(id: string): Promise<MCPServerVersion | null> {\n    return this.helpers.getVersion(id);\n  }\n\n  async getVersionByNumber(mcpServerId: string, versionNumber: number): Promise<MCPServerVersion | null> {\n    return this.helpers.getVersionByNumber(mcpServerId, versionNumber);\n  }\n\n  async getLatestVersion(mcpServerId: string): Promise<MCPServerVersion | null> {\n    return this.helpers.getLatestVersion(mcpServerId);\n  }\n\n  async listVersions(input: ListMCPServerVersionsInput): Promise<ListMCPServerVersionsOutput> {\n    const result = await this.helpers.listVersions(input, 'mcpServerId');\n    return result as ListMCPServerVersionsOutput;\n  }\n\n  async deleteVersion(id: string): Promise<void> {\n    await this.helpers.deleteVersion(id);\n  }\n\n  async deleteVersionsByParentId(entityId: string): Promise<void> {\n    await this.helpers.deleteVersionsByParentId(entityId);\n  }\n\n  async countVersions(mcpServerId: string): Promise<number> {\n    return this.helpers.countVersions(mcpServerId);\n  }\n}\n"]}