@thinkwell/conductor 0.2.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/README.md +140 -0
- package/dist/conductor.d.ts +219 -0
- package/dist/conductor.d.ts.map +1 -0
- package/dist/conductor.js +960 -0
- package/dist/conductor.js.map +1 -0
- package/dist/connectors/channel.d.ts +60 -0
- package/dist/connectors/channel.d.ts.map +1 -0
- package/dist/connectors/channel.js +155 -0
- package/dist/connectors/channel.js.map +1 -0
- package/dist/connectors/index.d.ts +6 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +6 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/stdio.d.ts +36 -0
- package/dist/connectors/stdio.d.ts.map +1 -0
- package/dist/connectors/stdio.js +198 -0
- package/dist/connectors/stdio.js.map +1 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/instantiators.d.ts +129 -0
- package/dist/instantiators.d.ts.map +1 -0
- package/dist/instantiators.js +183 -0
- package/dist/instantiators.js.map +1 -0
- package/dist/logger.d.ts +121 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +162 -0
- package/dist/logger.js.map +1 -0
- package/dist/mcp-bridge/http-listener.d.ts +35 -0
- package/dist/mcp-bridge/http-listener.d.ts.map +1 -0
- package/dist/mcp-bridge/http-listener.js +204 -0
- package/dist/mcp-bridge/http-listener.js.map +1 -0
- package/dist/mcp-bridge/index.d.ts +9 -0
- package/dist/mcp-bridge/index.d.ts.map +1 -0
- package/dist/mcp-bridge/index.js +8 -0
- package/dist/mcp-bridge/index.js.map +1 -0
- package/dist/mcp-bridge/mcp-bridge.d.ts +80 -0
- package/dist/mcp-bridge/mcp-bridge.d.ts.map +1 -0
- package/dist/mcp-bridge/mcp-bridge.js +170 -0
- package/dist/mcp-bridge/mcp-bridge.js.map +1 -0
- package/dist/mcp-bridge/types.d.ts +69 -0
- package/dist/mcp-bridge/types.d.ts.map +1 -0
- package/dist/mcp-bridge/types.js +8 -0
- package/dist/mcp-bridge/types.js.map +1 -0
- package/dist/message-queue.d.ts +46 -0
- package/dist/message-queue.d.ts.map +1 -0
- package/dist/message-queue.js +90 -0
- package/dist/message-queue.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conductor.js","sourceRoot":"","sources":["../src/conductor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAsB,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAsD,MAAM,aAAa,CAAC;AAyCjH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAS;IACH,MAAM,CAAkB;IACxB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,CAAS;IACxB,KAAK,GAAmB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAE1D,yDAAyD;IACjD,gBAAgB,GAA+B,IAAI,CAAC;IACpD,OAAO,GAA0B,EAAE,CAAC;IACpC,eAAe,GAA+B,IAAI,CAAC;IAE3D,+BAA+B;IAC/B,oDAAoD;IAC5C,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IACpD,aAAa,GAAG,CAAC,CAAC;IAE1B,4DAA4D;IACpD,SAAS,GAAqB,IAAI,CAAC;IAE3C,4DAA4D;IACpD,4BAA4B,GAAG,KAAK,CAAC;IAE7C,iFAAiF;IACzE,sBAAsB,GAAG,IAAI,GAAG,EAGrC,CAAC;IAEJ,+DAA+D;IACvD,oBAAoB,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE5D,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,oBAAoB;QACpB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;gBACzB,GAAG,MAAM,CAAC,OAAO;gBACjB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW;gBACvD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;gBACzB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW;gBAChC,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACnC,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,eAAmC;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAE7D,sCAAsC;QACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE/C,0BAA0B;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,wBAAwB;QACxB,MAAM,aAAa,GAAoB,EAAE,CAAC;QAE1C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,MAA2B;QACpD,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC5C,sEAAsE;oBACtE,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACrE,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC7C,8CAA8C;4BAC9C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wBAChC,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACrE,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,CAAC,EAAE,oDAAoD;4BACpE,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;oBAAS,CAAC;gBACT,kCAAkC;gBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,UAA+B,EAC/B,UAAkB;QAElB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAChD,0CAA0C;oBAC1C,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;4BAC/C,iDAAiD;4BACjD,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;4BACtD,SAAS;wBACX,CAAC;oBACH,CAAC;oBACD,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnC,IAAI,OAAO,CAAC,MAAM,KAAK,4BAA4B,EAAE,CAAC;4BACpD,sDAAsD;4BACtD,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;4BAC3D,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,0DAA0D;oBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;wBAC/C,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBAClB,CAAC,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;4BACjD,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;oBAAS,CAAC;gBACT,qDAAqD;gBACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,UAA+B;QACvD,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;wBAC/C,IAAI,EAAE,WAAW;qBAClB,CAAC,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;4BAClC,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;oBAAS,CAAC;gBACT,qDAAqD;gBACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACK,2BAA2B,CACjC,UAAkB,EAClB,OAA6E;QAE7E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAqC,CAAC;QAC7D,MAAM,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAElD,+DAA+D;QAC/D,MAAM,SAAS,GAAG,eAAe,CAC/B,CAAC,MAAM,EAAE,EAAE;YACT,2EAA2E;YAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,wCAAwC;YACxC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC,CACF,CAAC;QAEF,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS;SACV,CAAC;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,eAAe;YACrB,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,gCAAgC,CACtC,UAAkB,EAClB,OAA8D;QAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAA0C,CAAC;QAClE,MAAM,KAAK,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QAEF,gCAAgC;QAChC,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,eAAe;YACrB,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,OAAuB,EACvB,MAAqF;QAErF,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS;aACV,CAAC;QACJ,CAAC;QAED,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACxD,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACtD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,MAAqF,EACrF,SAAoB;QAEpB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,+BAA+B;YAC/B,OAAO,eAAe,CACpB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACxE,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACrE,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,wEAAwE;YACxE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;YAChC,OAAO,eAAe,CACpB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3E,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACxE,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,OAAO,eAAe,CACpB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACpE,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAAyB;QACnD,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe;gBAC3D,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe;oBACpD,CAAC,CAAC,UAAU;YACd,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACtC,OAAO;SACR,CAAC,CAAC;QAEH,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,eAAe;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;oBACzC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBACnC,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;iBAC3E,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpE,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;oBACzC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBACnC,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;iBAC3E,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpE,MAAM;YAER,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC/C,2CAA2C;gBAC3C,MAAM;YAER,sBAAsB;YACtB,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC7G,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC7E,MAAM;YAER,KAAK,4BAA4B;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACxF,2DAA2D;gBAC3D,MAAM;YAER,KAAK,sBAAsB;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1F,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3E,MAAM;YAER,KAAK,6BAA6B;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACzF,MAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACjE,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAyB;QAChD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,eAAe;gBAClB,OAAO,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;YACpF,KAAK,eAAe;gBAClB,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;YACpG,KAAK,yBAAyB,CAAC;YAC/B,KAAK,sBAAsB,CAAC;YAC5B,KAAK,6BAA6B;gBAChC,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAyB;QAChD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,eAAe;gBAClB,OAAO,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC9C,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,GAAG;oBACjC,CAAC,CAAC,OAAO,CAAC;YACd,KAAK,eAAe;gBAClB,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC5E,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW;oBAC7C,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG;oBACrC,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;YAChD,KAAK,yBAAyB,CAAC;YAC/B,KAAK,sBAAsB,CAAC;YAC5B,KAAK,6BAA6B;gBAChC,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,WAAmB,EACnB,QAAkB;QAElB,0FAA0F;QAC1F,IACE,WAAW,KAAK,CAAC;YACjB,QAAQ,CAAC,IAAI,KAAK,SAAS;YAC3B,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB,CAAC,EAC1E,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,IACE,QAAQ,CAAC,IAAI,KAAK,SAAS;YAC3B,QAAQ,CAAC,MAAM,KAAK,aAAa;YACjC,IAAI,CAAC,SAAS;YACd,CAAC,IAAI,CAAC,4BAA4B,EAClC,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAClC,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,kCAAkC,WAAW,EAAE;iBACzD,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,WAAwB,EACxB,QAAkB;QAElB,kEAAkE;QAClE,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,+EAA+E;QAC/E,2DAA2D;QAC3D,2CAA2C;QAE3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,uCAAuC;YACvC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,mDAAmD;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;YACrC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBACrB,2CAA2C;gBAC3C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAAC,UAAkB,EAAE,QAAkB;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,qCAAqC;gBACrC,MAAM,aAAa,GAAG,2BAA2B,CAC/C,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC3C,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CACR,aAAa,CAAC,UAAU,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAClE,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,0CAA0C;gBAC1C,MAAM,aAAa,GAAG,gCAAgC,CACpD,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC5E,MAAM;YACR,CAAC;YAED,KAAK,UAAU;gBACb,qDAAqD;gBACrD,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,gBAAgB,CAAC,QAAwC;QACrE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACxC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAClC,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,+BAA+B;aACzC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,WAAW,GAAsB;gBACrC,MAAM,EAAE,QAAQ,CAAC,MAAyC;gBAC1D,MAAM,EAAE,QAAQ,CAAC,MAAqC;aACvD,CAAC;YAEF,yBAAyB;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAE5E,qBAAqB;YACrB,KAAK,MAAM,cAAc,IAAI,OAAO,EAAE,CAAC;gBACrC,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9E,yCAAyC;gBACzC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEpC,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,oDAAoD;gBACpD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC3C,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,SAAS,EAAE,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAClE,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAC5D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC3C,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,SAAS,EAAE,IAAI,CAAC,8BAA8B,CAC5C,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,SAAS,CAAC,CACxD;oBACD,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAClC,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,yBAAyB,KAAK,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,MAAe;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;QACxD,OAAO;YACL,GAAG,CAAC;YACJ,KAAK,EAAE;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAe;QAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACvC,OAAO;YACL,GAAG,CAAC;YACJ,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,8BAA8B,CAAC,iBAA4B;QACjE,OAAO,eAAe,CACpB,CAAC,MAAM,EAAE,EAAE;YACT,iDAAiD;YACjD,MAAM,QAAQ,GAAG,MAA4B,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAC5B,iBAAiB,CAAC,gBAAgB,CAAC;oBACjC,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,iDAAiD;iBAC3D,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,8BAA8B,CAAC,iBAA4B;QACjE,OAAO,eAAe,CACpB,CAAC,MAAM,EAAE,EAAE;YACT,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAA4B,CAAC;YAC9C,IAAI,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;gBAC9C,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;YAC3C,CAAC;YACD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAyC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,iEAAiE;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,UAA+B,EAC/B,QAAkB;QAElB,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,oDAAoD;gBACpD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC3C,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,MAAM,EAAE,QAAQ,EAAE,wDAAwD;iBAC3E,CAAC,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7E,MAAM;YACR,CAAC;YAED,KAAK,cAAc;gBACjB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,MAAM;YAER,KAAK,UAAU;gBACb,mEAAmE;gBACnE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnB,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,WAAmB;QAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,gBAAgB,CAC5B,WAAmB,EACnB,QAAwC;QAExC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAGX,CAAC;QAEd,MAAM,OAAO,GAAG,MAAM,EAAE,UAAU,CAAC;QAEnC,oEAAoE;QACpE,MAAM,UAAU,GAAG,WAAW,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAEzD,kCAAkC;QAClC,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,mBAAmB,CACrF,OAAO,EACP,UAAU,CACX,CAAC;QAGF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,sCAAsC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM;YACT,UAAU,EAAE,kBAAkB;SAC/B,CAAC;QAEF,+EAA+E;QAC/E,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC7C,MAAM,gBAAgB,GAAG,eAAe,CACtC,CAAC,MAAM,EAAE,EAAE;YACT,uCAAuC;YACvC,MAAM,QAAQ,GAAG,MAAwD,CAAC;YAC1E,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAU,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClE,CAAC;YACD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,sCAAsC;YACtC,MAAM,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAChD,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;QAEF,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAClC,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,kCAAkC,WAAW,EAAE;aACzD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAa;YACjC,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,2BAA2B,CACvC,MAAc,EACd,YAAoB;QAEpB,+EAA+E;QAC/E,iEAAiE;QACjE,iFAAiF;QAEjF,MAAM,gBAAgB,GAAG;YACvB,YAAY;YACZ,GAAG,EAAE,MAAM;SACZ,CAAC;QAEF,kDAAkD;QAClD,MAAM,SAAS,GAAG,eAAe,CAC/B,CAAC,MAAM,EAAE,EAAE;YACT,oDAAoD;YACpD,MAAM,QAAQ,GAAG,MAGhB,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,4BAA4B;gBAClC,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,YAAY;gBACnD,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;aACzE,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEvD,+DAA+D;QAC/D,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC5B,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,gBAAgB;YACxB,SAAS;SACV,CAAC;QAEF,4DAA4D;QAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,uCAAuC;YACvC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CACnC,YAAoB,EACpB,QAAkB;QAElB,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG;YACvB,YAAY;YACZ,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc;gBACrE,CAAC,CAAE,QAA+B,CAAC,MAAM;gBACzC,CAAC,CAAC,SAAS;YACb,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc;gBACrE,CAAC,CAAE,QAAiC,CAAC,MAAM;gBAC3C,CAAC,CAAC,SAAS;YACb,EAAE,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAE,QAA8B,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,8BAA8B;YAC9B,MAAM,WAAW,GAAa;gBAC5B,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC5B,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,SAAS,EAAG,QAAqC,CAAC,SAAS;aAC5D,CAAC;YAEF,gDAAgD;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5C,mCAAmC;YACnC,MAAM,WAAW,GAAa;gBAC5B,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,gBAAgB;aACzB,CAAC;YAEF,sBAAsB;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,+BAA+B,CAAC,YAAoB;QAChE,kDAAkD;QAClD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE/C,kDAAkD;QAClD,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,EAAE,YAAY,EAAE;SACzB,CAAC;QAEF,sBAAsB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,iDAAiD;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChannelConnector - in-memory bidirectional connection
|
|
3
|
+
*
|
|
4
|
+
* This connector creates an in-memory channel for testing or for
|
|
5
|
+
* embedded components that run in the same process.
|
|
6
|
+
*/
|
|
7
|
+
import type { ComponentConnection, ComponentConnector } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* A pair of connected channel endpoints.
|
|
10
|
+
*
|
|
11
|
+
* Messages sent on one end are received on the other.
|
|
12
|
+
*/
|
|
13
|
+
export interface ChannelPair {
|
|
14
|
+
/** The "left" side of the channel */
|
|
15
|
+
left: ComponentConnection;
|
|
16
|
+
/** The "right" side of the channel */
|
|
17
|
+
right: ComponentConnection;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a connected pair of channel endpoints.
|
|
21
|
+
*
|
|
22
|
+
* This is useful for testing or for connecting in-process components.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createChannelPair(): ChannelPair;
|
|
25
|
+
/**
|
|
26
|
+
* Connector for in-memory channel connections.
|
|
27
|
+
*
|
|
28
|
+
* Each call to connect() returns a new channel pair. The "other" end
|
|
29
|
+
* must be retrieved via getOtherEnd() after calling connect().
|
|
30
|
+
*/
|
|
31
|
+
export declare class ChannelConnector implements ComponentConnector {
|
|
32
|
+
private pendingOtherEnd;
|
|
33
|
+
connect(): Promise<ComponentConnection>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the other end of the most recently created channel.
|
|
36
|
+
*
|
|
37
|
+
* This must be called after connect() to get the paired endpoint.
|
|
38
|
+
*/
|
|
39
|
+
getOtherEnd(): ComponentConnection | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Handler function for an in-memory component
|
|
43
|
+
*/
|
|
44
|
+
export type ComponentHandler = (connection: ComponentConnection) => Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Create a connector that runs a handler function in-process.
|
|
47
|
+
*
|
|
48
|
+
* This is useful for testing or for embedding simple components.
|
|
49
|
+
*
|
|
50
|
+
* @param handler - Function that handles the component side of the connection
|
|
51
|
+
* @returns A connector that runs the handler when connect() is called
|
|
52
|
+
*/
|
|
53
|
+
export declare function inProcess(handler: ComponentHandler): ComponentConnector;
|
|
54
|
+
/**
|
|
55
|
+
* Create a simple echo component for testing.
|
|
56
|
+
*
|
|
57
|
+
* This component echoes back any request with the same params as the result.
|
|
58
|
+
*/
|
|
59
|
+
export declare function echoComponent(): ComponentConnector;
|
|
60
|
+
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/connectors/channel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuF3E;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,sCAAsC;IACtC,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAQ/C;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,OAAO,CAAC,eAAe,CAAoC;IAErD,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAM7C;;;;OAIG;IACH,WAAW,IAAI,mBAAmB,GAAG,IAAI;CAK1C;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAWvE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,kBAAkB,CAalD"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChannelConnector - in-memory bidirectional connection
|
|
3
|
+
*
|
|
4
|
+
* This connector creates an in-memory channel for testing or for
|
|
5
|
+
* embedded components that run in the same process.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A simple message channel that supports async iteration
|
|
9
|
+
*/
|
|
10
|
+
class MessageChannel {
|
|
11
|
+
queue = [];
|
|
12
|
+
resolvers = [];
|
|
13
|
+
closed = false;
|
|
14
|
+
push(message) {
|
|
15
|
+
if (this.closed) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (this.resolvers.length > 0) {
|
|
19
|
+
const resolve = this.resolvers.shift();
|
|
20
|
+
resolve(message);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.queue.push(message);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
close() {
|
|
27
|
+
this.closed = true;
|
|
28
|
+
for (const resolve of this.resolvers) {
|
|
29
|
+
resolve(null);
|
|
30
|
+
}
|
|
31
|
+
this.resolvers = [];
|
|
32
|
+
}
|
|
33
|
+
isClosed() {
|
|
34
|
+
return this.closed;
|
|
35
|
+
}
|
|
36
|
+
async *[Symbol.asyncIterator]() {
|
|
37
|
+
while (!this.closed) {
|
|
38
|
+
let message;
|
|
39
|
+
if (this.queue.length > 0) {
|
|
40
|
+
message = this.queue.shift();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
message = await new Promise((resolve) => {
|
|
44
|
+
this.resolvers.push(resolve);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (message === null) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
yield message;
|
|
51
|
+
}
|
|
52
|
+
// Drain any remaining messages
|
|
53
|
+
while (this.queue.length > 0) {
|
|
54
|
+
yield this.queue.shift();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* One side of a channel connection
|
|
60
|
+
*/
|
|
61
|
+
class ChannelConnectionEnd {
|
|
62
|
+
sendChannel;
|
|
63
|
+
receiveChannel;
|
|
64
|
+
constructor(sendChannel, receiveChannel) {
|
|
65
|
+
this.sendChannel = sendChannel;
|
|
66
|
+
this.receiveChannel = receiveChannel;
|
|
67
|
+
}
|
|
68
|
+
send(message) {
|
|
69
|
+
this.sendChannel.push(message);
|
|
70
|
+
}
|
|
71
|
+
get messages() {
|
|
72
|
+
return this.receiveChannel;
|
|
73
|
+
}
|
|
74
|
+
async close() {
|
|
75
|
+
this.sendChannel.close();
|
|
76
|
+
this.receiveChannel.close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a connected pair of channel endpoints.
|
|
81
|
+
*
|
|
82
|
+
* This is useful for testing or for connecting in-process components.
|
|
83
|
+
*/
|
|
84
|
+
export function createChannelPair() {
|
|
85
|
+
const leftToRight = new MessageChannel();
|
|
86
|
+
const rightToLeft = new MessageChannel();
|
|
87
|
+
return {
|
|
88
|
+
left: new ChannelConnectionEnd(leftToRight, rightToLeft),
|
|
89
|
+
right: new ChannelConnectionEnd(rightToLeft, leftToRight),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Connector for in-memory channel connections.
|
|
94
|
+
*
|
|
95
|
+
* Each call to connect() returns a new channel pair. The "other" end
|
|
96
|
+
* must be retrieved via getOtherEnd() after calling connect().
|
|
97
|
+
*/
|
|
98
|
+
export class ChannelConnector {
|
|
99
|
+
pendingOtherEnd = null;
|
|
100
|
+
async connect() {
|
|
101
|
+
const pair = createChannelPair();
|
|
102
|
+
this.pendingOtherEnd = pair.right;
|
|
103
|
+
return pair.left;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get the other end of the most recently created channel.
|
|
107
|
+
*
|
|
108
|
+
* This must be called after connect() to get the paired endpoint.
|
|
109
|
+
*/
|
|
110
|
+
getOtherEnd() {
|
|
111
|
+
const end = this.pendingOtherEnd;
|
|
112
|
+
this.pendingOtherEnd = null;
|
|
113
|
+
return end;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create a connector that runs a handler function in-process.
|
|
118
|
+
*
|
|
119
|
+
* This is useful for testing or for embedding simple components.
|
|
120
|
+
*
|
|
121
|
+
* @param handler - Function that handles the component side of the connection
|
|
122
|
+
* @returns A connector that runs the handler when connect() is called
|
|
123
|
+
*/
|
|
124
|
+
export function inProcess(handler) {
|
|
125
|
+
return {
|
|
126
|
+
async connect() {
|
|
127
|
+
const pair = createChannelPair();
|
|
128
|
+
// Start the handler on the other end (don't await it)
|
|
129
|
+
handler(pair.right).catch((error) => {
|
|
130
|
+
console.error("In-process component error:", error);
|
|
131
|
+
});
|
|
132
|
+
return pair.left;
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a simple echo component for testing.
|
|
138
|
+
*
|
|
139
|
+
* This component echoes back any request with the same params as the result.
|
|
140
|
+
*/
|
|
141
|
+
export function echoComponent() {
|
|
142
|
+
return inProcess(async (connection) => {
|
|
143
|
+
for await (const message of connection.messages) {
|
|
144
|
+
if ("method" in message && "id" in message) {
|
|
145
|
+
// It's a request - echo the params back as the result
|
|
146
|
+
connection.send({
|
|
147
|
+
jsonrpc: "2.0",
|
|
148
|
+
id: message.id,
|
|
149
|
+
result: message.params,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/connectors/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component connectors - factories for creating component connections
|
|
3
|
+
*/
|
|
4
|
+
export { StdioConnector, stdio, type StdioConnectorOptions } from "./stdio.js";
|
|
5
|
+
export { ChannelConnector, createChannelPair, inProcess, echoComponent, type ChannelPair, type ComponentHandler, } from "./channel.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,EAA8B,MAAM,YAAY,CAAC;AAE/E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,aAAa,GAGd,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StdioConnector - spawns a subprocess and communicates via stdin/stdout
|
|
3
|
+
*
|
|
4
|
+
* This connector starts a child process and establishes a bidirectional
|
|
5
|
+
* JSON-RPC connection using newline-delimited JSON over stdio.
|
|
6
|
+
*/
|
|
7
|
+
import type { ComponentConnection, ComponentConnector } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Options for StdioConnector
|
|
10
|
+
*/
|
|
11
|
+
export interface StdioConnectorOptions {
|
|
12
|
+
/** The command to execute (e.g., "claude-agent" or "/path/to/agent") */
|
|
13
|
+
command: string;
|
|
14
|
+
/** Arguments to pass to the command */
|
|
15
|
+
args?: string[];
|
|
16
|
+
/** Environment variables to set (merged with current env) */
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
/** Working directory for the subprocess */
|
|
19
|
+
cwd?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Connector that spawns a subprocess and communicates via stdio
|
|
23
|
+
*/
|
|
24
|
+
export declare class StdioConnector implements ComponentConnector {
|
|
25
|
+
private readonly options;
|
|
26
|
+
constructor(options: StdioConnectorOptions | string);
|
|
27
|
+
/**
|
|
28
|
+
* Spawn the subprocess and return a connection to it
|
|
29
|
+
*/
|
|
30
|
+
connect(): Promise<ComponentConnection>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a StdioConnector from a command string or options
|
|
34
|
+
*/
|
|
35
|
+
export declare function stdio(options: StdioConnectorOptions | string): StdioConnector;
|
|
36
|
+
//# sourceMappingURL=stdio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/connectors/stdio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAsHD;;GAEG;AACH,qBAAa,cAAe,YAAW,kBAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAanD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAgC9C;AAuCD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,GAAG,cAAc,CAE7E"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StdioConnector - spawns a subprocess and communicates via stdin/stdout
|
|
3
|
+
*
|
|
4
|
+
* This connector starts a child process and establishes a bidirectional
|
|
5
|
+
* JSON-RPC connection using newline-delimited JSON over stdio.
|
|
6
|
+
*/
|
|
7
|
+
import { spawn } from "node:child_process";
|
|
8
|
+
import { createInterface } from "node:readline";
|
|
9
|
+
/**
|
|
10
|
+
* A connection to a subprocess via stdin/stdout
|
|
11
|
+
*/
|
|
12
|
+
class StdioConnection {
|
|
13
|
+
process;
|
|
14
|
+
readline;
|
|
15
|
+
closed = false;
|
|
16
|
+
closingGracefully = false;
|
|
17
|
+
constructor(process) {
|
|
18
|
+
this.process = process;
|
|
19
|
+
if (!process.stdout || !process.stdin) {
|
|
20
|
+
throw new Error("Process must have stdio pipes");
|
|
21
|
+
}
|
|
22
|
+
// Set up readline for reading newline-delimited JSON
|
|
23
|
+
this.readline = createInterface({
|
|
24
|
+
input: process.stdout,
|
|
25
|
+
crlfDelay: Infinity,
|
|
26
|
+
});
|
|
27
|
+
// Handle process exit
|
|
28
|
+
process.on("exit", (code, signal) => {
|
|
29
|
+
this.closed = true;
|
|
30
|
+
if (code !== 0 && code !== null) {
|
|
31
|
+
console.error(`Process exited with code ${code}`);
|
|
32
|
+
}
|
|
33
|
+
// Only log signal if it wasn't an expected graceful shutdown
|
|
34
|
+
if (signal && !this.closingGracefully) {
|
|
35
|
+
console.error(`Process killed by signal ${signal}`);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
process.on("error", (error) => {
|
|
39
|
+
console.error("Process error:", error);
|
|
40
|
+
this.closed = true;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Send a JSON-RPC message to the subprocess
|
|
45
|
+
*/
|
|
46
|
+
send(message) {
|
|
47
|
+
if (this.closed || !this.process.stdin) {
|
|
48
|
+
throw new Error("Connection is closed");
|
|
49
|
+
}
|
|
50
|
+
const json = JSON.stringify(message);
|
|
51
|
+
this.process.stdin.write(json + "\n");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Async iterable of messages received from the subprocess
|
|
55
|
+
*/
|
|
56
|
+
get messages() {
|
|
57
|
+
const readline = this.readline;
|
|
58
|
+
const isClosed = () => this.closed;
|
|
59
|
+
return {
|
|
60
|
+
async *[Symbol.asyncIterator]() {
|
|
61
|
+
for await (const line of readline) {
|
|
62
|
+
if (isClosed()) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!line.trim()) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const message = JSON.parse(line);
|
|
70
|
+
yield message;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.error("Failed to parse JSON-RPC message:", error);
|
|
74
|
+
console.error("Line:", line);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Close the connection and terminate the subprocess
|
|
82
|
+
*/
|
|
83
|
+
async close() {
|
|
84
|
+
if (this.closed) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.closed = true;
|
|
88
|
+
this.closingGracefully = true;
|
|
89
|
+
this.readline.close();
|
|
90
|
+
// Close stdin to signal EOF to the subprocess
|
|
91
|
+
this.process.stdin?.end();
|
|
92
|
+
// Give the process a chance to exit gracefully
|
|
93
|
+
await new Promise((resolve) => {
|
|
94
|
+
const timeout = setTimeout(() => {
|
|
95
|
+
// Force kill if it hasn't exited
|
|
96
|
+
this.process.kill("SIGKILL");
|
|
97
|
+
resolve();
|
|
98
|
+
}, 5000);
|
|
99
|
+
this.process.once("exit", () => {
|
|
100
|
+
clearTimeout(timeout);
|
|
101
|
+
resolve();
|
|
102
|
+
});
|
|
103
|
+
// Send SIGTERM first
|
|
104
|
+
this.process.kill("SIGTERM");
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Connector that spawns a subprocess and communicates via stdio
|
|
110
|
+
*/
|
|
111
|
+
export class StdioConnector {
|
|
112
|
+
options;
|
|
113
|
+
constructor(options) {
|
|
114
|
+
if (typeof options === "string") {
|
|
115
|
+
// Parse command string (split on whitespace, respecting quotes)
|
|
116
|
+
const parts = parseCommand(options);
|
|
117
|
+
this.options = {
|
|
118
|
+
command: parts[0],
|
|
119
|
+
args: parts.slice(1),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
this.options = options;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Spawn the subprocess and return a connection to it
|
|
128
|
+
*/
|
|
129
|
+
async connect() {
|
|
130
|
+
const { command, args = [], env, cwd } = this.options;
|
|
131
|
+
const process = spawn(command, args, {
|
|
132
|
+
stdio: ["pipe", "pipe", "inherit"], // stdin, stdout piped; stderr inherited
|
|
133
|
+
env: env ? { ...globalThis.process.env, ...env } : undefined,
|
|
134
|
+
cwd,
|
|
135
|
+
});
|
|
136
|
+
// Wait for the process to spawn successfully
|
|
137
|
+
await new Promise((resolve, reject) => {
|
|
138
|
+
const onSpawn = () => {
|
|
139
|
+
cleanup();
|
|
140
|
+
resolve();
|
|
141
|
+
};
|
|
142
|
+
const onError = (error) => {
|
|
143
|
+
cleanup();
|
|
144
|
+
reject(error);
|
|
145
|
+
};
|
|
146
|
+
const cleanup = () => {
|
|
147
|
+
process.removeListener("spawn", onSpawn);
|
|
148
|
+
process.removeListener("error", onError);
|
|
149
|
+
};
|
|
150
|
+
process.once("spawn", onSpawn);
|
|
151
|
+
process.once("error", onError);
|
|
152
|
+
});
|
|
153
|
+
return new StdioConnection(process);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Parse a command string into command and arguments.
|
|
158
|
+
* Handles quoted strings.
|
|
159
|
+
*/
|
|
160
|
+
function parseCommand(command) {
|
|
161
|
+
const parts = [];
|
|
162
|
+
let current = "";
|
|
163
|
+
let inQuote = null;
|
|
164
|
+
for (let i = 0; i < command.length; i++) {
|
|
165
|
+
const char = command[i];
|
|
166
|
+
if (inQuote) {
|
|
167
|
+
if (char === inQuote) {
|
|
168
|
+
inQuote = null;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
current += char;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else if (char === '"' || char === "'") {
|
|
175
|
+
inQuote = char;
|
|
176
|
+
}
|
|
177
|
+
else if (char === " " || char === "\t") {
|
|
178
|
+
if (current) {
|
|
179
|
+
parts.push(current);
|
|
180
|
+
current = "";
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
current += char;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (current) {
|
|
188
|
+
parts.push(current);
|
|
189
|
+
}
|
|
190
|
+
return parts;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Create a StdioConnector from a command string or options
|
|
194
|
+
*/
|
|
195
|
+
export function stdio(options) {
|
|
196
|
+
return new StdioConnector(options);
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=stdio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/connectors/stdio.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @thinkwell/conductor - TypeScript conductor for ACP proxy chains
|
|
3
|
+
*
|
|
4
|
+
* The conductor orchestrates message routing between clients, proxies, and agents.
|
|
5
|
+
* It sits between every component, managing process lifecycle and message flow.
|
|
6
|
+
*
|
|
7
|
+
* ## Quick Start
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { Conductor, fromCommands, createChannelPair } from '@thinkwell/conductor';
|
|
11
|
+
*
|
|
12
|
+
* // Create a conductor that spawns an agent subprocess
|
|
13
|
+
* const conductor = new Conductor({
|
|
14
|
+
* instantiator: fromCommands(['my-agent']),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* // Connect via a channel (for testing) or stdio (for production)
|
|
18
|
+
* const [clientEnd, conductorEnd] = createChannelPair();
|
|
19
|
+
* await conductor.connect(conductorEnd);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* ## Logging
|
|
23
|
+
*
|
|
24
|
+
* Enable logging to see what the conductor is doing:
|
|
25
|
+
*
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const conductor = new Conductor({
|
|
28
|
+
* instantiator: fromCommands(['my-agent']),
|
|
29
|
+
* logging: {
|
|
30
|
+
* level: 'debug', // 'error' | 'warn' | 'info' | 'debug' | 'trace'
|
|
31
|
+
* name: 'my-app',
|
|
32
|
+
* },
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ## JSONL Tracing
|
|
37
|
+
*
|
|
38
|
+
* Write all messages to a JSONL file for debugging:
|
|
39
|
+
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const conductor = new Conductor({
|
|
42
|
+
* instantiator: fromCommands(['my-agent']),
|
|
43
|
+
* trace: {
|
|
44
|
+
* path: '/tmp/conductor-trace.jsonl',
|
|
45
|
+
* },
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ## Architecture
|
|
50
|
+
*
|
|
51
|
+
* The conductor uses a central message queue to preserve ordering:
|
|
52
|
+
*
|
|
53
|
+
* ```
|
|
54
|
+
* Client ←→ Conductor ←→ [Proxy 0] ←→ [Proxy 1] ←→ ... ←→ Agent
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* All messages flow through the conductor's event loop, ensuring that
|
|
58
|
+
* responses never overtake notifications.
|
|
59
|
+
*
|
|
60
|
+
* @module
|
|
61
|
+
*/
|
|
62
|
+
export { Conductor, type ConductorConfig } from "./conductor.js";
|
|
63
|
+
export { createLogger, createNoopLogger, getLogger, setLogger, type Logger, type LoggerOptions, type LogLevel, type LogEntry, type TraceOptions, type TraceEntry, } from "./logger.js";
|
|
64
|
+
export { fromCommands, fromConnectors, dynamic, staticInstantiator, type CommandSpec, type CommandOptions, type StaticInstantiatorConfig, type DynamicInstantiatorFactory, } from "./instantiators.js";
|
|
65
|
+
export type { RoleId, SourceIndex, ConductorMessage, ComponentConnection, ComponentConnector, InitializeRequest, InstantiatedComponents, ComponentInstantiator, } from "./types.js";
|
|
66
|
+
export { ROLE_COUNTERPART } from "./types.js";
|
|
67
|
+
export { MessageQueue } from "./message-queue.js";
|
|
68
|
+
export { StdioConnector, stdio, ChannelConnector, createChannelPair, inProcess, echoComponent, type StdioConnectorOptions, type ChannelPair, type ComponentHandler, } from "./connectors/index.js";
|
|
69
|
+
export { McpBridge, createHttpListener, type McpBridgeOptions, type HttpListener, type HttpListenerOptions, type McpServerSpec, type TransformedMcpServer, type McpBridgeListener, type McpBridgeConnection, type McpBridgeMessage, } from "./mcp-bridge/index.js";
|
|
70
|
+
export type { JsonRpcMessage, JsonRpcRequest, JsonRpcNotification, JsonRpcResponse, JsonRpcError, JsonRpcId, Dispatch, Responder, RequestDispatch, NotificationDispatch, ResponseDispatch, } from "@thinkwell/protocol";
|
|
71
|
+
export { isJsonRpcRequest, isJsonRpcNotification, isJsonRpcResponse, createRequest, createNotification, createSuccessResponse, createErrorResponse, createResponder, } from "@thinkwell/protocol";
|
|
72
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAGH,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,cAAc,EACd,KAAK,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|