@cyanmycelium/mcp-broker 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp-broker.example/README.md +23 -0
- package/.mcp-broker.example/config.json +11 -0
- package/README.md +1 -16
- package/dist/bin.js +30 -3
- package/dist/bin.js.map +1 -1
- package/dist/broker/aggregate/aggregate.catalog.d.ts +54 -0
- package/dist/broker/aggregate/aggregate.catalog.js +105 -0
- package/dist/broker/aggregate/aggregate.catalog.js.map +1 -0
- package/dist/broker/aggregate/aggregate.server.d.ts +47 -0
- package/dist/broker/aggregate/aggregate.server.js +151 -0
- package/dist/broker/aggregate/aggregate.server.js.map +1 -0
- package/dist/broker/aggregate/provider.client.session.d.ts +52 -0
- package/dist/broker/aggregate/provider.client.session.js +140 -0
- package/dist/broker/aggregate/provider.client.session.js.map +1 -0
- package/dist/broker/broker.server.js +12 -1
- package/dist/broker/broker.server.js.map +1 -1
- package/dist/config.d.ts +35 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcpb.loader.d.ts +24 -0
- package/dist/mcpb.loader.js +161 -0
- package/dist/mcpb.loader.js.map +1 -0
- package/dist/mcpb.unzip.d.ts +6 -0
- package/dist/mcpb.unzip.js +95 -0
- package/dist/mcpb.unzip.js.map +1 -0
- package/dist/remote.transports.d.ts +16 -0
- package/dist/remote.transports.js +297 -0
- package/dist/remote.transports.js.map +1 -0
- package/dist/remote.upstream.d.ts +36 -0
- package/dist/remote.upstream.js +52 -0
- package/dist/remote.upstream.js.map +1 -0
- package/dist/stdio.upstream.d.ts +4 -1
- package/dist/stdio.upstream.js.map +1 -1
- package/dist/upstream.d.ts +33 -0
- package/dist/upstream.js +2 -0
- package/dist/upstream.js.map +1 -0
- package/dist/ws.tunnel.builder.d.ts +14 -8
- package/dist/ws.tunnel.builder.js +17 -9
- package/dist/ws.tunnel.builder.js.map +1 -1
- package/dist/ws.tunnel.d.ts +67 -2
- package/dist/ws.tunnel.js +200 -79
- package/dist/ws.tunnel.js.map +1 -1
- package/package.json +3 -2
- package/scripts/pack-mcpb.mjs +84 -0
- package/scripts/sign-bundle.mjs +61 -0
- package/src/bin.ts +32 -3
- package/src/broker/aggregate/aggregate.catalog.ts +145 -0
- package/src/broker/aggregate/aggregate.server.ts +178 -0
- package/src/broker/aggregate/provider.client.session.ts +172 -0
- package/src/broker/broker.server.ts +12 -1
- package/src/config.ts +37 -0
- package/src/index.ts +8 -0
- package/src/mcpb.loader.ts +186 -0
- package/src/mcpb.unzip.ts +103 -0
- package/src/remote.transports.ts +316 -0
- package/src/remote.upstream.ts +75 -0
- package/src/stdio.upstream.ts +4 -1
- package/src/upstream.ts +33 -0
- package/src/ws.tunnel.builder.ts +19 -9
- package/src/ws.tunnel.ts +239 -74
package/dist/ws.tunnel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.tunnel.js","sourceRoot":"","sources":["../src/ws.tunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAErD,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,8DAA8D;AAC9D,MAAM,IAAI,GAAqC;IAC3C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,uCAAuC;IAC9C,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACvB,CAAC;AAkNF,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,QAAQ;IACA,QAAQ,CAAkB;IACnC,WAAW,GAAsC,IAAI,CAAC;IACtD,IAAI,GAA2B,IAAI,CAAC;IAE5C;;;;OAIG;IACc,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE/D,0EAA0E;IACzD,iBAAiB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEvE,wDAAwD;IACvC,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEpE;;;;OAIG;IACc,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE3E,+FAA+F;IACvF,aAAa,GAAsB,IAAI,CAAC;IAEhD,0FAA0F;IAClF,oBAAoB,GAAkB,IAAI,CAAC;IAEnD,iEAAiE;IACzD,kBAAkB,GAAG,EAAE,CAAC;IAEhC,yDAAyD;IACjD,UAAU,GAAgB,IAAI,CAAC;IAEvC,YAAY,OAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,+BAA+B;IAC/B,4EAA4E;IAE5E,IAAI,OAAO;QACP,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,YAAY,CAAC;IACpD,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,OAAO;YACH,QAAQ,EAAE,CAAC,CAAC,YAAY,IAAI,WAAW;YACvC,SAAS,EAAE,CAAC,CAAC,aAAa,IAAI,YAAY;YAC1C,MAAM,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG;YAC3B,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM;YACxB,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM;YACxB,QAAQ,EAAE,CAAC,CAAC,YAAY,IAAI,WAAW;SAC1C,CAAC;IACN,CAAC;IAEM,gBAAgB;QACnB,MAAM,GAAG,GAAyB,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,eAAe,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAEO,kBAAkB,CAAC,IAAY,EAAE,KAAoB;QACzD,IAAI,SAAkC,CAAC;QACvC,IAAI,SAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5C,SAAS,GAAG,UAAU,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChD,SAAS,GAAG,OAAO,CAAC;YACpB,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACjD,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;YACzE,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,MAAM,CAAC;YACnB,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO;YACH,IAAI;YACJ,SAAS;YACT,SAAS;YACT,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;YACjC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI;YAChE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;SACnC,CAAC;IACN,CAAC;IAED,4EAA4E;IAC5E,yDAAyD;IACzD,4EAA4E;IAE5E;;;;;;OAMG;IACI,wBAAwB,CAAC,IAAY,EAAE,SAA4B;QACtE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,0BAA0B,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,wDAAwD,CAAC,CAAC;QAC/G,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE7C,SAAS,CAAC,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7E,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,6EAA6E;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE;aACtE,CAAC,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrD,IAAI,MAAM;wBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,CAAC;IACN,CAAC;IAED,4EAA4E;IAC5E,eAAe;IACf,4EAA4E;IAE5E,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,IAAI,KAAK,CAAC;IAChD,CAAC;IAED,kEAAkE;IAClE,IAAI,WAAW;QACX,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,uEAAuE;IACvE,IAAI,aAAa;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1H,CAAC;IAED,4DAA4D;IAC5D,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9J,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,GAAoB,EAAE,EAAE;gBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;gBAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,WAAW,CAAC;gBAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,YAAY,CAAC;gBAElE,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC/D,yEAAyE;oBACzE,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACpE,mDAAmD;oBACnD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC9D,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;oBAClE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACJ,qDAAqD;oBACrD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC3C,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,GAAG,EAAE;gBAC9E,6CAA6C;gBAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;oBACnD,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;oBACxC,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE;wBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzC,CAAC,CAAC;oBACF,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;wBACvB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7C,CAAC,CAAC;oBACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACvB,CAAC;gBAED,+CAA+C;gBAC/C,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;oBACnE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;wBACvC,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC;wBACjC,IAAI,EAAU,CAAC;wBACf,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;4BACzD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;4BACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAChE,IAAI,IAAI,EAAE,CAAC;gCACP,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,oBAAqB,CAAC,CAAC;gCACzE,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;4BAC5C,CAAC;wBACL,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACzB,0EAA0E;oBAC9E,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;gBAE7B,iEAAiE;gBACjE,kDAAkD;gBAClD,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CACpC,GAAG,EAAE,CAAC,OAAO,EAAE,EACf,CAAC,GAAY,EAAE,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;oBACvE,6DAA6D;oBAC7D,OAAO,EAAE,CAAC;gBACd,CAAC,CACJ,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,uBAAuB;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,KAAK,KAAK;YAAE,OAAO;QACzD,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;YAC9D,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB;YAClD,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB;YACxD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB;YAC9C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB;SACzD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACN,uEAAuE;QACvE,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC;gBACD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACL,wCAAwC;YAC5C,CAAC;QACL,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;oBAAE,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE;oBAAE,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC3D,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC7B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,SAAS;oBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrD,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACxB,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC1E,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAEpE,WAAW,CAAC,GAAoB,EAAE,GAAmB;QACzD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO;QACP,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAC;QAC5E,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,IAAI,sCAAsC,CAAC,CAAC;QACvI,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,CAAC;QAEjE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,oBAAoB,CAAC;QAChF,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEtF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBACjD,OAAO;gBACX,CAAC;gBACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBAC5C,OAAO;gBACX,CAAC;YACL,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;gBAC/C,OAAO;YACX,CAAC;YACD,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;gBAC/C,OAAO;YACX,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,MAAc;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;IAED,4EAA4E;IAC5E,qCAAqC;IACrC,4EAA4E;IAE5E;;;OAGG;IACK,iBAAiB,CAAC,GAAoB,EAAE,GAAmB,EAAE,YAAoB;QACrF,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC;QAE7E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACf,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;SAC3B,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,0BAA0B,WAAW,cAAc,SAAS,MAAM,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEtC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACjB,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;oBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,GAAoB,EAAE,GAAmB,EAAE,YAAoB;QACrF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC;QACvE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACtC,OAAO;QACX,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC7B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;gBACzD,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI;oBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACL,gCAAgC;YACpC,CAAC;YAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAChD,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,KAAK,GAA2B,IAAI,CAAC;oBACzC,IAAI,CAAC;wBACD,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAA8B,CAAC,EAAE,IAAI,IAAI,CAAC;oBACtE,CAAC;oBAAC,MAAM,CAAC;wBACL,KAAK;oBACT,CAAC;oBACD,IAAI,CAAC,aAAa,CACd,MAAM,EACN,IAAI,CAAC,SAAS,CAAC;wBACX,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,YAAY,iBAAiB,EAAE;qBAC/E,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,GAAoB,EAAE,GAAmB,EAAE,YAAoB;QAClF,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC7B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,IAAI,GAAG,GAA6B,EAAE,CAAC;YACvC,IAAI,CAAC;gBACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACL,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxB,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;gBAC1E,GAAG,CAAC,GAAG,CACH,IAAI,CAAC,SAAS,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI;oBAClB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,YAAY,iBAAiB,EAAE;iBAC/E,CAAC,CACL,CAAC;gBACF,OAAO;YACX,CAAC;YAED,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACjB,wEAAwE;gBACxE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,qDAAqD;gBACrD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,GAAoB,EAAE,GAAmB,EAAE,YAAoB;QACvF,MAAM,SAAS,GAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAwB,IAAI,UAAU,EAAE,CAAC;QAExF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACf,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;YACxB,gBAAgB,EAAE,SAAS;SAC9B,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEzC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACjB,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6DAA6D;IACrD,aAAa,CAAC,GAAmB,EAAE,IAAY;QACnD,yEAAyE;QACzE,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,4EAA4E;IAC5E,gCAAgC;IAChC,4EAA4E;IAEpE,kBAAkB,CAAC,EAAa,EAAE,IAAY;QAClD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACR,yCAAyC,IAAI,0EAA0E;gBACnH,2CAA2C,CAClD,CAAC;YACF,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,IAAI,kCAAkC,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,yCAAyC,IAAI,iFAAiF,CAAC,CAAC;YAC7I,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,IAAI,6BAA6B,CAAC,CAAC;YAC/D,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC9C,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,IAAI,wBAAwB,CAAC,CAAC;YAC1D,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QAEd,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEpF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;YAChB,sDAAsD;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE;aACtE,CAAC,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrD,IAAI,MAAM;wBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CAAC,EAAa,EAAE,YAAoB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEpG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;oBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACK,2BAA2B,CAAC,EAAa;QAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAE9C,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9B,IAAI,QAAkD,CAAC;YACvD,IAAI,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAA6C,CAAC;YACvF,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,CAAC,mBAAmB;YAC/B,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO;YAEpD,oDAAoD;YACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,IAAI,CACR,qDAAqD,IAAI,0EAA0E;wBAC/H,2CAA2C,CAClD,CAAC;oBACF,EAAE,CAAC,IAAI,CACH,IAAI,CAAC,SAAS,CAAC;wBACX,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE;4BACL,OAAO,EAAE,KAAK;4BACd,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,kCAAkC,EAAE;yBACxF;qBACJ,CAAC,CACL,CAAC;oBACF,OAAO;gBACX,CAAC;gBAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,EAAE,CAAC,IAAI,CACH,IAAI,CAAC,SAAS,CAAC;wBACX,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE;4BACL,OAAO,EAAE,KAAK;4BACd,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,6BAA6B,EAAE;yBACnF;qBACJ,CAAC,CACL,CAAC;oBACF,OAAO;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,QAAQ,EAAE,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC9C,oEAAoE;oBACpE,EAAE,CAAC,IAAI,CACH,IAAI,CAAC,SAAS,CAAC;wBACX,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE;4BACL,OAAO,EAAE,KAAK;4BACd,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,wBAAwB,EAAE;yBAC9E;qBACJ,CAAC,CACL,CAAC;oBACF,OAAO;gBACX,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACnD,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC3B,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;oBAChB,kDAAkD;oBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBACzB,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,IAAI;wBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE;qBACtE,CAAC,CAAC;oBACH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;4BAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC5B,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;4BAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACrD,IAAI,MAAM;gCAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAClD,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;4BAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxB,CAAC;oBACL,CAAC;oBACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;OAGG;IACK,eAAe,CAAC,KAAoB,EAAE,YAAoB,EAAE,IAAY;QAC5E,wDAAwD;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACX,CAAC;QAED,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAEhE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,+CAA+C;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC5C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAoB,EAAE,IAAY;QAC5D,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;YACzD,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI;gBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACL,mBAAmB;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAqB,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,GAA2B,IAAI,CAAC;YACzC,IAAI,CAAC;gBACD,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAA8B,CAAC,EAAE,IAAI,IAAI,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACL,KAAK;YACT,CAAC;YACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,IAAI,CAAC,SAAS,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,oBAAoB,iBAAiB,EAAE;iBAC5F,CAAC,GAAG,IAAI,CACZ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,MAAiB,EAAE,KAAoB,EAAE,YAAoB,EAAE,IAAY;QAChG,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;YACzD,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI;gBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACL,mBAAmB;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;aAC5D,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAoB,EAAE,IAAY;QACzD,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;YAEzD,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACjB,8DAA8D;gBAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrD,IAAI,MAAM;wBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,CAAC;qBAAM,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;qBAAM,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,mEAAmE;gBACnE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED,gEAAgE;IACxD,UAAU,CAAC,KAAoB,EAAE,IAAY;QACjD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,6EAA6E;QAC7E,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,KAAK,EAAE,CAAC;YACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,yBAAyB;IACzB,4EAA4E;IAE5E;;;OAGG;IACK,oBAAoB,CAAC,YAAoB,EAAE,KAAoB;QACnE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAChE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QACnE,IAAI,KAAK,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gFAAgF;IACxE,yBAAyB,CAAC,IAAY;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,KAAK,GAAG;gBACJ,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,WAAW,EAAE,IAAI,GAAG,EAAE;gBACtB,cAAc,EAAE,IAAI,GAAG,EAAE;gBACzB,SAAS,EAAE,IAAI,GAAG,EAAE;aACvB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,gBAAgB;IAChB,4EAA4E;IAEpE,mBAAmB,CAAC,GAAmB;QAC3C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;QAEtF,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrE,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,wCAAwC;YAC5C,CAAC;QACL,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;QAC1E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAEpE,YAAY,CAAC,GAAoB,EAAE,GAAmB;QAC1D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;QAEhD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;YAC3E,OAAO,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;gBAAE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACL,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;QAChF,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"ws.tunnel.js","sourceRoot":"","sources":["../src/ws.tunnel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanmycelium/mcp-broker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "WebSocket-based Model Context Protocol broker. Aggregates multiple MCP providers behind a single endpoint with stdio, SSE, and Streamable HTTP client transports.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"copy:assets": "node scripts/copy-assets.mjs",
|
|
55
55
|
"watch": "tsc -b tsconfig.build.json -w",
|
|
56
56
|
"start": "node dist/bin.js",
|
|
57
|
+
"pack:mcpb": "npm run build && node scripts/pack-mcpb.mjs",
|
|
57
58
|
"test": "vitest run",
|
|
58
59
|
"test:watch": "vitest",
|
|
59
60
|
"lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
"prepublishOnly": "npm run lint && npm run build && npm test"
|
|
65
66
|
},
|
|
66
67
|
"dependencies": {
|
|
67
|
-
"@cyanmycelium/mcp-core": "^0.2.
|
|
68
|
+
"@cyanmycelium/mcp-core": "^0.2.1",
|
|
68
69
|
"open": "^11.0.0",
|
|
69
70
|
"ws": "^8.18.0"
|
|
70
71
|
},
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs the broker into an installable MCP Bundle (`.mcpb`).
|
|
3
|
+
*
|
|
4
|
+
* Assembles a self-contained staging directory and hands it to the official
|
|
5
|
+
* `@anthropic-ai/mcpb` CLI:
|
|
6
|
+
*
|
|
7
|
+
* mcpb/build/
|
|
8
|
+
* ├── manifest.json ← mcpb/manifest.json, version synced from package.json
|
|
9
|
+
* ├── icon.png ← mcpb/icon.png
|
|
10
|
+
* ├── .mcpbignore ← mcpb/.mcpbignore
|
|
11
|
+
* ├── package.json ← generated: prod dependencies only, type=module
|
|
12
|
+
* ├── node_modules/ ← npm install --omit=dev (the host does not install)
|
|
13
|
+
* └── dist/ ← compiled broker
|
|
14
|
+
*
|
|
15
|
+
* Requires `dist/` to exist — run `npm run build` first (the `pack:mcpb`
|
|
16
|
+
* npm script chains it).
|
|
17
|
+
*
|
|
18
|
+
* Usage (from node/):
|
|
19
|
+
* node scripts/pack-mcpb.mjs
|
|
20
|
+
*/
|
|
21
|
+
import { cpSync, existsSync, mkdirSync, rmSync, readFileSync, writeFileSync, statSync } from "node:fs";
|
|
22
|
+
import { dirname, join } from "node:path";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
import { spawnSync } from "node:child_process";
|
|
25
|
+
|
|
26
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
const root = join(here, "..");
|
|
28
|
+
const mcpbDir = join(root, "mcpb");
|
|
29
|
+
const stage = join(mcpbDir, "build");
|
|
30
|
+
|
|
31
|
+
function run(command, args, cwd) {
|
|
32
|
+
const result = spawnSync(command, args, { cwd, stdio: "inherit", shell: true });
|
|
33
|
+
if (result.status !== 0) {
|
|
34
|
+
throw new Error(`\`${command} ${args.join(" ")}\` failed with exit code ${result.status}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// ── Read package metadata — single source of truth for version + deps ───────
|
|
39
|
+
const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
|
40
|
+
const { version, dependencies } = pkg;
|
|
41
|
+
|
|
42
|
+
// ── Preconditions ───────────────────────────────────────────────────────────
|
|
43
|
+
if (!existsSync(join(root, "dist", "bin.js"))) {
|
|
44
|
+
console.error("[pack-mcpb] dist/bin.js not found — run `npm run build` first.");
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
console.log(`[pack-mcpb] packing mcp-broker v${version}`);
|
|
49
|
+
|
|
50
|
+
// ── Fresh staging directory ─────────────────────────────────────────────────
|
|
51
|
+
rmSync(stage, { recursive: true, force: true });
|
|
52
|
+
mkdirSync(stage, { recursive: true });
|
|
53
|
+
|
|
54
|
+
// ── Compiled broker ─────────────────────────────────────────────────────────
|
|
55
|
+
cpSync(join(root, "dist"), join(stage, "dist"), { recursive: true });
|
|
56
|
+
console.log("[pack-mcpb] copied dist/");
|
|
57
|
+
|
|
58
|
+
// ── Production package.json — drives the bundled npm install ────────────────
|
|
59
|
+
// type=module is required so Node treats the compiled .js as ESM.
|
|
60
|
+
writeFileSync(
|
|
61
|
+
join(stage, "package.json"),
|
|
62
|
+
JSON.stringify({ name: pkg.name, version, private: true, type: "module", dependencies }, null, 4) + "\n",
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
// ── Bundle production dependencies (the host does not run npm install) ──────
|
|
66
|
+
console.log("[pack-mcpb] installing production dependencies …");
|
|
67
|
+
run("npm", ["install", "--omit=dev", "--no-audit", "--no-fund", "--no-package-lock"], stage);
|
|
68
|
+
|
|
69
|
+
// ── Manifest, version synced from package.json ──────────────────────────────
|
|
70
|
+
const manifest = JSON.parse(readFileSync(join(mcpbDir, "manifest.json"), "utf8"));
|
|
71
|
+
manifest.version = version;
|
|
72
|
+
writeFileSync(join(stage, "manifest.json"), JSON.stringify(manifest, null, 4) + "\n");
|
|
73
|
+
|
|
74
|
+
// ── Static assets ───────────────────────────────────────────────────────────
|
|
75
|
+
cpSync(join(mcpbDir, "icon.png"), join(stage, "icon.png"));
|
|
76
|
+
cpSync(join(mcpbDir, ".mcpbignore"), join(stage, ".mcpbignore"));
|
|
77
|
+
|
|
78
|
+
// ── Pack ────────────────────────────────────────────────────────────────────
|
|
79
|
+
const output = join(mcpbDir, `mcp-broker-${version}.mcpb`);
|
|
80
|
+
console.log("[pack-mcpb] running mcpb pack …");
|
|
81
|
+
run("npx", ["--yes", "@anthropic-ai/mcpb@2", "pack", stage, output]);
|
|
82
|
+
|
|
83
|
+
const sizeMb = (statSync(output).size / 1024 / 1024).toFixed(2);
|
|
84
|
+
console.log(`[pack-mcpb] done — ${output} (${sizeMb} MB)`);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signs `.mcpb` bundles for the broker's bundle loader — built-ins only.
|
|
3
|
+
*
|
|
4
|
+
* The broker verifies a **detached signature** of a `.mcpb` file against a
|
|
5
|
+
* trusted public key (see `src/mcpb.loader.ts`). This script produces that
|
|
6
|
+
* signature using `node:crypto` only — no dependency on OpenSSL or the
|
|
7
|
+
* `@anthropic-ai/mcpb` CLI.
|
|
8
|
+
*
|
|
9
|
+
* Usage (from the `node/` directory):
|
|
10
|
+
*
|
|
11
|
+
* node scripts/sign-bundle.mjs keygen [outDir]
|
|
12
|
+
* Generates an Ed25519 key pair:
|
|
13
|
+
* <outDir>/mcpb-signing.key.pem — private key (keep secret)
|
|
14
|
+
* <outDir>/mcpb-signing.pub.pem — public key (point `publicKey` at this)
|
|
15
|
+
* outDir defaults to the current directory.
|
|
16
|
+
*
|
|
17
|
+
* node scripts/sign-bundle.mjs sign <bundle.mcpb> <privateKey.pem> [signaturePath]
|
|
18
|
+
* Writes the detached signature. signaturePath defaults to
|
|
19
|
+
* `<bundle.mcpb>.sig` — the path the broker looks for by default.
|
|
20
|
+
*/
|
|
21
|
+
import { generateKeyPairSync, createPrivateKey, sign } from "node:crypto";
|
|
22
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
23
|
+
import { resolve } from "node:path";
|
|
24
|
+
|
|
25
|
+
const [command, ...rest] = process.argv.slice(2);
|
|
26
|
+
|
|
27
|
+
function fail(message) {
|
|
28
|
+
console.error(`[sign-bundle] ${message}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (command === "keygen") {
|
|
33
|
+
const outDir = resolve(process.cwd(), rest[0] ?? ".");
|
|
34
|
+
const { publicKey, privateKey } = generateKeyPairSync("ed25519");
|
|
35
|
+
const keyPath = resolve(outDir, "mcpb-signing.key.pem");
|
|
36
|
+
const pubPath = resolve(outDir, "mcpb-signing.pub.pem");
|
|
37
|
+
writeFileSync(keyPath, privateKey.export({ type: "pkcs8", format: "pem" }), "utf8");
|
|
38
|
+
writeFileSync(pubPath, publicKey.export({ type: "spki", format: "pem" }), "utf8");
|
|
39
|
+
console.log(`[sign-bundle] private key → ${keyPath}`);
|
|
40
|
+
console.log(`[sign-bundle] public key → ${pubPath}`);
|
|
41
|
+
console.log(`[sign-bundle] keep the private key secret; configure "publicKey" with the public one.`);
|
|
42
|
+
} else if (command === "sign") {
|
|
43
|
+
const [bundleArg, keyArg, sigArg] = rest;
|
|
44
|
+
if (!bundleArg || !keyArg) {
|
|
45
|
+
fail("usage: sign-bundle.mjs sign <bundle.mcpb> <privateKey.pem> [signaturePath]");
|
|
46
|
+
}
|
|
47
|
+
const bundlePath = resolve(process.cwd(), bundleArg);
|
|
48
|
+
const keyPath = resolve(process.cwd(), keyArg);
|
|
49
|
+
const sigPath = sigArg ? resolve(process.cwd(), sigArg) : `${bundlePath}.sig`;
|
|
50
|
+
|
|
51
|
+
const data = readFileSync(bundlePath);
|
|
52
|
+
const privateKey = createPrivateKey(readFileSync(keyPath, "utf8"));
|
|
53
|
+
// Ed25519/Ed448 sign without a separate hash algorithm; RSA/EC need one.
|
|
54
|
+
const keyType = privateKey.asymmetricKeyType;
|
|
55
|
+
const algorithm = keyType === "ed25519" || keyType === "ed448" ? null : "sha256";
|
|
56
|
+
const signature = sign(algorithm, data, privateKey);
|
|
57
|
+
writeFileSync(sigPath, signature);
|
|
58
|
+
console.log(`[sign-bundle] signature (${keyType}) → ${sigPath}`);
|
|
59
|
+
} else {
|
|
60
|
+
fail('unknown command — use "keygen" or "sign". See the file header for usage.');
|
|
61
|
+
}
|
package/src/bin.ts
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
*
|
|
16
16
|
* - Env-var paths (`MCP_BROKER_*_DIR`, `MCP_BROKER_TLS_*`) are resolved
|
|
17
17
|
* against `process.cwd()`.
|
|
18
|
-
* - Config-file paths (`tls.cert`, `www.mounts[*].dir`, `stdioUpstreams[*]
|
|
19
|
-
* are resolved against the **config file's directory** — so a config in
|
|
18
|
+
* - Config-file paths (`tls.cert`, `www.mounts[*].dir`, `stdioUpstreams[*]`,
|
|
19
|
+
* `mcpbBundles[*]`) are resolved against the **config file's directory** — so a config in
|
|
20
20
|
* `./.mcp-broker/config.json` referring to `"certs/cert.pem"` points at
|
|
21
21
|
* `./.mcp-broker/certs/cert.pem`. The folder is self-contained.
|
|
22
22
|
*
|
|
@@ -54,6 +54,7 @@ import * as path from "path";
|
|
|
54
54
|
import open from "open";
|
|
55
55
|
import { WsTunnelBuilder } from "./index.js";
|
|
56
56
|
import { loadBrokerConfig } from "./config.js";
|
|
57
|
+
import { loadMcpbBundle } from "./mcpb.loader.js";
|
|
57
58
|
|
|
58
59
|
// ---------------------------------------------------------------------------
|
|
59
60
|
// Configuration
|
|
@@ -168,7 +169,35 @@ async function main(): Promise<void> {
|
|
|
168
169
|
// ── Stdio upstreams ──────────────────────────────────────────────────────
|
|
169
170
|
if (config.stdioUpstreams) {
|
|
170
171
|
for (const u of config.stdioUpstreams) {
|
|
171
|
-
builder.withStdioUpstream(
|
|
172
|
+
builder.withStdioUpstream({
|
|
173
|
+
name: u.name,
|
|
174
|
+
command: u.command,
|
|
175
|
+
args: u.args,
|
|
176
|
+
env: u.env as NodeJS.ProcessEnv | undefined,
|
|
177
|
+
aggregate: u.aggregate,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// ── Remote MCP server upstreams (reached by URL) ─────────────────────────
|
|
183
|
+
// Config-discovered remote servers join the `_all` aggregate by default;
|
|
184
|
+
// an explicit `aggregate: false` opts an entry out.
|
|
185
|
+
if (config.mcpServers) {
|
|
186
|
+
for (const s of config.mcpServers) {
|
|
187
|
+
builder.withRemoteUpstream({ ...s, aggregate: s.aggregate ?? true });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ── Local `.mcpb` bundles ────────────────────────────────────────────────
|
|
192
|
+
// Each bundle is signature-verified and unpacked before it is wired in as a
|
|
193
|
+
// stdio upstream. A refused bundle is skipped (loadMcpbBundle logs why); it
|
|
194
|
+
// never spawns a process. Bundles join `_all` by default (opt-out per entry).
|
|
195
|
+
if (config.mcpbBundles) {
|
|
196
|
+
for (const b of config.mcpbBundles) {
|
|
197
|
+
const upstream = await loadMcpbBundle(b, baseDir);
|
|
198
|
+
if (upstream) {
|
|
199
|
+
builder.withStdioUpstream(upstream);
|
|
200
|
+
}
|
|
172
201
|
}
|
|
173
202
|
}
|
|
174
203
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AggregateCatalog — merges the tool and prompt catalogs of several providers
|
|
3
|
+
* into a single namespaced view, and routes aggregated names back to their
|
|
4
|
+
* origin provider.
|
|
5
|
+
*
|
|
6
|
+
* Aggregated names use the `<provider>-<original>` shape. Routing never parses
|
|
7
|
+
* that string back: a forward lookup table is the single source of truth, so
|
|
8
|
+
* the `-` separator stays safe even when provider or tool names contain dashes.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** Minimal shape of an MCP tool entry. Extra fields are preserved as-is. */
|
|
12
|
+
export interface CatalogTool {
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Minimal shape of an MCP prompt entry. Extra fields are preserved as-is. */
|
|
19
|
+
export interface CatalogPrompt {
|
|
20
|
+
name: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** One provider's raw contribution to the aggregate. */
|
|
27
|
+
export interface ProviderEntry {
|
|
28
|
+
tools: CatalogTool[];
|
|
29
|
+
prompts: CatalogPrompt[];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Where an aggregated name routes back to. */
|
|
33
|
+
export interface Route {
|
|
34
|
+
provider: string;
|
|
35
|
+
original: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Separator between the provider prefix and the original name. */
|
|
39
|
+
const SEPARATOR = "-";
|
|
40
|
+
|
|
41
|
+
/** Anthropic API tool-name limit; aggregated tool names must fit inside it. */
|
|
42
|
+
const MAX_TOOL_NAME_LENGTH = 64;
|
|
43
|
+
|
|
44
|
+
export class AggregateCatalog {
|
|
45
|
+
private readonly _providers = new Map<string, ProviderEntry>();
|
|
46
|
+
private _tools: CatalogTool[] = [];
|
|
47
|
+
private _prompts: CatalogPrompt[] = [];
|
|
48
|
+
private _toolRoutes = new Map<string, Route>();
|
|
49
|
+
private _promptRoutes = new Map<string, Route>();
|
|
50
|
+
|
|
51
|
+
/** Number of providers currently contributing to the aggregate. */
|
|
52
|
+
get providerCount(): number {
|
|
53
|
+
return this._providers.size;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** The merged, namespaced tool list. */
|
|
57
|
+
get tools(): CatalogTool[] {
|
|
58
|
+
return this._tools;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** The merged, namespaced prompt list. */
|
|
62
|
+
get prompts(): CatalogPrompt[] {
|
|
63
|
+
return this._prompts;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Adds or replaces a provider's contribution, then rebuilds the merged view. */
|
|
67
|
+
setProvider(provider: string, entry: ProviderEntry): void {
|
|
68
|
+
this._providers.set(provider, entry);
|
|
69
|
+
this._rebuild();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Drops a provider from the aggregate, then rebuilds. */
|
|
73
|
+
removeProvider(provider: string): void {
|
|
74
|
+
if (this._providers.delete(provider)) this._rebuild();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Resolves an aggregated tool name to its origin, or `undefined` if unknown. */
|
|
78
|
+
resolveTool(name: string): Route | undefined {
|
|
79
|
+
return this._toolRoutes.get(name);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Resolves an aggregated prompt name to its origin, or `undefined` if unknown. */
|
|
83
|
+
resolvePrompt(name: string): Route | undefined {
|
|
84
|
+
return this._promptRoutes.get(name);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private _rebuild(): void {
|
|
88
|
+
const tools: CatalogTool[] = [];
|
|
89
|
+
const prompts: CatalogPrompt[] = [];
|
|
90
|
+
const toolRoutes = new Map<string, Route>();
|
|
91
|
+
const promptRoutes = new Map<string, Route>();
|
|
92
|
+
|
|
93
|
+
for (const [provider, entry] of this._providers) {
|
|
94
|
+
for (const tool of entry.tools) {
|
|
95
|
+
const name = unique(capToolName(prefixed(provider, tool.name)), toolRoutes);
|
|
96
|
+
toolRoutes.set(name, { provider, original: tool.name });
|
|
97
|
+
tools.push({ ...tool, name, description: tag(provider, tool.description) });
|
|
98
|
+
}
|
|
99
|
+
for (const prompt of entry.prompts) {
|
|
100
|
+
const name = unique(prefixed(provider, prompt.name), promptRoutes);
|
|
101
|
+
promptRoutes.set(name, { provider, original: prompt.name });
|
|
102
|
+
prompts.push({ ...prompt, name, description: tag(provider, prompt.description) });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
this._tools = tools;
|
|
107
|
+
this._prompts = prompts;
|
|
108
|
+
this._toolRoutes = toolRoutes;
|
|
109
|
+
this._promptRoutes = promptRoutes;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function prefixed(provider: string, original: string): string {
|
|
114
|
+
return `${provider}${SEPARATOR}${original}`;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** Tags a description with the origin provider so the model and user see the source. */
|
|
118
|
+
function tag(provider: string, description: string | undefined): string {
|
|
119
|
+
const label = `[${provider}]`;
|
|
120
|
+
return description ? `${label} ${description}` : label;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** Caps a tool name to the API limit, replacing the overflow with a stable hash. */
|
|
124
|
+
function capToolName(name: string): string {
|
|
125
|
+
if (name.length <= MAX_TOOL_NAME_LENGTH) return name;
|
|
126
|
+
const hash = djb2(name);
|
|
127
|
+
return name.slice(0, MAX_TOOL_NAME_LENGTH - hash.length - 1) + SEPARATOR + hash;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** Disambiguates a name already present in `taken` by appending `-2`, `-3`, ... */
|
|
131
|
+
function unique(candidate: string, taken: ReadonlyMap<string, unknown>): string {
|
|
132
|
+
if (!taken.has(candidate)) return candidate;
|
|
133
|
+
let n = 2;
|
|
134
|
+
while (taken.has(`${candidate}${SEPARATOR}${n}`)) n++;
|
|
135
|
+
return `${candidate}${SEPARATOR}${n}`;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** Small deterministic string hash rendered as 8 base-36 characters. */
|
|
139
|
+
function djb2(input: string): string {
|
|
140
|
+
let h = 5381;
|
|
141
|
+
for (let i = 0; i < input.length; i++) {
|
|
142
|
+
h = ((h << 5) + h + input.charCodeAt(i)) >>> 0;
|
|
143
|
+
}
|
|
144
|
+
return h.toString(36).padStart(8, "0").slice(-8);
|
|
145
|
+
}
|