mandala-computer-mcp 0.1.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/LICENSE +21 -0
- package/README.md +544 -0
- package/dist/api.d.ts +186 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +932 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.d.ts +55 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +292 -0
- package/dist/cli.js.map +1 -0
- package/dist/errors.d.ts +560 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +873 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +406 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +1679 -0
- package/dist/events.js.map +1 -0
- package/dist/format.d.ts +125 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +180 -0
- package/dist/format.js.map +1 -0
- package/dist/http.d.ts +46 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +792 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/paths.d.ts +394 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +677 -0
- package/dist/paths.js.map +1 -0
- package/dist/server.d.ts +18 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +97 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +78 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +166 -0
- package/dist/session.js.map +1 -0
- package/dist/stdio.d.ts +11 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +43 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/agent.d.ts +16 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +147 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/computers.d.ts +3 -0
- package/dist/tools/computers.d.ts.map +1 -0
- package/dist/tools/computers.js +1037 -0
- package/dist/tools/computers.js.map +1 -0
- package/dist/tools/events.d.ts +3 -0
- package/dist/tools/events.d.ts.map +1 -0
- package/dist/tools/events.js +1077 -0
- package/dist/tools/events.js.map +1 -0
- package/dist/tools/guest.d.ts +3 -0
- package/dist/tools/guest.d.ts.map +1 -0
- package/dist/tools/guest.js +761 -0
- package/dist/tools/guest.js.map +1 -0
- package/dist/tools/input.d.ts +3 -0
- package/dist/tools/input.d.ts.map +1 -0
- package/dist/tools/input.js +240 -0
- package/dist/tools/input.js.map +1 -0
- package/dist/tools/snapshots.d.ts +3 -0
- package/dist/tools/snapshots.d.ts.map +1 -0
- package/dist/tools/snapshots.js +333 -0
- package/dist/tools/snapshots.js.map +1 -0
- package/dist/tools/templates.d.ts +3 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +492 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/types.d.ts +18 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/webhooks.d.ts +3 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +260 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAiB,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAoBhC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuB,CAAC,GAAG,EAAE,EAAE,CAC5D,IAAI,eAAe,CAAC,GAAG,CAA2B,CAAC;AAuDrD;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,YAAY,CAAC,8BAA8B,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;QAC5D,MAAM,IAAI,YAAY,CACpB,+BAA+B,oBAAoB,sBAAsB;YACvE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CACxC,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,YAAY,CAAC,kCAAkC,CAAC,CAAC;IAC7D,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,kDAAkD;IAClD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CAAC,gDAAgD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CACpB,sCAAsC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gCAAgC;YACzF,sFAAsF;YACtF,cAAc,CACjB,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,YAAY,CACpB,2FAA2F;YACzF,wFAAwF;YACxF,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,oEAAoE;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;AAEvC,+CAA+C;AAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,wFAAwF;AACxF,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,cAAc,GAAG,MAAM,CAAC;AAE9B,4DAA4D;AAC5D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AA+BlC;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACd,UAAU,CAAS;IACnB,IAAI,CAAM;IACV,UAAU,CAAqB;IAExC,KAAK,GAAe,EAAE,CAAC;IACvB,qEAAqE;IACrE,UAAU,GAAG,CAAC,CAAC;IACf,0DAA0D;IAC1D,UAAU,GAAG,CAAC,CAAC;IACf,+EAA+E;IAC/E,KAAK,GAAG,KAAK,CAAC;IACd,KAAK,CAAQ;IACb,yEAAyE;IACzE,OAAO,CAAU;IACjB;;;;;;;OAOG;IACH,MAAM,CAAU;IAChB,oEAAoE;IACpE,gBAAgB,CAAU;IAC1B,MAAM,CAAS;IACf,MAAM,CAAY;IAClB;;;;;;;;OAQG;IACH,QAAQ,GAAa,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,6EAA6E;IAC7E,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpC;;;;;;;;;OASG;IACH,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC;;;;;;;;;;OAUG;IACH,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC;;;;;;;OAOG;IACH,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC;;;;;;;OAOG;IACH,cAAc,CAAU;IACxB;;;;;;;OAOG;IACH,aAAa,GAAG,KAAK,CAAC;IACtB,2EAA2E;IAC3E,SAAS,GAAa,EAAE,CAAC;IACzB,kFAAkF;IAClF,gBAAgB,GAAG,CAAC,CAAC;IACrB;;;;;;;;OAQG;IACH,eAAe,CAAW;IAC1B;;;;;;;;;;;;OAYG;IACH,KAAK,GAAa,EAAE,CAAC;IACrB,QAAQ,GAAG,KAAK,CAAC;IACjB;;;;;;;;OAQG;IACH,WAAW,GAAG,KAAK,CAAC;IACpB,MAAM,GAAsB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACrD,KAAK,GAAG,IAAI,GAAG,EAAc,CAAC;IAC9B,OAAO,CAAe;IACtB,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/B,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,QAAQ,GAAG,KAAK,CAAC;IAEjB,YACE,GAAQ,EACR,UAAkB,EAClB,SAA6B,EAC7B,KAAc,EACd,UAAoB,EAAE;QAEtB,0EAA0E;QAC1E,4EAA4E;QAC5E,kEAAkE;QAClE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,yEAAyE;QACzE,sEAAsE;QACtE,0DAA0D;QAC1D,2DAA2D;QAC3D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,sEAAsE;IACtE,IAAI,WAAW;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,+EAA+E;IAC/E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;SACtC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oFAAoF;IACpF,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IACpD,CAAC;IAED,oDAAoD;IACpD,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,2EAA2E;IAC3E,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,gEAAgE;IAChE,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,2FAA2F;IAC3F,eAAe,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,yDAAyD;IACzD,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,6EAA6E;QAC7E,wEAAwE;QACxE,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,yEAAyE;QACzE,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;QACjF,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,0EAA0E;YAC1E,wEAAwE;YACxE,wEAAwE;YACxE,iDAAiD;YACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,sEAAsE;YACtE,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,OAA2B,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACvC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnC,wEAAwE;gBACxE,sEAAsE;gBACtE,uCAAuC;gBACvC,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO;oBAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBACrE,iEAAiE;gBACjE,wEAAwE;gBACxE,uEAAuE;gBACvE,wEAAwE;gBACxE,yEAAyE;gBACzE,sEAAsE;gBACtE,oCAAoC;YACtC,CAAC;QACH,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,mEAAmE;IACnE,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,MAAM,GAAG,6BAA6B;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,OAA4D,EAAE,KAAK,EAAE,GAAG,EAAE;QAC7E,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,KAAK,GAAG,MAAM,CAAC;QACnB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjD,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE;gBAAE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC;gBACE,qEAAqE;gBACrE,qEAAqE;gBACrE,8CAA8C;gBAC9C,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO;gBAChF,MAAM,EAAE,IAAI,CAAC,KAAK;oBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,OAAO,8EAA8E;oBACpH,CAAC,CAAC,GAAG,OAAO,sFAAsF;aACrG;YACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAEvB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACpD,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAc;QACxB,uEAAuE;QACvE,0EAA0E;QAC1E,mBAAmB;QACnB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QACjE,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,gEAAgE;QAChE,4EAA4E;QAC5E,yEAAyE;QACzE,oDAAoD;QACpD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACvD,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,oDAAoD;QACpD,IAAI,CAAC,KAAK,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EACJ,wFAAwF;gBACxF,oCAAoC;SACvC,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,OAAuC,EACvC,QAAqB,EACrB,MAAoB,EACpB,KAAc,EACd,OAAuB;QAEvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,SAAS,CAAC;YACR,wEAAwE;YACxE,wEAAwE;YACxE,0EAA0E;YAC1E,0EAA0E;YAC1E,gEAAgE;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YACvD,qEAAqE;YACrE,qEAAqE;YACrE,wEAAwE;YACxE,mEAAmE;YACnE,sEAAsE;YACtE,wDAAwD;YACxD,IAAI,OAAO,EAAE,EAAE;gBAAE,OAAO,SAAS,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAqB,EAAE,MAAoB;QACxD,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxD,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAAqB,EAAE,MAAoB;QACvE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtE,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAAqB,EAAE,MAAoB;QACvE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/D,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,aAAa;gBAAE,OAAO;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,QAAqB,EAAE,MAAoB;QAC/C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5C,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,SAAS,CAAC,IAAe;QACvB,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;IACnD,CAAC;IAED,QAAQ;QACN,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAoB;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;YACvE,wEAAwE;YACxE,0EAA0E;YAC1E,8BAA8B;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACxE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;gBAClC,IAAI,CAAC,KAAK,GAAG;oBACX,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM;oBACvD,MAAM,EACJ,aAAa,YAAY,2DAA2D;wBACpF,0CAA0C;iBAC7C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gEAAgE;YAChE,uEAAuE;YACvE,2BAA2B;YAC3B,IAAI,CAAC,MAAM,GAAG;gBACZ,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACvF,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;oBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,uEAAuE;YACvE,0EAA0E;YAC1E,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,qEAAqE;YACrE,yEAAyE;YACzE,oCAAoC;YACpC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO;YACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO;YACvC,yEAAyE;YACzE,0EAA0E;YAC1E,2EAA2E;YAC3E,yEAAyE;YACzE,mEAAmE;YACnE,yEAAyE;YACzE,yEAAyE;YACzE,iDAAiD;YACjD,EAAE;YACF,oEAAoE;YACpE,sEAAsE;YACtE,uEAAuE;YACvE,0DAA0D;YAC1D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,mEAAmE;YACnE,+DAA+D;YAC/D,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,sEAAsE;YACtE,yEAAyE;YACzE,WAAW;YACX,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,sEAAsE;YACtE,yEAAyE;YACzE,qEAAqE;YACrE,uEAAuE;YACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAW,CAAC;QAChB,IAAI,CAAC;YACH,wEAAwE;YACxE,oEAAoE;YACpE,gEAAgE;YAChE,CAAC,GAAG,cAAc,CAChB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAClF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,8BAA8B;YAC9B,IAAI,GAAG,YAAY,KAAK,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QACrC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,YAAY,CACpB,GAAG,IAAI,CAAC,UAAU,yEAAyE;gBACzF,sFAAsF;gBACtF,qEAAqE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACtD,MAAM,IAAI,YAAY,CACpB,GAAG,IAAI,CAAC,UAAU,OAAO,MAAM,qDAAqD;gBAClF,iCAAiC,CACpC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,wEAAwE;YACxE,uEAAuE;YACvE,iEAAiE;YACjE,uEAAuE;YACvE,yEAAyE;YACzE,uDAAuD;YACvD,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,OAAO,MAAM,gCAAgC,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAA0C,CAAC;QACzD,MAAM,GAAG,GAAG,OAAO,GAAG,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,GAAG,EAAE,CAAC;YACR,0EAA0E;YAC1E,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;YACtE,EAAE;YACF,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,mEAAmE;YACnE,mEAAmE;YACnE,8DAA8D;YAC9D,0EAA0E;YAC1E,wDAAwD;YACxD,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;gBACtE,+DAA+D;gBAC/D,qEAAqE;gBACrE,sEAAsE;gBACtE,uEAAuE;gBACvE,kEAAkE;gBAClE,MAAM,IAAI,YAAY,CACpB,GAAG,IAAI,CAAC,UAAU,+CAA+C;oBAC/D,2FAA2F;oBAC3F,oEAAoE,CACvE,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,0EAA0E;YAC1E,mEAAmE;YACnE,6CAA6C;YAC7C,MAAM,IAAI,YAAY,CACpB,gDAAgD,IAAI,CAAC,UAAU,+BAA+B,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,YAAY,CACpB,GAAG,IAAI,CAAC,UAAU,oEAAoE;gBACpF,iFAAiF,CACpF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,GAAG,IAAI,CAAC,UAAU,sEAAsE;YACtF,uFAAuF,CAC1F,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,GAAW;QACrB,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,uEAAuE;YACvE,yEAAyE;YACzE,sCAAsC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEvC,IAAI,MAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,uEAAuE;gBACvE,yEAAyE;gBACzE,kEAAkE;gBAClE,EAAE;gBACF,oEAAoE;gBACpE,qEAAqE;gBACrE,sEAAsE;gBACtE,wEAAwE;gBACxE,uEAAuE;gBACvE,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO;oBAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjE,iEAAiE;gBACjE,kEAAkE;gBAClE,qEAAqE;gBACrE,0DAA0D;gBAC1D,EAAE;gBACF,uEAAuE;gBACvE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,sEAAsE;gBACtE,qEAAqE;gBACrE,8DAA8D;gBAC9D,EAAE;gBACF,wEAAwE;gBACxE,sEAAsE;gBACtE,mEAAmE;gBACnE,sEAAsE;gBACtE,0CAA0C;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAC/D,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAE7E,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,EAAE;gBAClC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzD,wEAAwE;gBACxE,sEAAsE;gBACtE,0DAA0D;gBAC1D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;oBAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,qEAAqE;oBACrE,iEAAiE;gBACnE,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;gBAC7E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,mEAAmE;YACnE,uEAAuE;YACvE,uEAAuE;YACvE,cAAc;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEtE,wEAAwE;YACxE,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,gDAAgD;YAChD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnC,IAAI,CAAC,IAAI,EAAE;oBAAE,OAAO;gBACpB,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxC,IAAI,CAAC,IAAI,EAAE;oBAAE,OAAO;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,GAAG,IAAI,CAAC;oBACd,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAoB,EAAE,QAAiB;QAC9C,MAAM,KAAK,GAAU;YACnB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU;YAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YAC/B,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,wEAAwE;YACxE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACjE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;SAClC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,uDAAuD;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;QAC3C,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAEjC,oEAAoE;QACpE,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,0EAA0E;QAC1E,mBAAmB;QACnB,EAAE;QACF,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,uEAAuE;QACvE,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,QAAoB;QACjC,qEAAqE;QACrE,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,4EAA4E;QAC5E,4EAA4E;QAC5E,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,CAAC,eAAe,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QACjF,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAChE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9B,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,qEAAqE;YACrE,2BAA2B;YAC3B,EAAE;YACF,qEAAqE;YACrE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,4EAA4E;YAC5E,gEAAgE;YAChE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,aAAa,EAAE,CAAC;gBAC5D,sEAAsE;gBACtE,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,kBAAkB;gBAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ;QACN,sEAAsE;QACtE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,0DAA0D;YAC1D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QACrD,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;YAAE,OAAO;QACvD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,qDAAqD;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,KAAoB;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;QAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,4EAA4E;QAC5E,wEAAwE;QACxE,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,mEAAmE;YACnE,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,iCAAiC;YACjC,EAAE;YACF,qEAAqE;YACrE,wEAAwE;YACxE,0EAA0E;YAC1E,qEAAqE;YACrE,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,uEAAuE;YACvE,0EAA0E;YAC1E,uEAAuE;YACvE,2EAA2E;YAC3E,wEAAwE;YACxE,wEAAwE;YACxE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,aAAa;gBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClF,IAAI,IAAI,KAAK,aAAa;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,gBAAgB;YACtB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,MAAM;YACN,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE;YACR,sEAAsE;YACtE,yEAAyE;YACzE,iCAAiC;YACjC,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,wEAAwE;YACxE,0EAA0E;YAC1E,0EAA0E;YAC1E,oEAAoE;YACpE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG;gBACX,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,MAAM;oBACZ,CAAC,CAAC,2CAA2C,MAAM,EAAE;oBACrD,CAAC,CAAC,0FAA0F;aAC/F,CAAC;YACF,0EAA0E;YAC1E,wEAAwE;YACxE,iCAAiC;YACjC,MAAM,MAAM,GAAG,GAAG,CAAE,KAAK,CAAC,IAA4C,EAAE,aAAa,CAAC,CAAC;YACvF,IAAI,MAAM;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;iBAC7B,IAAI,MAAM;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACvC,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,sEAAsE;YACtE,qCAAqC;YACrC,sEAAsE;YACtE,wEAAwE;YACxE,0EAA0E;YAC1E,qEAAqE;YACrE,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACvD,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,gBAAgB;YAChB,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,0EAA0E;YAC1E,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,yEAAyE;QACzE,iEAAiE;QACjE,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IACV,IAAI,CAAM;IACV,UAAU,CAAqB;IAC/B,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD;;;;;;;;;;;;;;;;;OAiBG;IACM,OAAO,GAAG,IAAI,GAAG,EAAkD,CAAC;IAC7E,mFAAmF;IACnF,MAAM,CAAU,eAAe,GAAG,GAAG,CAAC;IACtC,MAAM,CAAkC;IAExC,YAAY,GAAQ,EAAE,YAAgC,kBAAkB;QACtE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC,UAAkB;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAChC,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,UAAkB,EAAE,MAAc,EAAE,QAAQ,GAAG,KAAK;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,QAAQ,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,wEAAwE;YACxE,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe;oBAAE,MAAM;gBACzD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,6EAA6E;IAC7E,QAAQ;QACN,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnC,uEAAuE;gBACvE,sEAAsE;gBACtE,iEAAiE;gBACjE,IAAI,GAAG,CAAC,MAAM,GAAG,YAAY;oBAAE,SAAS;gBACxC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,oDAAoD,EAAE,IAAI,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,uEAAuE;QACvE,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;;AAGH;;;;;GAKG;AACH,MAAM,YAAa,SAAQ,YAAY;CAAG;AAE1C,iFAAiF;AACjF,SAAS,KAAK,CAAC,IAAa;IAC1B,MAAM,IAAI,GACR,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,YAAY,UAAU;YAC1B,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;IAClB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,IAAI,GAAI,KAAiC,CAAC,IAAI,CAAC;IACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,KAAsB,CAAC;AAChC,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE7F,MAAM,IAAI,GAAG,CAAC,CAAU,EAAwB,EAAE,CAChD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG,CAAC,CAAU,EAAyB,EAAE;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAE,CAA6B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAG,CAA6B,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,MAAmB,EAAE,EAAE,CAChD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IAC5B,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAChD,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACZ,SAAS,IAAI;QACX,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
/** A plain text result. */
|
|
3
|
+
export declare const text: (s: string) => CallToolResult;
|
|
4
|
+
/** A JSON result, pretty-printed — models read indented JSON more reliably than one line. */
|
|
5
|
+
export declare const json: (v: unknown) => CallToolResult;
|
|
6
|
+
/** A line of prose followed by the data it describes. */
|
|
7
|
+
export declare const said: (line: string, v?: unknown) => CallToolResult;
|
|
8
|
+
/**
|
|
9
|
+
* A refusal this server decided on its own, rather than one the platform sent.
|
|
10
|
+
*
|
|
11
|
+
* The same thing as `failed`, for the cases that never reach the platform: an
|
|
12
|
+
* argument combination that cannot mean anything, a payload that would write
|
|
13
|
+
* corruption, a purge without the fingerprint that authorises it. Those are
|
|
14
|
+
* failures too, and a caller that reads `isError` to decide whether a step
|
|
15
|
+
* worked would otherwise see a refusal and a success as the same answer.
|
|
16
|
+
*/
|
|
17
|
+
export declare const refused: (line: string, v?: unknown) => CallToolResult;
|
|
18
|
+
/**
|
|
19
|
+
* How many bytes of image this server will put into a model's context.
|
|
20
|
+
*
|
|
21
|
+
* Larger than the text cap because base64 of a screenshot is the one big thing
|
|
22
|
+
* worth carrying, and because a picture is the whole point of this server — but
|
|
23
|
+
* bounded, because an image cannot be truncated and one past this size is not a
|
|
24
|
+
* large answer, it is the end of the conversation.
|
|
25
|
+
*
|
|
26
|
+
* Here rather than in one tool, because every path that produces image content
|
|
27
|
+
* has to observe it: `read_file` did and `screenshot` did not, which left the
|
|
28
|
+
* bound sitting on the smaller of the two.
|
|
29
|
+
*/
|
|
30
|
+
export declare const MAX_INLINE_IMAGE_BYTES: number;
|
|
31
|
+
/**
|
|
32
|
+
* Raster types that MCP image content can carry safely.
|
|
33
|
+
*
|
|
34
|
+
* `image/*` includes `image/svg+xml`, and a client that inlines that MIME as a
|
|
35
|
+
* picture can execute script from it. SVG is XML; it goes through the text /
|
|
36
|
+
* base64 path like any other non-raster file.
|
|
37
|
+
*
|
|
38
|
+
* Here, beside the size cap, for the reason written above it: every path that
|
|
39
|
+
* produces image content has to observe this, and the two paths did not agree.
|
|
40
|
+
* `read_file` checked the allowlist while `screenshot` checked only
|
|
41
|
+
* `startsWith('image/')` — and the case screenshot's check exists for is a
|
|
42
|
+
* proxy or captive portal answering in place of the capture, which is exactly
|
|
43
|
+
* the situation where the bytes are chosen by somebody else.
|
|
44
|
+
*/
|
|
45
|
+
export declare const INLINE_IMAGE_TYPES: ReadonlySet<string>;
|
|
46
|
+
export declare function isInlineImage(contentType: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* A screenshot, as image content.
|
|
49
|
+
*
|
|
50
|
+
* This is the whole reason this server is more than a CLI wrapper: the bytes go
|
|
51
|
+
* into the model's context as a picture it can point at, rather than as a path
|
|
52
|
+
* it would have to open with something else.
|
|
53
|
+
*/
|
|
54
|
+
export declare function image(bytes: Uint8Array, mimeType: string, note?: string): CallToolResult;
|
|
55
|
+
/**
|
|
56
|
+
* A failure the model should read and act on, not an exception the client shows
|
|
57
|
+
* as a protocol error.
|
|
58
|
+
*
|
|
59
|
+
* MCP draws this line deliberately: a transport error is the client's problem,
|
|
60
|
+
* while "the guest agent is not answering yet (the computer may still be
|
|
61
|
+
* booting)" is the model's — it is the sentence that tells it to wait and try
|
|
62
|
+
* again rather than to give up or to report a broken tool. So everything the
|
|
63
|
+
* platform refuses comes back as content with `isError`.
|
|
64
|
+
*/
|
|
65
|
+
export declare function failed(err: unknown): CallToolResult;
|
|
66
|
+
/** Run a tool body, turning anything it throws into a result the model can read. */
|
|
67
|
+
export declare function guarded(fn: () => Promise<CallToolResult>): Promise<CallToolResult>;
|
|
68
|
+
export type Computer = {
|
|
69
|
+
id?: string;
|
|
70
|
+
name?: string;
|
|
71
|
+
status?: string;
|
|
72
|
+
os?: string;
|
|
73
|
+
template?: string;
|
|
74
|
+
cpu?: number;
|
|
75
|
+
ram_mb?: number;
|
|
76
|
+
disk_gb?: number;
|
|
77
|
+
resolution?: string;
|
|
78
|
+
workspace_id?: string;
|
|
79
|
+
created_at?: string;
|
|
80
|
+
build?: {
|
|
81
|
+
started?: string;
|
|
82
|
+
source?: string;
|
|
83
|
+
failed?: boolean;
|
|
84
|
+
};
|
|
85
|
+
suspended?: {
|
|
86
|
+
at?: string;
|
|
87
|
+
};
|
|
88
|
+
idle_suspend_min?: number;
|
|
89
|
+
snapshot_schedule?: unknown;
|
|
90
|
+
unreachable?: boolean;
|
|
91
|
+
start_error?: string;
|
|
92
|
+
vnc?: Record<string, unknown>;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* A create or a clone can answer `{computer, start_error}` rather than a bare
|
|
96
|
+
* computer: the guest was made and then would not boot, so the machine exists
|
|
97
|
+
* and is billable and the caller needs its id. Flattened here, as the SDK
|
|
98
|
+
* flattens it, so every reader of a computer sees the same shape and the
|
|
99
|
+
* failure travels beside the fields rather than wrapping them.
|
|
100
|
+
*/
|
|
101
|
+
export declare function unwrapComputer(body: unknown): Computer;
|
|
102
|
+
/**
|
|
103
|
+
* A computer without its desktop credentials.
|
|
104
|
+
*
|
|
105
|
+
* `vnc` carries a token that is root-equivalent on the machine, and a tool
|
|
106
|
+
* result is a thing that lands in a model's context and from there in whatever
|
|
107
|
+
* captured it. The platform makes the same call one level down — it keeps the
|
|
108
|
+
* credential off list responses so that it is not in every log line that ever
|
|
109
|
+
* held one — and there is no reason for this tier to be looser. `get_desktop_url`
|
|
110
|
+
* hands it over when somebody asks for it, watch-only unless they say otherwise.
|
|
111
|
+
*/
|
|
112
|
+
export declare function withoutCredentials(c: Computer): Computer;
|
|
113
|
+
/**
|
|
114
|
+
* The warning that belongs on a listing the platform said was short.
|
|
115
|
+
*
|
|
116
|
+
* Said in prose and said first, because the reader is a model that will
|
|
117
|
+
* otherwise diff this array against its own idea of the world. A short list is
|
|
118
|
+
* not a smaller truth — it reads exactly like the missing things were deleted,
|
|
119
|
+
* and the obvious next thing to do with something that has disappeared is to
|
|
120
|
+
* tidy up after it.
|
|
121
|
+
*/
|
|
122
|
+
export declare function incompleteWarning(noun: string, incomplete: number | null): string;
|
|
123
|
+
/** The one-line version, for lists and for confirmations. */
|
|
124
|
+
export declare function describe(c: Computer): string;
|
|
125
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,2BAA2B;AAC3B,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,KAAG,cAA4D,CAAC;AAE9F,6FAA6F;AAC7F,eAAO,MAAM,IAAI,GAAI,GAAG,OAAO,KAAG,cAAkD,CAAC;AAErF,yDAAyD;AACzD,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,IAAI,OAAO,KAAG,cAC0B,CAAC;AAE5E;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,IAAI,OAAO,KAAG,cAGlD,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAKjD,CAAC;AAEH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAMxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAqBnD;AAED,oFAAoF;AACpF,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAMxF;AAID,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChE,SAAS,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAgBtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAGxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAUjF;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAM5C"}
|
package/dist/format.js
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { APIError, MandalaError, reasonAdvice } from './errors.js';
|
|
2
|
+
/** A plain text result. */
|
|
3
|
+
export const text = (s) => ({ content: [{ type: 'text', text: s }] });
|
|
4
|
+
/** A JSON result, pretty-printed — models read indented JSON more reliably than one line. */
|
|
5
|
+
export const json = (v) => text(JSON.stringify(v, null, 2));
|
|
6
|
+
/** A line of prose followed by the data it describes. */
|
|
7
|
+
export const said = (line, v) => text(v === undefined ? line : `${line}\n\n${JSON.stringify(v, null, 2)}`);
|
|
8
|
+
/**
|
|
9
|
+
* A refusal this server decided on its own, rather than one the platform sent.
|
|
10
|
+
*
|
|
11
|
+
* The same thing as `failed`, for the cases that never reach the platform: an
|
|
12
|
+
* argument combination that cannot mean anything, a payload that would write
|
|
13
|
+
* corruption, a purge without the fingerprint that authorises it. Those are
|
|
14
|
+
* failures too, and a caller that reads `isError` to decide whether a step
|
|
15
|
+
* worked would otherwise see a refusal and a success as the same answer.
|
|
16
|
+
*/
|
|
17
|
+
export const refused = (line, v) => ({
|
|
18
|
+
...said(line, v),
|
|
19
|
+
isError: true,
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* How many bytes of image this server will put into a model's context.
|
|
23
|
+
*
|
|
24
|
+
* Larger than the text cap because base64 of a screenshot is the one big thing
|
|
25
|
+
* worth carrying, and because a picture is the whole point of this server — but
|
|
26
|
+
* bounded, because an image cannot be truncated and one past this size is not a
|
|
27
|
+
* large answer, it is the end of the conversation.
|
|
28
|
+
*
|
|
29
|
+
* Here rather than in one tool, because every path that produces image content
|
|
30
|
+
* has to observe it: `read_file` did and `screenshot` did not, which left the
|
|
31
|
+
* bound sitting on the smaller of the two.
|
|
32
|
+
*/
|
|
33
|
+
export const MAX_INLINE_IMAGE_BYTES = 8 * 1024 * 1024;
|
|
34
|
+
/**
|
|
35
|
+
* Raster types that MCP image content can carry safely.
|
|
36
|
+
*
|
|
37
|
+
* `image/*` includes `image/svg+xml`, and a client that inlines that MIME as a
|
|
38
|
+
* picture can execute script from it. SVG is XML; it goes through the text /
|
|
39
|
+
* base64 path like any other non-raster file.
|
|
40
|
+
*
|
|
41
|
+
* Here, beside the size cap, for the reason written above it: every path that
|
|
42
|
+
* produces image content has to observe this, and the two paths did not agree.
|
|
43
|
+
* `read_file` checked the allowlist while `screenshot` checked only
|
|
44
|
+
* `startsWith('image/')` — and the case screenshot's check exists for is a
|
|
45
|
+
* proxy or captive portal answering in place of the capture, which is exactly
|
|
46
|
+
* the situation where the bytes are chosen by somebody else.
|
|
47
|
+
*/
|
|
48
|
+
export const INLINE_IMAGE_TYPES = new Set([
|
|
49
|
+
'image/png',
|
|
50
|
+
'image/jpeg',
|
|
51
|
+
'image/gif',
|
|
52
|
+
'image/webp',
|
|
53
|
+
]);
|
|
54
|
+
export function isInlineImage(contentType) {
|
|
55
|
+
return INLINE_IMAGE_TYPES.has(contentType);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A screenshot, as image content.
|
|
59
|
+
*
|
|
60
|
+
* This is the whole reason this server is more than a CLI wrapper: the bytes go
|
|
61
|
+
* into the model's context as a picture it can point at, rather than as a path
|
|
62
|
+
* it would have to open with something else.
|
|
63
|
+
*/
|
|
64
|
+
export function image(bytes, mimeType, note) {
|
|
65
|
+
const content = [
|
|
66
|
+
{ type: 'image', data: Buffer.from(bytes).toString('base64'), mimeType },
|
|
67
|
+
];
|
|
68
|
+
if (note)
|
|
69
|
+
content.unshift({ type: 'text', text: note });
|
|
70
|
+
return { content };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A failure the model should read and act on, not an exception the client shows
|
|
74
|
+
* as a protocol error.
|
|
75
|
+
*
|
|
76
|
+
* MCP draws this line deliberately: a transport error is the client's problem,
|
|
77
|
+
* while "the guest agent is not answering yet (the computer may still be
|
|
78
|
+
* booting)" is the model's — it is the sentence that tells it to wait and try
|
|
79
|
+
* again rather than to give up or to report a broken tool. So everything the
|
|
80
|
+
* platform refuses comes back as content with `isError`.
|
|
81
|
+
*/
|
|
82
|
+
export function failed(err) {
|
|
83
|
+
const message = err instanceof MandalaError || err instanceof Error ? err.message : String(err);
|
|
84
|
+
const status = err?.status;
|
|
85
|
+
const withStatus = status && message !== `HTTP ${status}` ? `${message} (HTTP ${status})` : message;
|
|
86
|
+
// The platform's classification of the refusal, as the sentence it means
|
|
87
|
+
// (OPL-3898). `reason` is one word beside `error`, put there for a program to
|
|
88
|
+
// switch on — and the program on the other end of this tool is a model that
|
|
89
|
+
// sees nothing but the text below. Without this, the only thing distinguishing
|
|
90
|
+
// "something held the clipboard for an instant" from "the computer is stopped"
|
|
91
|
+
// is prose the platform is free to reword, and the model that reads the two
|
|
92
|
+
// the same way retries the second until its turn budget runs out.
|
|
93
|
+
//
|
|
94
|
+
// Appended rather than substituted: the sentence is what says WHICH computer
|
|
95
|
+
// and which state, and the word says only what kind. An unclassified refusal —
|
|
96
|
+
// most of them, and always will be — reads exactly as it did before.
|
|
97
|
+
const advice = err instanceof APIError ? reasonAdvice(err.reason) : undefined;
|
|
98
|
+
return {
|
|
99
|
+
isError: true,
|
|
100
|
+
content: [{ type: 'text', text: advice ? `${withStatus} — ${advice}` : withStatus }],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** Run a tool body, turning anything it throws into a result the model can read. */
|
|
104
|
+
export async function guarded(fn) {
|
|
105
|
+
try {
|
|
106
|
+
return await fn();
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return failed(err);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A create or a clone can answer `{computer, start_error}` rather than a bare
|
|
114
|
+
* computer: the guest was made and then would not boot, so the machine exists
|
|
115
|
+
* and is billable and the caller needs its id. Flattened here, as the SDK
|
|
116
|
+
* flattens it, so every reader of a computer sees the same shape and the
|
|
117
|
+
* failure travels beside the fields rather than wrapping them.
|
|
118
|
+
*/
|
|
119
|
+
export function unwrapComputer(body) {
|
|
120
|
+
if (!body || typeof body !== 'object')
|
|
121
|
+
return {};
|
|
122
|
+
const v = body;
|
|
123
|
+
const inner = v.computer;
|
|
124
|
+
if (inner && typeof inner === 'object') {
|
|
125
|
+
// The outer value wins, but only when there is one. Writing it
|
|
126
|
+
// unconditionally would take a `start_error` the platform had nested with
|
|
127
|
+
// the computer and replace it with nothing — discarding the reason a
|
|
128
|
+
// billable machine did not boot, in the function that exists to surface it.
|
|
129
|
+
const nested = inner;
|
|
130
|
+
return {
|
|
131
|
+
...nested,
|
|
132
|
+
start_error: v.start_error ?? nested.start_error,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return v;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* A computer without its desktop credentials.
|
|
139
|
+
*
|
|
140
|
+
* `vnc` carries a token that is root-equivalent on the machine, and a tool
|
|
141
|
+
* result is a thing that lands in a model's context and from there in whatever
|
|
142
|
+
* captured it. The platform makes the same call one level down — it keeps the
|
|
143
|
+
* credential off list responses so that it is not in every log line that ever
|
|
144
|
+
* held one — and there is no reason for this tier to be looser. `get_desktop_url`
|
|
145
|
+
* hands it over when somebody asks for it, watch-only unless they say otherwise.
|
|
146
|
+
*/
|
|
147
|
+
export function withoutCredentials(c) {
|
|
148
|
+
const { vnc: _vnc, ...rest } = c;
|
|
149
|
+
return rest;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* The warning that belongs on a listing the platform said was short.
|
|
153
|
+
*
|
|
154
|
+
* Said in prose and said first, because the reader is a model that will
|
|
155
|
+
* otherwise diff this array against its own idea of the world. A short list is
|
|
156
|
+
* not a smaller truth — it reads exactly like the missing things were deleted,
|
|
157
|
+
* and the obvious next thing to do with something that has disappeared is to
|
|
158
|
+
* tidy up after it.
|
|
159
|
+
*/
|
|
160
|
+
export function incompleteWarning(noun, incomplete) {
|
|
161
|
+
if (incomplete === null)
|
|
162
|
+
return '';
|
|
163
|
+
const missing = incomplete > 0
|
|
164
|
+
? `${incomplete} of your ${noun} are on a hypervisor that cannot be reached`
|
|
165
|
+
: `a hypervisor cannot be reached, so an unknown number of ${noun} are missing`;
|
|
166
|
+
return (`INCOMPLETE: ${missing}. This list is short. Do not treat anything absent from it ` +
|
|
167
|
+
`as deleted — retry in a moment for a complete answer.\n\n`);
|
|
168
|
+
}
|
|
169
|
+
/** The one-line version, for lists and for confirmations. */
|
|
170
|
+
export function describe(c) {
|
|
171
|
+
const bits = [c.name ?? '(unnamed)', c.id ?? '(no id)', c.status ?? 'unknown'];
|
|
172
|
+
if (c.resolution)
|
|
173
|
+
bits.push(c.resolution);
|
|
174
|
+
if (c.suspended?.at)
|
|
175
|
+
bits.push(`suspended ${c.suspended.at}`);
|
|
176
|
+
if (c.unreachable)
|
|
177
|
+
bits.push('UNREACHABLE — its hypervisor could not be reached');
|
|
178
|
+
return bits.join(' · ');
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Server } from 'node:http';
|
|
2
|
+
import { type ServerConfig } from './server.js';
|
|
3
|
+
export type HttpConfig = Omit<ServerConfig, 'apiKey' | 'activity'> & {
|
|
4
|
+
port: number;
|
|
5
|
+
host: string;
|
|
6
|
+
/** Hosts this server will answer to, for DNS-rebinding protection. */
|
|
7
|
+
allowedHosts?: string[];
|
|
8
|
+
allowedOrigins?: string[];
|
|
9
|
+
/** How long an idle session survives before it is swept, in ms. */
|
|
10
|
+
sessionTtlMs?: number;
|
|
11
|
+
/** How many live sessions this server will hold at once. */
|
|
12
|
+
maxSessions?: number;
|
|
13
|
+
/** How many requests may retain a parsed body above 256 KiB at once. */
|
|
14
|
+
maxLargeBodyParses?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function isLoopbackHost(host: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* One operator-supplied allowlist entry, as the Host headers it should match.
|
|
19
|
+
*
|
|
20
|
+
* Bracket-aware, because that is the whole difficulty: a literal IPv6 address
|
|
21
|
+
* is full of colons and is only a `host:port` when the colon falls after the
|
|
22
|
+
* `]`. Three cases, and only the last is expanded:
|
|
23
|
+
*
|
|
24
|
+
* - already carries a port — left exactly as written. That operator has said
|
|
25
|
+
* which port their callers use, and it need not be the one bound here.
|
|
26
|
+
* - a BARE IPv6 address, unbracketed. `::1` is not a legal Host header and
|
|
27
|
+
* `::1` + `:3000` is `::1:3000`, which nothing can send — so it is BRACKETED
|
|
28
|
+
* into the spellings a client actually sends, rather than left as a dead
|
|
29
|
+
* entry that matches nothing. An operator who writes the address has said
|
|
30
|
+
* which host they mean; the brackets are notation, not a second guess.
|
|
31
|
+
* - anything else — matched with and without the bound port.
|
|
32
|
+
*/
|
|
33
|
+
export declare function hostSpellings(host: string, port: number): string[];
|
|
34
|
+
/**
|
|
35
|
+
* The hosted install: one URL, and every caller brings their own key.
|
|
36
|
+
*
|
|
37
|
+
* The important property of this server is what it does NOT hold. There is no
|
|
38
|
+
* credential of its own, no store, and no state that outlives a session: a
|
|
39
|
+
* caller's `com_…` key arrives as their own bearer token, is used for their
|
|
40
|
+
* requests, and is never written down. What is kept is a digest of it, so that
|
|
41
|
+
* a later request on the same session can be shown to come from the same
|
|
42
|
+
* holder — a session id on its own is then not enough to drive somebody else's
|
|
43
|
+
* desktop, which it otherwise would be.
|
|
44
|
+
*/
|
|
45
|
+
export declare function runHttp(cfg: HttpConfig): Promise<Server>;
|
|
46
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3F,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAgEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWlE;AA+BD;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAonB9D"}
|