@nookplot/cli 0.6.13 → 0.6.15
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/dist/commands/listen.js +46 -0
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/online.js +67 -1068
- package/dist/commands/online.js.map +1 -1
- package/dist/commands/register.d.ts +19 -0
- package/dist/commands/register.js +5 -5
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/skills.d.ts +27 -0
- package/dist/commands/skills.js +502 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/team.d.ts +20 -0
- package/dist/commands/team.js +351 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/up.d.ts +21 -0
- package/dist/commands/up.js +310 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/agentLoop.d.ts +69 -0
- package/dist/utils/agentLoop.js +942 -0
- package/dist/utils/agentLoop.js.map +1 -0
- package/dist/utils/dashboard.d.ts +32 -0
- package/dist/utils/dashboard.js +66 -0
- package/dist/utils/dashboard.js.map +1 -0
- package/dist/utils/skills.d.ts +71 -0
- package/dist/utils/skills.js +240 -0
- package/dist/utils/skills.js.map +1 -0
- package/dist/utils/xmtp.d.ts +41 -0
- package/dist/utils/xmtp.js +91 -0
- package/dist/utils/xmtp.js.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/utils/agentLoop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAqB,MAAM,mBAAmB,CAAC;AAE1G,iEAAiE;AAEjE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAEvD,uEAAuE;AACvE,MAAM,qBAAqB,GAAG;IAC5B,4CAA4C,EAAG,WAAW;IAC1D,2CAA2C,EAAK,0BAA0B;CAC3E,CAAC;AAEF,sFAAsF;AACtF,MAAM,wBAAwB,GAAG;IAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE;CACxD,CAAC;AAEF,sEAAsE;AACtE,MAAM,qBAAqB,GAAG;IAC5B,UAAU;CACX,CAAC;AA4BF,iEAAiE;AAEjE,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAA2B;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAClD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,GAAG,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,GAAG,EAAE,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,IAAI,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,GAAG,EAAE,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAA2B;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,EAAE,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,oBAAoB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,oBAAoB,QAAQ,CAAC,IAAI,SAAS,CAAC;YAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACrB,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,qBAAqB,QAAQ,CAAC,IAAI,gBAAgB,GAAG,EAAE,CAAC,CAAC;gBAC/E,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAA2B;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,GAAG,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,GAAG,EAAE,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,EAAE,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAc;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxD,QAAQ,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE,KAAK,UAAU,YAAY,CACzB,WAAmB,EACnB,OAAgC,EAChC,GAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG;YACnB,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,oDAAoD;YACpD,gDAAgD;YAChD,EAAE;YACF,sBAAuB,OAAO,CAAC,gBAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE;SAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAE5D,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC5F,IAAI,QAAQ;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;QACzF,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAEzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;iBACnD;gBACD,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,GAAG;aACjB,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,GAAG,CAAC,sBAAsB,GAAG,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6D,CAAC;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+C,CAAC;YACjF,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAa,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,SAAiB,EACjB,OAAgC,EAChC,GAA0B;IAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,MAAgB,IAAI,SAAS,CAAC;YACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAA+B,IAAI,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAI,IAAI,CAAC,aAAwB,IAAI,SAAS,CAAC;YAC3D,MAAM,OAAO,GAAI,IAAI,CAAC,WAAsB,IAAI,EAAE,CAAC;YAEnD,IAAI,MAAM,GAAG,2BAA2B,CAAC;YACzC,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,aAAa;oBAChB,MAAM,IAAI,sCAAsC,MAAM,MAAM,OAAO,GAAG,CAAC;oBACvE,MAAM;gBACR,KAAK,iBAAiB,CAAC;gBACvB,KAAK,iBAAiB,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,MAAM,IAAI,2BAA2B,OAAO,UAAU,MAAM,MAAM,OAAO,GAAG,CAAC;oBAC7E,MAAM;gBACR,KAAK,cAAc;oBACjB,MAAM,IAAI,GAAG,MAAM,iCAAiC,CAAC;oBACrD,MAAM;gBACR,KAAK,sBAAsB;oBACzB,MAAM,IAAI,GAAG,MAAM,uCAAuC,CAAC;oBAC3D,MAAM;gBACR,KAAK,iBAAiB,CAAC;gBACvB,KAAK,gBAAgB;oBACnB,MAAM,IAAI,0CAA0C,CAAC;oBACrD,MAAM;gBACR,KAAK,uBAAuB,CAAC;gBAC7B,KAAK,YAAY,CAAC;gBAClB,KAAK,mBAAmB;oBACtB,MAAM,IAAI,uBAAuB,OAAO,GAAG,CAAC;oBAC5C,MAAM;gBACR,KAAK,iBAAiB;oBACpB,MAAM,IAAI,uDAAwD,IAAI,CAAC,aAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,YAAY,CAAE,IAAI,CAAC,UAAqB,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;oBACnL,MAAM;gBACR,KAAK,0BAA0B;oBAC7B,MAAM,IAAI,yCAAyC,CAAC;oBACpD,MAAM;gBACR,KAAK,0BAA0B;oBAC7B,MAAM,IAAI,yCAAyC,CAAC;oBACpD,MAAM;gBACR;oBACE,MAAM,IAAI,UAAU,UAAU,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,CAAC;YACD,MAAM,IAAI,iFAAiF,CAAC;YAE5F,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;gBACzE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7E,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACrB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,MAAM;oBAAE,GAAG,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAEzC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACpC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAAC,OAAO,CAAC,MAAoD,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBAC7F,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACvE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC5E,OAAO;oBACT,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;gBAED,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,GAAG,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iEAAiE;AAEjE,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,oBAAoB;YACvB,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,KAAK,cAAc;YACjB,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,sBAAsB;YACzB,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB;YACnB,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAC9D,KAAK,kBAAkB;YACrB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,oBAAoB;YACvB,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,KAAK,uBAAuB,CAAC;QAC7B,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB;YACtB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,KAAK,eAAe;YAClB,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACxC,KAAK,kBAAkB;YACrB,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,KAAK,yBAAyB;YAC5B,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzC,KAAK,WAAW;YACd,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9M,KAAK,gBAAgB;YACnB,OAAO,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,cAAc;YACjB,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACnC,KAAK,wBAAwB;YAC3B,OAAO,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACvD,KAAK,eAAe;YAClB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvG,KAAK,gBAAgB;YACnB,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QACtD,KAAK,mBAAmB;YACtB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,sBAAsB;YACzB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,iBAAiB;YACpB,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC5C,KAAK,uBAAuB;YAC1B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,aAAa;YAChB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,0BAA0B;YAC7B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,KAAK,yBAAyB;YAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,uBAAuB;YAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,KAAK,wBAAwB;YAC3B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,0BAA0B;YAC7B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,yBAAyB;YAC5B,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,iBAAiB;YACpB,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAC/D,KAAK,0BAA0B,CAAC;QAChC,KAAK,0BAA0B;YAC7B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,cAAc;YACjB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B;YACE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAwB,EACxB,MAAsH,EACtH,MAAkG,EAClG,GAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IAE7D,IAAI,CAAC;QACH,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,OAAO;gBACV,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,MAAM,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,MAAM;oBAAE,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,aAAa,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,MAAM;oBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,aAAa,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,MAAM;oBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,CAAC;gBACxF,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;oBACf,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAa,EAAE,IAAI,EAAE,CAAE,MAAM,CAAC,QAAmB,IAAI,IAAI,CAAkB,EAAE,CAAC,CAAC;gBACzH,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBACnE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAW,CAAC;gBAChE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,OAAkB,IAAI,SAAS,CAAC;gBAClG,MAAM,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC;gBACnC,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;oBAC1B,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CACjC,SAAS,EAAE,QAAQ,EACnB,OAAoD,EACpD,IAAI,CACL,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBACjE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAW,CAAC;gBACjE,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC5E,GAAG,CAAC,cAAc,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,aAAa,qBAAqB,QAAQ,CAAC,WAAW,UAAU,CAAC,CAAC;gBACrH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,cAAc;gBACjB,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,CAAC,CAAC;gBACzG,CAAC;qBAAM,IAAI,SAAS,EAAE,CAAC;oBACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,gCAAgC,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM;YACR,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAK,MAAkC,CAAC,QAAQ,CAAW,CAAC;gBACxF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAW,CAAC;gBAC3D,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EACrC,gBAAgB,MAAM,aAAa,GAAG,eAAe,EACrD,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;oBACjC,GAAG,CAAC,wCAAwC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAK,MAAkC,CAAC,QAAQ,CAAW,CAAC;gBACxF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAW,CAAC;gBAC3D,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EACrC,gBAAgB,MAAM,aAAa,GAAG,cAAc,EACpD,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;oBACjC,GAAG,CAAC,uCAAuC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAK,MAAkC,CAAC,QAAQ,CAAW,CAAC;gBAC7F,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,sBAAsB,QAAQ,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACrG,GAAG,CAAC,8BAA8B,QAAQ,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,IAAI,OAAO,CAAC;gBAC9C,MAAM,IAAI,GAAI,MAAM,CAAC,WAAsB,IAAI,OAAO,IAAI,EAAE,CAAC;gBAC7D,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrH,GAAG,CAAC,iCAAiC,IAAI,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAc,IAAI,OAAO,CAAC;gBAClD,MAAM,QAAQ,GAAI,MAAM,CAAC,WAAsB,IAAI,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAmB,IAAI,QAAQ,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1F,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAChD,MAAM,EAAE,uBAAuB,EAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAC1C,CAAC;oBACF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,EAAE;wBAC9E,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;qBACzD,CAAC,CAAC;oBACH,GAAG,CAAC,+BAA+B,MAAM,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,cAAc,CAAC;YACpB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAwD,CAAC;gBAC9E,MAAM,GAAG,GAAG,OAAO,IAAI,kBAAkB,CAAC;gBAC1C,IAAI,MAAM,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAW,CAAC;gBACpE,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,QAAQ,CAAC;gBACjD,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;oBACzB,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,IAAqC,CAAC,CAAC;gBACpG,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBACjE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAuB,CAAC;gBACtE,IAAI,OAAO,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC3B,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAA4B,CAAC;oBAC/E,MAAM,YAAY,GAAG,CAAE,KAAiC,EAAE,OAAO,IAAI,EAAE,CAAmC,CAAC;oBAC3G,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;oBACzD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;wBAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAK,CAAC,CAAC,OAAkB,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;4BACtE,IAAI,CAAC;gCACH,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,QAAQ,CAAC,CAAC;4BACjF,CAAC;4BAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBACD,GAAG,CAAC,6BAA6B,OAAO,aAAa,GAAG,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC;YACrB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAI,MAAM,CAAC,IAAe,IAAI,OAAO,CAAC;gBACrD,MAAM,aAAa,GAAG,MAAM,CAAC,OAA+B,CAAC;gBAC7D,MAAM,SAAS,GAAI,MAAM,CAAC,WAAsB,IAAI,EAAE,CAAC;gBACvD,IAAI,SAAS,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAClC,OAAO,CAAC,UAAU,EAAE,mBAAmB,EACvC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CACpE,CAAC;oBACF,GAAG,CAAC,8BAA8B,SAAS,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC;YACf,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,SAAS,CAAC;gBAC5D,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC;gBAC/E,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;gBAC3B,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,SAAS;gBACZ,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;oBACzB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,uCAAuC,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,iCAAiC,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAClC,OAAO,CAAC,UAAU,EAClB,uBAAuB,MAAM,aAAa,EAC1C,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAC3C,CAAC;oBACF,GAAG,CAAC,iCAAiC,MAAM,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAW,CAAC;gBAClD,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;oBACpB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,MAAM,QAAQ,EAAE;wBACvE,KAAK;wBACL,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;wBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC,CAAC;oBACH,GAAG,CAAC,8BAA8B,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;gBACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAW,CAAC;gBACvE,IAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC9B,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;oBACzD,GAAG,CAAC,4BAA4B,GAAG,OAAO,MAAM,OAAO,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC;YACrB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAW,CAAC;gBAChE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAgB,CAAC;gBACpC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClB,MAAM,OAAO,GAA4B,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;wBACtC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,IAAI,MAAM,CAAC,MAAM;4BAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBAClD,IAAI,MAAM,CAAC,KAAK;4BAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;wBAC/C,IAAI,MAAM,CAAC,WAAW;4BAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wBACjE,IAAI,MAAM,CAAC,QAAQ;4BAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;wBACxD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;4BAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wBAC/E,IAAI,MAAM,CAAC,MAAM;4BAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBACpD,CAAC;oBACD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,MAAM,UAAU,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC1F,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC;YACnB,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAkB,IAAI,EAAE,CAAC;gBAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;wBAC5D,KAAK,EAAE,MAAM,CAAC,KAA2B;qBAC1C,CAAC,CAAC;oBACH,GAAG,CAAC,oBAAoB,WAAW,CAAC,KAAK,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1F,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,OAAO,IAAK,MAAM,CAAC,WAAsB,IAAI,EAAE,CAAC;gBAC7D,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;wBACrD,WAAW,EAAE,IAAI;wBACjB,cAAc,EAAE,MAAM,CAAC,cAAsC;wBAC7D,QAAQ,EAAE,MAAM,CAAC,QAA8B;qBAChD,CAAC,CAAC;oBACH,GAAG,CAAC,8BAA8B,UAAU,CAAC,OAAO,CAAC,MAAM,aAAa,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClI,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC;YACzB,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,YAAY,IAAK,MAAkC,CAAC,YAAY,CAAW,CAAC;gBAClG,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC1E,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBACvF,GAAG,CAAC,8BAA8B,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,MAAM;YACR;gBACE,GAAG,CAAC,8BAA8B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,6BAA6B,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,SAAS,EAAE,CAAC;IAEZ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAC3F,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAExC,MAAM,KAAK,GAAmB;QAC5B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAmB,CAAC;KAC1C,CAAC;IAEF,SAAS,UAAU,CAAC,KAAc;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1C,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,wCAAwC;IACxC,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,WAAW;QAAE,GAAG,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IACzD,IAAI,QAAQ;QAAE,GAAG,CAAC,qBAAqB,QAAQ,MAAM,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAE7F,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,OAAO;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;KAC3C,CAAC,CAAC;IAEH,IAAI,iBAAiB,GAA2B,IAAI,CAAC;IAErD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO;QAC3B,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxB,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1D,GAAG,CAAC,SAAS,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE1B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,qBAAqB;IACrB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,OAAO,KAAK,CAAC,OAAO,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;YACpC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC,CAAC;YAEZ,mBAAmB;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC/C,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,WAAW,IAAI,SAAS,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAExB,2BAA2B;YAC3B,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxD,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,sBAAsB;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE;oBAC9C,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;wBACzB,KAAK,CAAC,UAAU,EAAE,CAAC;wBACnB,MAAM,OAAO,GAAG;4BACd,IAAI,EAAE,kBAAkB;4BACxB,MAAM,EAAE,MAAM,CAAC,UAAU;4BACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,IAAI,EAAE;gCACJ,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;gCAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;gCACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,OAAO,EAAE,MAAM,CAAC,cAAc;gCAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,SAAS,EAAG,MAAkC,CAAC,SAAS;gCACxD,QAAQ,EAAG,MAAkC,CAAC,QAAQ;gCACtD,WAAW,EAAG,MAAkC,CAAC,WAAW;gCAC5D,MAAM,EAAG,MAAkC,CAAC,MAAM;6BACnD;4BACD,gBAAgB,EAAE,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;yBACzD,CAAC;wBAEF,UAAU,CAAC,OAAO,CAAC,CAAC;wBACpB,GAAG,CAAC,YAAY,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAE3K,6BAA6B;wBAC7B,IAAI,OAAO,EAAE,CAAC;4BACZ,IAAI,CAAC;gCACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gCAChF,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;gCACnD,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;gCAEnB,IAAI,MAAM,GAAG,EAAE,CAAC;gCAChB,IAAI,MAAM,GAAG,EAAE,CAAC;gCAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oCAC3B,IAAI,MAAM;wCAAE,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oCAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;oCAC/B,IAAI,CAAC,QAAQ;wCAAE,OAAO;oCAEtB,IAAI,CAAC;wCACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA+C,CAAC;wCAClF,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;wCACvD,KAAK,CAAC,WAAW,EAAE,CAAC;wCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oCACxD,CAAC;oCAAC,MAAM,CAAC;wCACP,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;4CACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wCAC1E,CAAC;6CAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;4CAChC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wCAC5F,CAAC;wCACD,KAAK,CAAC,WAAW,EAAE,CAAC;wCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oCAClD,CAAC;gCACH,CAAC,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,GAAG,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACrF,CAAC;4BACD,OAAO;wBACT,CAAC;wBAED,wBAAwB;wBACxB,IAAI,UAAU,GAAG,KAAK,CAAC;wBACvB,IAAI,WAAW,EAAE,CAAC;4BAChB,IAAI,CAAC;gCACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gCAC/D,IAAI,QAAQ,EAAE,CAAC;oCACb,UAAU,GAAG,IAAI,CAAC;oCAClB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wCACjC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;4CACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gDAClE,GAAG,CAAC,qCAAqC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4CACzF,CAAC,CAAC,CAAC;wCACL,CAAC;6CAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;4CAChC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gDACpF,GAAG,CAAC,gCAAgC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4CACpF,CAAC,CAAC,CAAC;wCACL,CAAC;wCACD,KAAK,CAAC,WAAW,EAAE,CAAC;wCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wCAChD,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;oCAC5N,CAAC;yCAAM,CAAC;wCACN,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAsD,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;wCACvG,KAAK,CAAC,WAAW,EAAE,CAAC;wCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;wCACxD,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAG,QAAoC,CAAC,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;oCACnQ,CAAC;gCACH,CAAC;4BACH,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,GAAG,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChF,CAAC;4BACD,IAAI,UAAU;gCAAE,OAAO;wBACzB,CAAC;wBAED,wBAAwB;wBACxB,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,CAAC;gCACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gCAC5D,IAAI,CAAC,QAAQ;oCAAE,OAAO;gCAEtB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oCACjC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wCACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oCAC1E,CAAC;yCAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;wCAChC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oCAC5F,CAAC;oCACD,KAAK,CAAC,WAAW,EAAE,CAAC;oCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oCAChD,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;gCAC5N,CAAC;qCAAM,CAAC;oCACN,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAsD,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oCACvG,KAAK,CAAC,WAAW,EAAE,CAAC;oCACpB,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oCACxD,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAG,QAAoC,CAAC,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;gCACnQ,CAAC;4BACH,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,GAAG,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChF,CAAC;4BACD,OAAO;wBACT,CAAC;wBAED,4CAA4C;oBAC9C,CAAC;oBACD,gBAAgB,EAAE,EAAE;iBACrB,CAAC,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAC/B,CAAC;YAED,0BAA0B;YAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAmB,EAAE,EAAE;gBAClD,IAAI,CAAC,QAAQ;oBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;gBACjB,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,aAAa;YACb,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAExD,+BAA+B;gBAC/B,IAAI,CAAC;oBACH,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;wBACpC,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;4BAClC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;4BAC/C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;4BAC1E,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;4BACrC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBAC7B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3D,GAAG,CAAC,8BAA8B,OAAO,IAAI,UAAU,MAAM,GAAG,iBAAiB,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC;YACrG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1B,GAAG,CAAC,gBAAgB,UAAU,wBAAwB,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,EAAE,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compact foreground status display for `nookplot up`.
|
|
3
|
+
*
|
|
4
|
+
* Simple console.log lines — no TUI framework, no ANSI cursor tricks.
|
|
5
|
+
*
|
|
6
|
+
* @module utils/dashboard
|
|
7
|
+
*/
|
|
8
|
+
export interface DashboardState {
|
|
9
|
+
agentName?: string;
|
|
10
|
+
agentAddress?: string;
|
|
11
|
+
credits?: number;
|
|
12
|
+
skillCount?: number;
|
|
13
|
+
reactive?: boolean;
|
|
14
|
+
agentApiUrl?: string | null;
|
|
15
|
+
xmtpEnabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print the startup banner showing agent info, skills, and balance.
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderStartupBanner(state: DashboardState): void;
|
|
21
|
+
/**
|
|
22
|
+
* Print a single event/action line to the scrolling area.
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderEventLine(signal: string, action: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Print uptime, event count, and actions taken on exit.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderShutdownSummary(state: {
|
|
29
|
+
startedAt: Date;
|
|
30
|
+
eventCount: number;
|
|
31
|
+
actionCount: number;
|
|
32
|
+
}): void;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compact foreground status display for `nookplot up`.
|
|
3
|
+
*
|
|
4
|
+
* Simple console.log lines — no TUI framework, no ANSI cursor tricks.
|
|
5
|
+
*
|
|
6
|
+
* @module utils/dashboard
|
|
7
|
+
*/
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
/**
|
|
10
|
+
* Print the startup banner showing agent info, skills, and balance.
|
|
11
|
+
*/
|
|
12
|
+
export function renderStartupBanner(state) {
|
|
13
|
+
const addrShort = state.agentAddress
|
|
14
|
+
? `${state.agentAddress.slice(0, 6)}...${state.agentAddress.slice(-4)}`
|
|
15
|
+
: "unknown";
|
|
16
|
+
const name = state.agentName || "agent";
|
|
17
|
+
const credits = state.credits !== undefined ? `${state.credits.toFixed(2)} credits` : "-- credits";
|
|
18
|
+
const skills = state.skillCount !== undefined ? `${state.skillCount} skills` : "";
|
|
19
|
+
console.log("");
|
|
20
|
+
console.log(chalk.bold(" nookplot up"));
|
|
21
|
+
console.log(chalk.dim(" " + "\u2500".repeat(45)));
|
|
22
|
+
console.log(` ${chalk.bold(name)} ${chalk.dim(addrShort)} | ${chalk.cyan(credits)}${skills ? ` | ${skills}` : ""}`);
|
|
23
|
+
const parts = [];
|
|
24
|
+
parts.push(chalk.green("Online"));
|
|
25
|
+
if (state.reactive !== false)
|
|
26
|
+
parts.push("Reactive");
|
|
27
|
+
if (state.agentApiUrl)
|
|
28
|
+
parts.push(`Agent API: ${state.agentApiUrl}`);
|
|
29
|
+
if (state.xmtpEnabled)
|
|
30
|
+
parts.push("XMTP");
|
|
31
|
+
console.log(` ${parts.join(" | ")}`);
|
|
32
|
+
console.log(chalk.dim(" " + "\u2500".repeat(45)));
|
|
33
|
+
console.log("");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Print a single event/action line to the scrolling area.
|
|
37
|
+
*/
|
|
38
|
+
export function renderEventLine(signal, action) {
|
|
39
|
+
const time = new Date().toLocaleTimeString("en-US", { hour12: false });
|
|
40
|
+
const actionColor = action === "ignore"
|
|
41
|
+
? chalk.dim(action)
|
|
42
|
+
: action === "reply"
|
|
43
|
+
? chalk.green(action)
|
|
44
|
+
: chalk.cyan(action);
|
|
45
|
+
console.log(` ${chalk.dim(`[${time}]`)} ${signal} ${chalk.dim("\u2192")} ${actionColor}`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Print uptime, event count, and actions taken on exit.
|
|
49
|
+
*/
|
|
50
|
+
export function renderShutdownSummary(state) {
|
|
51
|
+
const uptime = Math.floor((Date.now() - state.startedAt.getTime()) / 1000);
|
|
52
|
+
const hours = Math.floor(uptime / 3600);
|
|
53
|
+
const mins = Math.floor((uptime % 3600) / 60);
|
|
54
|
+
const secs = uptime % 60;
|
|
55
|
+
const uptimeStr = hours > 0
|
|
56
|
+
? `${hours}h ${mins}m ${secs}s`
|
|
57
|
+
: mins > 0
|
|
58
|
+
? `${mins}m ${secs}s`
|
|
59
|
+
: `${secs}s`;
|
|
60
|
+
console.log("");
|
|
61
|
+
console.log(chalk.dim(" " + "\u2500".repeat(45)));
|
|
62
|
+
console.log(` Uptime: ${uptimeStr} | Events: ${state.eventCount} | Actions: ${state.actionCount}`);
|
|
63
|
+
console.log(chalk.dim(" " + "\u2500".repeat(45)));
|
|
64
|
+
console.log("");
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/utils/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for skills.yaml loading, validation, hashing, and persistence.
|
|
3
|
+
*
|
|
4
|
+
* skills.yaml is a declarative file that defines marketplace service listings
|
|
5
|
+
* and agent profile capabilities. Change detection via SHA-256 hashing allows
|
|
6
|
+
* `nookplot skills sync` to only update skills that have changed.
|
|
7
|
+
*
|
|
8
|
+
* @module utils/skills
|
|
9
|
+
*/
|
|
10
|
+
/** A single skill definition from skills.yaml. */
|
|
11
|
+
export interface SkillDefinition {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
category: string;
|
|
15
|
+
price?: string;
|
|
16
|
+
pricingModel?: "per-task" | "hourly" | "subscription" | "custom";
|
|
17
|
+
tags?: string[];
|
|
18
|
+
}
|
|
19
|
+
/** Root structure of a skills.yaml file. */
|
|
20
|
+
export interface SkillsConfig {
|
|
21
|
+
skills: SkillDefinition[];
|
|
22
|
+
}
|
|
23
|
+
/** Stored hash entry for change detection. */
|
|
24
|
+
export interface SkillHashEntry {
|
|
25
|
+
hash: string;
|
|
26
|
+
listingId?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load and parse skills.yaml from the given directory or CWD.
|
|
30
|
+
* Returns null if no skills.yaml exists.
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadSkillsFile(dir?: string): SkillsConfig | null;
|
|
33
|
+
/**
|
|
34
|
+
* Get the path to the skills.yaml file (or null if not found).
|
|
35
|
+
*/
|
|
36
|
+
export declare function getSkillsFilePath(dir?: string): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Validate a SkillsConfig. Returns an array of error messages (empty = valid).
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateSkillsConfig(config: SkillsConfig): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Compute a SHA-256 hash of a single skill definition (for change detection).
|
|
43
|
+
* Normalizes the skill object to ensure consistent hashing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function computeSkillHash(skill: SkillDefinition): string;
|
|
46
|
+
/**
|
|
47
|
+
* Compute SHA-256 hash of the entire skills array (for aggregate change detection).
|
|
48
|
+
*/
|
|
49
|
+
export declare function computeSkillsHash(skills: SkillDefinition[]): string;
|
|
50
|
+
/**
|
|
51
|
+
* Load the skills hash store from ~/.nookplot/skills-hashes.json.
|
|
52
|
+
* Returns an empty object if the file doesn't exist.
|
|
53
|
+
*/
|
|
54
|
+
export declare function loadSkillsHashStore(): Record<string, SkillHashEntry>;
|
|
55
|
+
/**
|
|
56
|
+
* Save the skills hash store to ~/.nookplot/skills-hashes.json.
|
|
57
|
+
*/
|
|
58
|
+
export declare function saveSkillsHashStore(store: Record<string, SkillHashEntry>): void;
|
|
59
|
+
/**
|
|
60
|
+
* Convert a pricing model string to the on-chain enum value.
|
|
61
|
+
*/
|
|
62
|
+
export declare function pricingModelToEnum(model: string): number;
|
|
63
|
+
/**
|
|
64
|
+
* Extract unique capability tags from skills for agent profile update.
|
|
65
|
+
* Combines skill names, categories, and tags into a deduplicated list.
|
|
66
|
+
*/
|
|
67
|
+
export declare function extractCapabilities(skills: SkillDefinition[]): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Generate a starter skills.yaml content string.
|
|
70
|
+
*/
|
|
71
|
+
export declare function generateStarterSkillsYaml(): string;
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for skills.yaml loading, validation, hashing, and persistence.
|
|
3
|
+
*
|
|
4
|
+
* skills.yaml is a declarative file that defines marketplace service listings
|
|
5
|
+
* and agent profile capabilities. Change detection via SHA-256 hashing allows
|
|
6
|
+
* `nookplot skills sync` to only update skills that have changed.
|
|
7
|
+
*
|
|
8
|
+
* @module utils/skills
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
14
|
+
import yaml from "js-yaml";
|
|
15
|
+
/** Map of pricing model strings to on-chain enum values. */
|
|
16
|
+
const PRICING_MODEL_MAP = {
|
|
17
|
+
"per-task": 0,
|
|
18
|
+
"hourly": 1,
|
|
19
|
+
"subscription": 2,
|
|
20
|
+
"custom": 3,
|
|
21
|
+
};
|
|
22
|
+
// ── Validation limits ─────────────────────────────────────────
|
|
23
|
+
const MAX_SKILLS = 50;
|
|
24
|
+
const MAX_NAME_LENGTH = 100;
|
|
25
|
+
const MAX_DESCRIPTION_LENGTH = 500;
|
|
26
|
+
const MAX_CATEGORY_LENGTH = 50;
|
|
27
|
+
const MAX_TAG_LENGTH = 50;
|
|
28
|
+
const MAX_TAGS_PER_SKILL = 10;
|
|
29
|
+
// ── State directory ───────────────────────────────────────────
|
|
30
|
+
const NOOKPLOT_DIR = join(homedir(), ".nookplot");
|
|
31
|
+
const SKILLS_HASH_FILE = join(NOOKPLOT_DIR, "skills-hashes.json");
|
|
32
|
+
// ── Loading ───────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Load and parse skills.yaml from the given directory or CWD.
|
|
35
|
+
* Returns null if no skills.yaml exists.
|
|
36
|
+
*/
|
|
37
|
+
export function loadSkillsFile(dir) {
|
|
38
|
+
const searchDir = dir ?? process.cwd();
|
|
39
|
+
const filePath = join(searchDir, "skills.yaml");
|
|
40
|
+
if (!existsSync(filePath)) {
|
|
41
|
+
// Also try .yml extension
|
|
42
|
+
const ymlPath = join(searchDir, "skills.yml");
|
|
43
|
+
if (!existsSync(ymlPath))
|
|
44
|
+
return null;
|
|
45
|
+
return parseSkillsFile(ymlPath);
|
|
46
|
+
}
|
|
47
|
+
return parseSkillsFile(filePath);
|
|
48
|
+
}
|
|
49
|
+
function parseSkillsFile(filePath) {
|
|
50
|
+
try {
|
|
51
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
52
|
+
const parsed = yaml.load(raw);
|
|
53
|
+
if (!parsed || !Array.isArray(parsed.skills))
|
|
54
|
+
return null;
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the path to the skills.yaml file (or null if not found).
|
|
63
|
+
*/
|
|
64
|
+
export function getSkillsFilePath(dir) {
|
|
65
|
+
const searchDir = dir ?? process.cwd();
|
|
66
|
+
const yamlPath = join(searchDir, "skills.yaml");
|
|
67
|
+
if (existsSync(yamlPath))
|
|
68
|
+
return yamlPath;
|
|
69
|
+
const ymlPath = join(searchDir, "skills.yml");
|
|
70
|
+
if (existsSync(ymlPath))
|
|
71
|
+
return ymlPath;
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
// ── Validation ────────────────────────────────────────────────
|
|
75
|
+
/**
|
|
76
|
+
* Validate a SkillsConfig. Returns an array of error messages (empty = valid).
|
|
77
|
+
*/
|
|
78
|
+
export function validateSkillsConfig(config) {
|
|
79
|
+
const errors = [];
|
|
80
|
+
if (!config.skills || !Array.isArray(config.skills)) {
|
|
81
|
+
errors.push("skills must be an array");
|
|
82
|
+
return errors;
|
|
83
|
+
}
|
|
84
|
+
if (config.skills.length > MAX_SKILLS) {
|
|
85
|
+
errors.push(`Maximum ${MAX_SKILLS} skills allowed (found ${config.skills.length})`);
|
|
86
|
+
}
|
|
87
|
+
const names = new Set();
|
|
88
|
+
for (let i = 0; i < config.skills.length; i++) {
|
|
89
|
+
const skill = config.skills[i];
|
|
90
|
+
const prefix = `skills[${i}]`;
|
|
91
|
+
if (!skill.name || typeof skill.name !== "string") {
|
|
92
|
+
errors.push(`${prefix}: name is required`);
|
|
93
|
+
}
|
|
94
|
+
else if (skill.name.length > MAX_NAME_LENGTH) {
|
|
95
|
+
errors.push(`${prefix}: name must be <= ${MAX_NAME_LENGTH} chars`);
|
|
96
|
+
}
|
|
97
|
+
else if (names.has(skill.name)) {
|
|
98
|
+
errors.push(`${prefix}: duplicate name "${skill.name}"`);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
names.add(skill.name);
|
|
102
|
+
}
|
|
103
|
+
if (!skill.description || typeof skill.description !== "string") {
|
|
104
|
+
errors.push(`${prefix}: description is required`);
|
|
105
|
+
}
|
|
106
|
+
else if (skill.description.length > MAX_DESCRIPTION_LENGTH) {
|
|
107
|
+
errors.push(`${prefix}: description must be <= ${MAX_DESCRIPTION_LENGTH} chars`);
|
|
108
|
+
}
|
|
109
|
+
if (!skill.category || typeof skill.category !== "string") {
|
|
110
|
+
errors.push(`${prefix}: category is required`);
|
|
111
|
+
}
|
|
112
|
+
else if (skill.category.length > MAX_CATEGORY_LENGTH) {
|
|
113
|
+
errors.push(`${prefix}: category must be <= ${MAX_CATEGORY_LENGTH} chars`);
|
|
114
|
+
}
|
|
115
|
+
if (skill.price !== undefined) {
|
|
116
|
+
const price = parseFloat(skill.price);
|
|
117
|
+
if (isNaN(price) || price < 0) {
|
|
118
|
+
errors.push(`${prefix}: price must be a non-negative number`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (skill.pricingModel !== undefined) {
|
|
122
|
+
if (!(skill.pricingModel in PRICING_MODEL_MAP)) {
|
|
123
|
+
errors.push(`${prefix}: pricingModel must be one of: ${Object.keys(PRICING_MODEL_MAP).join(", ")}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (skill.tags !== undefined) {
|
|
127
|
+
if (!Array.isArray(skill.tags)) {
|
|
128
|
+
errors.push(`${prefix}: tags must be an array`);
|
|
129
|
+
}
|
|
130
|
+
else if (skill.tags.length > MAX_TAGS_PER_SKILL) {
|
|
131
|
+
errors.push(`${prefix}: maximum ${MAX_TAGS_PER_SKILL} tags per skill`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
for (const tag of skill.tags) {
|
|
135
|
+
if (typeof tag !== "string" || tag.length > MAX_TAG_LENGTH) {
|
|
136
|
+
errors.push(`${prefix}: each tag must be a string <= ${MAX_TAG_LENGTH} chars`);
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return errors;
|
|
144
|
+
}
|
|
145
|
+
// ── Hashing ───────────────────────────────────────────────────
|
|
146
|
+
/**
|
|
147
|
+
* Compute a SHA-256 hash of a single skill definition (for change detection).
|
|
148
|
+
* Normalizes the skill object to ensure consistent hashing.
|
|
149
|
+
*/
|
|
150
|
+
export function computeSkillHash(skill) {
|
|
151
|
+
const normalized = {
|
|
152
|
+
name: skill.name,
|
|
153
|
+
description: skill.description,
|
|
154
|
+
category: skill.category,
|
|
155
|
+
price: skill.price ?? "0",
|
|
156
|
+
pricingModel: skill.pricingModel ?? "per-task",
|
|
157
|
+
tags: [...(skill.tags ?? [])].sort(),
|
|
158
|
+
};
|
|
159
|
+
return createHash("sha256").update(JSON.stringify(normalized)).digest("hex");
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Compute SHA-256 hash of the entire skills array (for aggregate change detection).
|
|
163
|
+
*/
|
|
164
|
+
export function computeSkillsHash(skills) {
|
|
165
|
+
const normalized = skills
|
|
166
|
+
.map((s) => computeSkillHash(s))
|
|
167
|
+
.sort()
|
|
168
|
+
.join("|");
|
|
169
|
+
return createHash("sha256").update(normalized).digest("hex");
|
|
170
|
+
}
|
|
171
|
+
// ── Hash store persistence ────────────────────────────────────
|
|
172
|
+
/**
|
|
173
|
+
* Load the skills hash store from ~/.nookplot/skills-hashes.json.
|
|
174
|
+
* Returns an empty object if the file doesn't exist.
|
|
175
|
+
*/
|
|
176
|
+
export function loadSkillsHashStore() {
|
|
177
|
+
if (!existsSync(SKILLS_HASH_FILE))
|
|
178
|
+
return {};
|
|
179
|
+
try {
|
|
180
|
+
const raw = readFileSync(SKILLS_HASH_FILE, "utf-8");
|
|
181
|
+
return JSON.parse(raw);
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Save the skills hash store to ~/.nookplot/skills-hashes.json.
|
|
189
|
+
*/
|
|
190
|
+
export function saveSkillsHashStore(store) {
|
|
191
|
+
if (!existsSync(NOOKPLOT_DIR)) {
|
|
192
|
+
mkdirSync(NOOKPLOT_DIR, { recursive: true });
|
|
193
|
+
}
|
|
194
|
+
writeFileSync(SKILLS_HASH_FILE, JSON.stringify(store, null, 2), "utf-8");
|
|
195
|
+
}
|
|
196
|
+
// ── Pricing model mapping ─────────────────────────────────────
|
|
197
|
+
/**
|
|
198
|
+
* Convert a pricing model string to the on-chain enum value.
|
|
199
|
+
*/
|
|
200
|
+
export function pricingModelToEnum(model) {
|
|
201
|
+
return PRICING_MODEL_MAP[model] ?? 0;
|
|
202
|
+
}
|
|
203
|
+
// ── Aggregate capabilities ────────────────────────────────────
|
|
204
|
+
/**
|
|
205
|
+
* Extract unique capability tags from skills for agent profile update.
|
|
206
|
+
* Combines skill names, categories, and tags into a deduplicated list.
|
|
207
|
+
*/
|
|
208
|
+
export function extractCapabilities(skills) {
|
|
209
|
+
const caps = new Set();
|
|
210
|
+
for (const skill of skills) {
|
|
211
|
+
caps.add(skill.name);
|
|
212
|
+
caps.add(skill.category);
|
|
213
|
+
if (skill.tags) {
|
|
214
|
+
for (const tag of skill.tags)
|
|
215
|
+
caps.add(tag);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Limit to 20 capabilities (gateway constraint from registration)
|
|
219
|
+
return [...caps].slice(0, 20);
|
|
220
|
+
}
|
|
221
|
+
// ── Starter template ──────────────────────────────────────────
|
|
222
|
+
/**
|
|
223
|
+
* Generate a starter skills.yaml content string.
|
|
224
|
+
*/
|
|
225
|
+
export function generateStarterSkillsYaml() {
|
|
226
|
+
return `# skills.yaml — Declarative skill definitions for your Nookplot agent
|
|
227
|
+
#
|
|
228
|
+
# Each skill becomes a marketplace listing and updates your agent's profile.
|
|
229
|
+
# Run \`nookplot skills sync\` to publish changes to the network.
|
|
230
|
+
|
|
231
|
+
skills:
|
|
232
|
+
- name: example-skill
|
|
233
|
+
description: "Describe what this skill does"
|
|
234
|
+
category: ai
|
|
235
|
+
# price: "0.50" # USDC per task (optional — omit for free)
|
|
236
|
+
# pricingModel: per-task # per-task | hourly | subscription | custom
|
|
237
|
+
tags: [example]
|
|
238
|
+
`;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/utils/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI-side XMTP bridge initialization helper.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the runtime XmtpManager for use in the `nookplot up` foreground
|
|
5
|
+
* and `nookplot online start` daemon flows. Handles graceful degradation
|
|
6
|
+
* when `@xmtp/agent-sdk` is not installed.
|
|
7
|
+
*
|
|
8
|
+
* @module utils/xmtp
|
|
9
|
+
*/
|
|
10
|
+
interface XmtpBridgeConfig {
|
|
11
|
+
gateway: string;
|
|
12
|
+
apiKey: string;
|
|
13
|
+
privateKey?: string;
|
|
14
|
+
}
|
|
15
|
+
interface XmtpMessage {
|
|
16
|
+
senderAddress: string;
|
|
17
|
+
content: string;
|
|
18
|
+
conversationId: string;
|
|
19
|
+
timestamp: Date;
|
|
20
|
+
}
|
|
21
|
+
interface XmtpManagerLike {
|
|
22
|
+
start(): Promise<void>;
|
|
23
|
+
stop(): Promise<void>;
|
|
24
|
+
send(to: string, content: string): Promise<void>;
|
|
25
|
+
isReachable(address: string): Promise<boolean>;
|
|
26
|
+
onMessage(handler: (msg: XmtpMessage) => void | Promise<void>): void;
|
|
27
|
+
isRunning: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Initialize the XMTP bridge. Starts the XmtpManager and wires incoming
|
|
31
|
+
* XMTP messages to the gateway inbox as `messageType: "xmtp"`.
|
|
32
|
+
*
|
|
33
|
+
* Returns the manager instance for use in the agent loop, or null if
|
|
34
|
+
* XMTP is unavailable.
|
|
35
|
+
*/
|
|
36
|
+
export declare function initXmtpBridge(config: XmtpBridgeConfig, log: (msg: string) => void): Promise<XmtpManagerLike | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if XMTP is available (i.e., `@xmtp/agent-sdk` is importable).
|
|
39
|
+
*/
|
|
40
|
+
export declare function isXmtpAvailable(): Promise<boolean>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI-side XMTP bridge initialization helper.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the runtime XmtpManager for use in the `nookplot up` foreground
|
|
5
|
+
* and `nookplot online start` daemon flows. Handles graceful degradation
|
|
6
|
+
* when `@xmtp/agent-sdk` is not installed.
|
|
7
|
+
*
|
|
8
|
+
* @module utils/xmtp
|
|
9
|
+
*/
|
|
10
|
+
import { gatewayRequest } from "./http.js";
|
|
11
|
+
// ── Public API ────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Initialize the XMTP bridge. Starts the XmtpManager and wires incoming
|
|
14
|
+
* XMTP messages to the gateway inbox as `messageType: "xmtp"`.
|
|
15
|
+
*
|
|
16
|
+
* Returns the manager instance for use in the agent loop, or null if
|
|
17
|
+
* XMTP is unavailable.
|
|
18
|
+
*/
|
|
19
|
+
export async function initXmtpBridge(config, log) {
|
|
20
|
+
if (!config.privateKey) {
|
|
21
|
+
log("XMTP bridge requires a private key — skipping");
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
// Dynamic import of the runtime XmtpManager
|
|
25
|
+
let XmtpManager;
|
|
26
|
+
try {
|
|
27
|
+
const mod = await import("@nookplot/runtime");
|
|
28
|
+
XmtpManager = mod.XmtpManager;
|
|
29
|
+
if (!XmtpManager) {
|
|
30
|
+
throw new Error("XmtpManager not exported from @nookplot/runtime");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// If runtime doesn't export it, try direct import
|
|
35
|
+
try {
|
|
36
|
+
const xmtpMod = await import("@xmtp/agent-sdk");
|
|
37
|
+
if (!xmtpMod)
|
|
38
|
+
throw new Error("not available");
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
throw new Error("XMTP bridge requires @xmtp/agent-sdk. Install with: npm install @xmtp/agent-sdk");
|
|
42
|
+
}
|
|
43
|
+
// Re-throw original error — XmtpManager should exist in runtime
|
|
44
|
+
throw new Error("XmtpManager not found in @nookplot/runtime. Ensure you have the latest version.");
|
|
45
|
+
}
|
|
46
|
+
const manager = new XmtpManager({
|
|
47
|
+
privateKey: config.privateKey,
|
|
48
|
+
env: "production",
|
|
49
|
+
bridgeToGateway: true,
|
|
50
|
+
}, log);
|
|
51
|
+
// Wire incoming XMTP messages to gateway inbox
|
|
52
|
+
manager.onMessage(async (msg) => {
|
|
53
|
+
log(`XMTP message from ${msg.senderAddress.slice(0, 10)}...`);
|
|
54
|
+
// Forward to gateway inbox
|
|
55
|
+
try {
|
|
56
|
+
await gatewayRequest(config.gateway, "POST", "/v1/inbox/send", {
|
|
57
|
+
apiKey: config.apiKey,
|
|
58
|
+
body: {
|
|
59
|
+
to: "self",
|
|
60
|
+
messageType: "xmtp",
|
|
61
|
+
content: msg.content,
|
|
62
|
+
metadata: {
|
|
63
|
+
xmtpSenderAddress: msg.senderAddress,
|
|
64
|
+
xmtpConversationId: msg.conversationId,
|
|
65
|
+
xmtpTimestamp: msg.timestamp.toISOString(),
|
|
66
|
+
bridged: true,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
log(`XMTP gateway bridge failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
await manager.start();
|
|
76
|
+
log("XMTP bridge active");
|
|
77
|
+
return manager;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Check if XMTP is available (i.e., `@xmtp/agent-sdk` is importable).
|
|
81
|
+
*/
|
|
82
|
+
export async function isXmtpAvailable() {
|
|
83
|
+
try {
|
|
84
|
+
await import("@xmtp/agent-sdk");
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=xmtp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmtp.js","sourceRoot":"","sources":["../../src/utils/xmtp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA0B3C,iEAAiE;AAEjE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAwB,EACxB,GAA0B;IAE1B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAGgB,CAAC;IAErB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9C,WAAW,GAAI,GAA+B,CAAC,WAAiC,CAAC;QACjF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAC7B;QACE,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,EAAE,YAAY;QACjB,eAAe,EAAE,IAAI;KACtB,EACD,GAAG,CACJ,CAAC;IAEF,+CAA+C;IAC/C,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC3C,GAAG,CAAC,qBAAqB,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE9D,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,cAAc,CAClB,MAAM,CAAC,OAAO,EACd,MAAM,EACN,gBAAgB,EAChB;gBACE,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE;oBACJ,EAAE,EAAE,MAAM;oBACV,WAAW,EAAE,MAAM;oBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,QAAQ,EAAE;wBACR,iBAAiB,EAAE,GAAG,CAAC,aAAa;wBACpC,kBAAkB,EAAE,GAAG,CAAC,cAAc;wBACtC,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;wBAC1C,OAAO,EAAE,IAAI;qBACd;iBACF;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|