@kernel.chat/kbot 3.37.0 → 3.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -7
- package/dist/agent-teams.d.ts +55 -0
- package/dist/agent-teams.d.ts.map +1 -0
- package/dist/agent-teams.js +135 -0
- package/dist/agent-teams.js.map +1 -0
- package/dist/autonomous-contributor.d.ts +88 -0
- package/dist/autonomous-contributor.d.ts.map +1 -0
- package/dist/autonomous-contributor.js +862 -0
- package/dist/autonomous-contributor.js.map +1 -0
- package/dist/collective-network.d.ts +102 -0
- package/dist/collective-network.d.ts.map +1 -0
- package/dist/collective-network.js +634 -0
- package/dist/collective-network.js.map +1 -0
- package/dist/community-autopilot.d.ts +98 -0
- package/dist/community-autopilot.d.ts.map +1 -0
- package/dist/community-autopilot.js +676 -0
- package/dist/community-autopilot.js.map +1 -0
- package/dist/cross-device-sync.d.ts +36 -0
- package/dist/cross-device-sync.d.ts.map +1 -0
- package/dist/cross-device-sync.js +532 -0
- package/dist/cross-device-sync.js.map +1 -0
- package/dist/forge-marketplace-server.d.ts +23 -0
- package/dist/forge-marketplace-server.d.ts.map +1 -0
- package/dist/forge-marketplace-server.js +457 -0
- package/dist/forge-marketplace-server.js.map +1 -0
- package/dist/hooks-integration.d.ts +89 -0
- package/dist/hooks-integration.d.ts.map +1 -0
- package/dist/hooks-integration.js +457 -0
- package/dist/hooks-integration.js.map +1 -0
- package/dist/plugin/index.d.ts +71 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +133 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/voice-loop.d.ts +59 -0
- package/dist/voice-loop.d.ts.map +1 -0
- package/dist/voice-loop.js +525 -0
- package/dist/voice-loop.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-autopilot.js","sourceRoot":"","sources":["../src/community-autopilot.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,EAAE;AACF,SAAS;AACT,oGAAoG;AACpG,EAAE;AACF,sBAAsB;AACtB,sGAAsG;AACtG,EAAE;AACF,mBAAmB;AACnB,qGAAqG;AACrG,kBAAkB;AAClB,oBAAoB;AAEpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAiG7C,cAAc;AAEd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAA;AAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;AACrD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AAqBjD,SAAS,YAAY;IACnB,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,CAAC;KACd,CAAA;AACH,CAAC;AAED,gBAAgB;AAEhB,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,SAAS,CAAC,aAAa,CAAC,CAAA;IACxB,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAA;IAClE,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,YAAY,CAAI,IAAY,EAAE,QAAW;IAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IACtC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAM,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAa;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACxC,SAAS,CAAC,GAAG,CAAC,CAAA;IACd,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,YAAY,CAAiB,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,KAAqB;IACtC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,mBAAmB;AAEnB,KAAK,UAAU,OAAO,CAAI,QAAgB,EAAE,IAAY;IACtD,MAAM,GAAG,GAAG,gCAAgC,IAAI,GAAG,QAAQ,EAAE,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE;gBACP,QAAQ,EAAE,gCAAgC;gBAC1C,YAAY,EAAE,oBAAoB;aACnC;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACxB,OAAO,MAAM,GAAG,CAAC,IAAI,EAAO,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,WAAmB,EAAE,IAAY;IACnE,IAAI,CAAC;QACH,QAAQ,CACN,oBAAoB,WAAW,WAAW,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAC/E,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAClC,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,QAAgB,EAAE,IAAY;IAClE,IAAI,CAAC;QACH,QAAQ,CACN,iBAAiB,QAAQ,WAAW,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EACzE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAClC,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,gBAAgB;AAEhB,KAAK,UAAU,aAAa,CAAC,UAAkB,EAAE,OAAe;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI;YACrC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,qBAAqB;YAChD,CAAC,CAAC,OAAO,CAAA;QAEX,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,EAAE,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,wBAAwB;AAExB,SAAS,aAAa,CAAC,KAAkB;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,IAAI,EAAE,CAAA;IAE/B,yBAAyB;IACzB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACpC,CAAC;IAED,eAAe;IACf,IAAI,kFAAkF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClG,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,+BAA+B,KAAK,CAAC,IAAI,CAAC,KAAK,qMAAqM;SAC/P,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,sFAAsF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtG,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,+BAA+B,KAAK,CAAC,IAAI,CAAC,KAAK,sIAAsI;SAChM,CAAA;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,wFAAwF,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/H,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,6IAA6I;SAC/K,CAAA;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,6DAA6D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7E,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,8BAA8B,KAAK,CAAC,IAAI,CAAC,KAAK,qLAAqL;SAC9O,CAAA;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,gEAAgE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,6GAA6G;SACpJ,CAAA;IACH,CAAC;IAED,UAAU;IACV,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,6BAA6B,KAAK,CAAC,IAAI,CAAC,KAAK,4BAA4B;KACpF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,KAAqB,EACrB,QAAiB;IAEjB,MAAM,OAAO,GAAmB,EAAE,CAAA;IAElC,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,4DAA4D,EAC5D,IAAI,CACL,CAAA;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAA;IAE3B,gFAAgF;IAChF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAE/C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC,CAAC,CAAC,YAAY;QACf,CAAC,CAAC,UAAU,IAAI,SAAS;QACzB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAC1B,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEjC,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK;YACL,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,QAAQ;SACpB,CAAC,CAAA;QAEF,sCAAsC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACzD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,OAAO,KAAK,EAAE;gBACxC,CAAC,CAAC,qBAAqB,KAAK,CAAC,MAAM,mBAAmB,CACvD,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,qBAAqB,KAAK,CAAC,MAAM,yBAAyB,CAAC,CAAA;QACjE,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,2CAA2C;IAC3C,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACrC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,qBAAqB;AAErB,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,KAAqB,EACrB,QAAiB;IAEjB,MAAM,OAAO,GAAqB,EAAE,CAAA;IAEpC,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,2DAA2D,EAC3D,IAAI,CACL,CAAA;IACD,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAA;IAExB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAE1E,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,UAAU,IAAI,SAAS;QACzB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAC3B,CAAA;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAgC,CAAA;QACpC,IAAI,OAAe,CAAA;QAEnB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,OAAO,CAAA;YAChB,OAAO,GAAG,iCAAiC,EAAE,CAAC,IAAI,CAAC,KAAK,kEAAkE,CAAA;QAC5H,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,EACrD,IAAI,CACL,CAAA;YAED,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,GAAG,YAAY,CAAA;gBACrB,OAAO,GAAG,wBAAwB,EAAE,CAAC,IAAI,CAAC,KAAK,2CAA2C,CAAA;YAC5F,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;gBACtE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAA;gBAErE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU;yBAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;yBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBAChB,IAAI,CAAC,IAAI,CAAC,CAAA;oBACb,MAAM,GAAG,YAAY,CAAA;oBACrB,OAAO,GAAG,wBAAwB,EAAE,CAAC,IAAI,CAAC,KAAK,+CAA+C,WAAW,wEAAwE,CAAA;gBACnL,CAAC;qBAAM,IAAI,OAAO,EAAE,CAAC;oBACnB,MAAM,GAAG,YAAY,CAAA;oBACrB,OAAO,GAAG,wBAAwB,EAAE,CAAC,IAAI,CAAC,KAAK,2DAA2D,CAAA;gBAC5G,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,YAAY,CAAA;oBACrB,OAAO,GAAG,wBAAwB,EAAE,CAAC,IAAI,CAAC,KAAK,sDAAsD,CAAA;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,EAAE,CAAC,MAAM;YACb,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK;YACrB,MAAM;YACN,OAAO;YACP,GAAG,EAAE,EAAE,CAAC,QAAQ;SACjB,CAAC,CAAA;QAEF,eAAe;QACf,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACvD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,gBAAgB,EAAE,CAAC,MAAM,KAAK,MAAM,GAAG;gBACzC,CAAC,CAAC,wBAAwB,EAAE,CAAC,MAAM,mBAAmB,CACvD,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,wBAAwB,EAAE,CAAC,MAAM,yBAAyB,CAAC,CAAA;QACjE,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,wBAAwB;AAExB,SAAS,OAAO;IACd,OAAO,YAAY,CAAa,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB,EAAE,GAAe;IACjD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEjC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAE1E,IAAI,SAAS,GAAoB,IAAI,CAAA;IACrC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,oCAAoC;QACpC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7C,KAAK,IAAI,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAA;YACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAA;QAC/E,CAAC;QAED,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAA;YACjB,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAChC,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,CAAA;QAC9C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IACzC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,IAAY,EACZ,KAAqB,EACrB,QAAiB;IAEjB,MAAM,OAAO,GAAe,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;IACrB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAEpC,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,4EAA4E,EAC5E,IAAI,CACL,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC,CAAC,CAAC,YAAY;QACf,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,QAAQ,KAAK,CAAC,CACjB,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAEvC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,yBAAyB,KAAK,CAAC,KAAK,CAAC,MAAM,sDAAsD,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gFAAgF,CAAA;YAE3P,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,KAAK,CAAC,KAAK;gBACrB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC1B,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAA;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACxD,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC,iBAAiB,KAAK,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;oBACvF,CAAC,CAAC,yBAAyB,KAAK,CAAC,MAAM,mBAAmB,CAC3D,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,yBAAyB,KAAK,CAAC,MAAM,yBAAyB,CAAC,CAAA;YACrE,CAAC;YAED,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,wBAAwB;AAExB,SAAS,oBAAoB,CAAC,KAAqB;IACjD,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO,IAAI,CAAA;IAEtC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,uDAAuD;IACvD,OAAO,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,KAAqB,EACrB,cAAuB;IAEvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7C,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAEjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAE7E,aAAa;IACb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAG3B,EAAE,EAAE,IAAI,CAAC,CAAA;IAEZ,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,2DAA2D,EAC3D,IAAI,CACL,IAAI,EAAE,CAAA;IAEP,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,0DAA0D,EAC1D,IAAI,CACL,IAAI,EAAE,CAAA;IAEP,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAA;IAE1E,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACjD,MAAM,eAAe,GAAa,EAAE,CAAA;IAEpC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE9C,iBAAiB;IACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,gBAAgB,IAAI,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAa;QACtB,oBAAoB,IAAI,EAAE;QAC1B,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACtC,EAAE;QACF,UAAU;QACV,EAAE;QACF,oBAAoB;QACpB,oBAAoB;QACpB,kBAAkB,SAAS,CAAC,MAAM,IAAI;QACtC,eAAe,MAAM,CAAC,MAAM,IAAI;QAChC,kBAAkB,SAAS,CAAC,MAAM,IAAI;QACtC,aAAa,KAAK,IAAI;QACtB,EAAE;KACH,CAAA;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACjF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAA;QACjF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IAErD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjC,cAAc;IACd,SAAS,CAAC,UAAU,CAAC,CAAA;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5E,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE5C,kBAAkB;IAClB,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAC5D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAExC,MAAM,KAAK,GAAgB;QACzB,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;QAC9B,IAAI;QACJ,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,QAAQ,EAAE,eAAe;QACzB,QAAQ;KACT,CAAA;IAED,GAAG,CAAC,qBAAqB,SAAS,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,SAAS,SAAS,CAAC,MAAM,SAAS,CAAC,CAAA;IACrG,OAAO,KAAK,CAAA;AACd,CAAC;AAED,oCAAoC;AAEpC,KAAK,UAAU,sBAAsB,CACnC,IAAY,EACZ,KAAqB,EACrB,QAAiB;IAEjB,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAEhD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,2DAA2D,EAC3D,IAAI,CACL,IAAI,EAAE,CAAA;IAEP,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,0DAA0D,EAC1D,IAAI,CACL,IAAI,EAAE,CAAA;IAEP,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAA;IAE3D,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAG,IAAoB,CAAC,MAAM,IAAK,IAA4B,CAAC,MAAM,CAAC,CAAA;IAC1F,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAQ;QAErC,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACjD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAQ;QAElC,MAAM,UAAU,GAAG;YACjB,4BAA4B,MAAM,gCAAgC;YAClE,EAAE;YACF,oCAAoC;YACpC,2EAA2E;YAC3E,qDAAqD;YACrD,wDAAwD;YACxD,EAAE;YACF,oFAAoF;SACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEvB,IAAI,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;YAC3D,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,8BAA8B,MAAM,EAAE;gBACxC,CAAC,CAAC,sBAAsB,MAAM,mBAAmB,CAClD,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,sBAAsB,MAAM,yBAAyB,CAAC,CAAA;QAC5D,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE7C,qCAAqC;IACrC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACtC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,mBAAmB;AAEnB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAuB;IAEvB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAC/C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;IACzB,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,CAAC,UAAU,EAAE,CAAA;IAClB,GAAG,CAAC,mBAAmB,KAAK,CAAC,UAAU,iBAAiB,WAAW,EAAE,CAAC,CAAA;IAEtE,mBAAmB;IACnB,IAAI,OAAO,GAAmB,EAAE,CAAA;IAChC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACtF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,GAAqB,EAAE,CAAA;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACnF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,0BAA0B;IAC1B,IAAI,WAAW,GAAe,EAAE,CAAA;IAChC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACtF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,GAAuB,IAAI,CAAA;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QAC3F,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,GAAa,EAAE,CAAA;IAC3B,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACjF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,gBAAgB;IAChB,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhB,MAAM,MAAM,GAAyB;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,MAAM;QACN,MAAM;KACP,CAAA;IAED,GAAG,CACD,SAAS,KAAK,CAAC,UAAU,aAAa;QACtC,GAAG,OAAO,CAAC,MAAM,aAAa,QAAQ,CAAC,MAAM,aAAa;QAC1D,GAAG,WAAW,CAAC,MAAM,kBAAkB,QAAQ,CAAC,MAAM,WAAW;QACjE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CACzD,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uBAAuB;AAEvB,IAAI,cAAc,GAA0C,IAAI,CAAA;AAChE,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAE5B;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,CAAC,2DAA2D,CAAC,CAAA;QAChE,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAA,CAAC,gBAAgB;IAEpE,GAAG,CAAC,wCAAwC,QAAQ,KAAK,CAAC,CAAA;IAC1D,gBAAgB,GAAG,IAAI,CAAA;IAEvB,kBAAkB;IAClB,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACxC,GAAG,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;IAEF,4BAA4B;IAC5B,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,gBAAgB;YAAE,OAAM;QAE7B,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACxC,GAAG,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,QAAQ,CAAC,CAAA;IAEZ,0EAA0E;IAC1E,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QACtF,cAAc,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAChC,OAAM;IACR,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,CAAA;QAC7B,cAAc,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,gBAAgB,GAAG,KAAK,CAAA;IACxB,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,EAAE,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface SyncUploadResult {
|
|
2
|
+
uploaded_bytes: number;
|
|
3
|
+
patterns_synced: number;
|
|
4
|
+
last_sync: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SyncPullResult {
|
|
7
|
+
downloaded_bytes: number;
|
|
8
|
+
new_patterns: number;
|
|
9
|
+
conflicts_resolved: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SyncStatus {
|
|
12
|
+
last_push: string | null;
|
|
13
|
+
last_pull: string | null;
|
|
14
|
+
local_patterns: number;
|
|
15
|
+
cloud_patterns: number;
|
|
16
|
+
in_sync: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface RunOptions {
|
|
19
|
+
/** Override sync URL */
|
|
20
|
+
url?: string;
|
|
21
|
+
/** Auth token (kernel.chat JWT or kn_live_* key) */
|
|
22
|
+
token?: string;
|
|
23
|
+
/** Force push even if no changes detected */
|
|
24
|
+
force?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** Collect all learning data, compress, and upload to sync endpoint.
|
|
27
|
+
* Returns upload stats. */
|
|
28
|
+
export declare function runCrossDeviceSync(options?: RunOptions): Promise<SyncUploadResult>;
|
|
29
|
+
/** Download latest snapshot from cloud and merge with local data.
|
|
30
|
+
* Merge strategy: prefer newer timestamps, higher confidence.
|
|
31
|
+
* Returns download stats. */
|
|
32
|
+
export declare function pullFromCloud(options?: RunOptions): Promise<SyncPullResult>;
|
|
33
|
+
/** Get current sync status across local and cloud. */
|
|
34
|
+
export declare function getSyncStatus(options?: RunOptions): Promise<SyncStatus>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=cross-device-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-device-sync.d.ts","sourceRoot":"","sources":["../src/cross-device-sync.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB;AA+BD,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AA2KD;4BAC4B;AAC5B,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8ExF;AAED;;8BAE8B;AAC9B,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CA8DjF;AAED,sDAAsD;AACtD,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB7E"}
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
// kbot Cross-Device Sync — Same kbot, same memory, same learning, everywhere.
|
|
2
|
+
//
|
|
3
|
+
// Syncs all learning data (patterns, solutions, profile, routing, memory, forge)
|
|
4
|
+
// across devices. Creates compressed snapshots, uploads/downloads via sync endpoint.
|
|
5
|
+
//
|
|
6
|
+
// Device identity: SHA-256 of hostname + username (not reversible).
|
|
7
|
+
// Merge strategy: prefer newer timestamps, higher confidence.
|
|
8
|
+
//
|
|
9
|
+
// Uses only Node built-ins + fetch. No external dependencies.
|
|
10
|
+
import { homedir, hostname, userInfo } from 'node:os';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, } from 'node:fs';
|
|
13
|
+
import { createHash } from 'node:crypto';
|
|
14
|
+
import { gzipSync, gunzipSync } from 'node:zlib';
|
|
15
|
+
const KBOT_DIR = join(homedir(), '.kbot');
|
|
16
|
+
const MEMORY_DIR = join(KBOT_DIR, 'memory');
|
|
17
|
+
const FORGE_DIR = join(KBOT_DIR, 'forge');
|
|
18
|
+
const SYNC_DIR = join(KBOT_DIR, 'sync');
|
|
19
|
+
const SYNC_STATE_FILE = join(SYNC_DIR, 'cross-device-state.json');
|
|
20
|
+
const SYNC_URL = process.env.KBOT_SYNC_URL || 'https://kernel.chat/api/sync';
|
|
21
|
+
// ── Helpers ──
|
|
22
|
+
function ensureDir(dir) {
|
|
23
|
+
if (!existsSync(dir))
|
|
24
|
+
mkdirSync(dir, { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
function loadJSON(path, fallback) {
|
|
27
|
+
try {
|
|
28
|
+
if (existsSync(path)) {
|
|
29
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Corrupt file — return fallback
|
|
34
|
+
}
|
|
35
|
+
return fallback;
|
|
36
|
+
}
|
|
37
|
+
function saveJSON(path, data) {
|
|
38
|
+
const dir = join(path, '..');
|
|
39
|
+
ensureDir(dir);
|
|
40
|
+
writeFileSync(path, JSON.stringify(data, null, 2));
|
|
41
|
+
}
|
|
42
|
+
function loadSyncState() {
|
|
43
|
+
return loadJSON(SYNC_STATE_FILE, {
|
|
44
|
+
lastPush: null,
|
|
45
|
+
lastPull: null,
|
|
46
|
+
cloudPatternCount: 0,
|
|
47
|
+
localSnapshotHash: null,
|
|
48
|
+
cloudSnapshotHash: null,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function saveSyncState(state) {
|
|
52
|
+
ensureDir(SYNC_DIR);
|
|
53
|
+
writeFileSync(SYNC_STATE_FILE, JSON.stringify(state, null, 2));
|
|
54
|
+
}
|
|
55
|
+
// ── Device Fingerprint ──
|
|
56
|
+
/** SHA-256 of hostname + username — deterministic, non-reversible identity */
|
|
57
|
+
function getDeviceFingerprint() {
|
|
58
|
+
const raw = `${hostname()}:${userInfo().username}`;
|
|
59
|
+
return createHash('sha256').update(raw).digest('hex');
|
|
60
|
+
}
|
|
61
|
+
// ── Data Collection ──
|
|
62
|
+
/** Read all learning data from ~/.kbot/ into a unified structure */
|
|
63
|
+
function collectAllData() {
|
|
64
|
+
ensureDir(MEMORY_DIR);
|
|
65
|
+
ensureDir(FORGE_DIR);
|
|
66
|
+
// Patterns, solutions, routing — JSON arrays
|
|
67
|
+
const patterns = loadJSON(join(MEMORY_DIR, 'patterns.json'), []);
|
|
68
|
+
const solutions = loadJSON(join(MEMORY_DIR, 'solutions.json'), []);
|
|
69
|
+
const routing = loadJSON(join(MEMORY_DIR, 'routing.json'), []);
|
|
70
|
+
// Profile — JSON object
|
|
71
|
+
const profile = loadJSON(join(MEMORY_DIR, 'profile.json'), {});
|
|
72
|
+
// Memory — markdown text
|
|
73
|
+
let memory = '';
|
|
74
|
+
const contextPath = join(MEMORY_DIR, 'context.md');
|
|
75
|
+
try {
|
|
76
|
+
if (existsSync(contextPath)) {
|
|
77
|
+
memory = readFileSync(contextPath, 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Not critical
|
|
82
|
+
}
|
|
83
|
+
// Forge tools — read all JSON files from forge directory
|
|
84
|
+
const forge = [];
|
|
85
|
+
try {
|
|
86
|
+
const files = readdirSync(FORGE_DIR).filter(f => f.endsWith('.json'));
|
|
87
|
+
for (const file of files) {
|
|
88
|
+
try {
|
|
89
|
+
const tool = JSON.parse(readFileSync(join(FORGE_DIR, file), 'utf-8'));
|
|
90
|
+
forge.push(tool);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Skip corrupt tool files
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Forge dir might not exist yet
|
|
99
|
+
}
|
|
100
|
+
return { patterns, solutions, profile, routing, memory, forge };
|
|
101
|
+
}
|
|
102
|
+
/** Build per-entry metadata for merge decisions */
|
|
103
|
+
function buildMetadata(data) {
|
|
104
|
+
const meta = {};
|
|
105
|
+
const now = new Date().toISOString();
|
|
106
|
+
// Pattern metadata — use each pattern's own timestamps if available
|
|
107
|
+
for (let i = 0; i < data.patterns.length; i++) {
|
|
108
|
+
const p = data.patterns[i];
|
|
109
|
+
meta[`patterns:${i}`] = {
|
|
110
|
+
updatedAt: (typeof p.updatedAt === 'string' ? p.updatedAt : now),
|
|
111
|
+
confidence: typeof p.successRate === 'number' ? p.successRate : undefined,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Solution metadata
|
|
115
|
+
for (let i = 0; i < data.solutions.length; i++) {
|
|
116
|
+
const s = data.solutions[i];
|
|
117
|
+
meta[`solutions:${i}`] = {
|
|
118
|
+
updatedAt: (typeof s.updatedAt === 'string' ? s.updatedAt : now),
|
|
119
|
+
confidence: typeof s.confidence === 'number' ? s.confidence : undefined,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Routing metadata
|
|
123
|
+
for (let i = 0; i < data.routing.length; i++) {
|
|
124
|
+
const r = data.routing[i];
|
|
125
|
+
meta[`routing:${i}`] = {
|
|
126
|
+
updatedAt: (typeof r.updatedAt === 'string' ? r.updatedAt : now),
|
|
127
|
+
confidence: typeof r.confidence === 'number' ? r.confidence : undefined,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
// Profile — single entry
|
|
131
|
+
meta['profile'] = { updatedAt: now };
|
|
132
|
+
// Memory — single entry
|
|
133
|
+
meta['memory'] = { updatedAt: now };
|
|
134
|
+
// Forge tools
|
|
135
|
+
for (let i = 0; i < data.forge.length; i++) {
|
|
136
|
+
const f = data.forge[i];
|
|
137
|
+
meta[`forge:${i}`] = {
|
|
138
|
+
updatedAt: (typeof f.created === 'string' ? f.created : now),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return meta;
|
|
142
|
+
}
|
|
143
|
+
/** Hash a snapshot's data for change detection */
|
|
144
|
+
function hashSnapshot(data) {
|
|
145
|
+
const content = JSON.stringify(data);
|
|
146
|
+
return createHash('sha256').update(content).digest('hex').slice(0, 16);
|
|
147
|
+
}
|
|
148
|
+
// ── Auth Token Resolution ──
|
|
149
|
+
/** Resolve auth token from options, env, or config file */
|
|
150
|
+
function resolveToken(options) {
|
|
151
|
+
if (options?.token)
|
|
152
|
+
return options.token;
|
|
153
|
+
if (process.env.KBOT_CLOUD_TOKEN)
|
|
154
|
+
return process.env.KBOT_CLOUD_TOKEN;
|
|
155
|
+
// Try loading from config
|
|
156
|
+
try {
|
|
157
|
+
const configPath = join(KBOT_DIR, 'config.json');
|
|
158
|
+
if (existsSync(configPath)) {
|
|
159
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
160
|
+
if (config.kernel_token)
|
|
161
|
+
return config.kernel_token;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Config might be encrypted or corrupt
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
// ── Core API ──
|
|
170
|
+
/** Collect all learning data, compress, and upload to sync endpoint.
|
|
171
|
+
* Returns upload stats. */
|
|
172
|
+
export async function runCrossDeviceSync(options) {
|
|
173
|
+
const syncUrl = options?.url || SYNC_URL;
|
|
174
|
+
const token = resolveToken(options);
|
|
175
|
+
const data = collectAllData();
|
|
176
|
+
const currentHash = hashSnapshot(data);
|
|
177
|
+
const state = loadSyncState();
|
|
178
|
+
// Skip if nothing changed (unless forced)
|
|
179
|
+
if (!options?.force && state.localSnapshotHash === currentHash) {
|
|
180
|
+
return {
|
|
181
|
+
uploaded_bytes: 0,
|
|
182
|
+
patterns_synced: 0,
|
|
183
|
+
last_sync: state.lastPush || 'never',
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
const snapshot = {
|
|
187
|
+
device_fingerprint: getDeviceFingerprint(),
|
|
188
|
+
timestamp: new Date().toISOString(),
|
|
189
|
+
version: '1.0.0',
|
|
190
|
+
data,
|
|
191
|
+
metadata: buildMetadata(data),
|
|
192
|
+
};
|
|
193
|
+
// Compress with gzip
|
|
194
|
+
const jsonBytes = Buffer.from(JSON.stringify(snapshot), 'utf-8');
|
|
195
|
+
const compressed = gzipSync(jsonBytes);
|
|
196
|
+
const headers = {
|
|
197
|
+
'Content-Type': 'application/octet-stream',
|
|
198
|
+
'X-Device-Fingerprint': snapshot.device_fingerprint,
|
|
199
|
+
'X-Snapshot-Version': snapshot.version,
|
|
200
|
+
};
|
|
201
|
+
if (token) {
|
|
202
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
const res = await fetch(`${syncUrl}/push`, {
|
|
206
|
+
method: 'POST',
|
|
207
|
+
headers,
|
|
208
|
+
body: compressed,
|
|
209
|
+
signal: AbortSignal.timeout(30_000),
|
|
210
|
+
});
|
|
211
|
+
if (!res.ok) {
|
|
212
|
+
if (process.env.KBOT_DEBUG) {
|
|
213
|
+
console.error(`[cross-device-sync] push failed: ${res.status}`);
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
uploaded_bytes: 0,
|
|
217
|
+
patterns_synced: 0,
|
|
218
|
+
last_sync: state.lastPush || 'never',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
const now = new Date().toISOString();
|
|
222
|
+
state.lastPush = now;
|
|
223
|
+
state.localSnapshotHash = currentHash;
|
|
224
|
+
saveSyncState(state);
|
|
225
|
+
return {
|
|
226
|
+
uploaded_bytes: compressed.byteLength,
|
|
227
|
+
patterns_synced: data.patterns.length,
|
|
228
|
+
last_sync: now,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
if (process.env.KBOT_DEBUG) {
|
|
233
|
+
console.error('[cross-device-sync] push error:', err.message);
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
uploaded_bytes: 0,
|
|
237
|
+
patterns_synced: 0,
|
|
238
|
+
last_sync: state.lastPush || 'never',
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/** Download latest snapshot from cloud and merge with local data.
|
|
243
|
+
* Merge strategy: prefer newer timestamps, higher confidence.
|
|
244
|
+
* Returns download stats. */
|
|
245
|
+
export async function pullFromCloud(options) {
|
|
246
|
+
const syncUrl = options?.url || SYNC_URL;
|
|
247
|
+
const token = resolveToken(options);
|
|
248
|
+
const fingerprint = getDeviceFingerprint();
|
|
249
|
+
const headers = {
|
|
250
|
+
'X-Device-Fingerprint': fingerprint,
|
|
251
|
+
};
|
|
252
|
+
if (token) {
|
|
253
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
254
|
+
}
|
|
255
|
+
try {
|
|
256
|
+
const res = await fetch(`${syncUrl}/pull`, {
|
|
257
|
+
method: 'GET',
|
|
258
|
+
headers,
|
|
259
|
+
signal: AbortSignal.timeout(30_000),
|
|
260
|
+
});
|
|
261
|
+
if (!res.ok) {
|
|
262
|
+
if (process.env.KBOT_DEBUG) {
|
|
263
|
+
console.error(`[cross-device-sync] pull failed: ${res.status}`);
|
|
264
|
+
}
|
|
265
|
+
return { downloaded_bytes: 0, new_patterns: 0, conflicts_resolved: 0 };
|
|
266
|
+
}
|
|
267
|
+
const compressedBuffer = Buffer.from(await res.arrayBuffer());
|
|
268
|
+
const downloadedBytes = compressedBuffer.byteLength;
|
|
269
|
+
// Decompress
|
|
270
|
+
const jsonBuffer = gunzipSync(compressedBuffer);
|
|
271
|
+
const remote = JSON.parse(jsonBuffer.toString('utf-8'));
|
|
272
|
+
if (!remote.data) {
|
|
273
|
+
return { downloaded_bytes: downloadedBytes, new_patterns: 0, conflicts_resolved: 0 };
|
|
274
|
+
}
|
|
275
|
+
// Merge with local data
|
|
276
|
+
const local = collectAllData();
|
|
277
|
+
const mergeResult = mergeSnapshots(local, remote);
|
|
278
|
+
// Write merged data back to local files
|
|
279
|
+
writeLocalData(mergeResult.merged);
|
|
280
|
+
// Update sync state
|
|
281
|
+
const state = loadSyncState();
|
|
282
|
+
state.lastPull = new Date().toISOString();
|
|
283
|
+
state.cloudSnapshotHash = hashSnapshot(remote.data);
|
|
284
|
+
state.cloudPatternCount = remote.data.patterns.length;
|
|
285
|
+
saveSyncState(state);
|
|
286
|
+
return {
|
|
287
|
+
downloaded_bytes: downloadedBytes,
|
|
288
|
+
new_patterns: mergeResult.newPatterns,
|
|
289
|
+
conflicts_resolved: mergeResult.conflictsResolved,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
catch (err) {
|
|
293
|
+
if (process.env.KBOT_DEBUG) {
|
|
294
|
+
console.error('[cross-device-sync] pull error:', err.message);
|
|
295
|
+
}
|
|
296
|
+
return { downloaded_bytes: 0, new_patterns: 0, conflicts_resolved: 0 };
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/** Get current sync status across local and cloud. */
|
|
300
|
+
export async function getSyncStatus(options) {
|
|
301
|
+
const state = loadSyncState();
|
|
302
|
+
const localData = collectAllData();
|
|
303
|
+
const localPatternCount = localData.patterns.length;
|
|
304
|
+
const currentHash = hashSnapshot(localData);
|
|
305
|
+
const inSync = state.localSnapshotHash === currentHash
|
|
306
|
+
&& state.cloudSnapshotHash !== null
|
|
307
|
+
&& state.localSnapshotHash === state.cloudSnapshotHash;
|
|
308
|
+
return {
|
|
309
|
+
last_push: state.lastPush,
|
|
310
|
+
last_pull: state.lastPull,
|
|
311
|
+
local_patterns: localPatternCount,
|
|
312
|
+
cloud_patterns: state.cloudPatternCount,
|
|
313
|
+
in_sync: inSync,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/** Merge remote snapshot data into local data.
|
|
317
|
+
* Strategy: deduplicate by stable key, prefer newer timestamps, higher confidence. */
|
|
318
|
+
function mergeSnapshots(local, remote) {
|
|
319
|
+
let newPatterns = 0;
|
|
320
|
+
let conflictsResolved = 0;
|
|
321
|
+
// Merge arrays with dedup and conflict resolution
|
|
322
|
+
const mergedPatterns = mergeArrays(local.patterns, remote.data.patterns, remote.metadata, 'patterns', patternKey);
|
|
323
|
+
newPatterns += mergedPatterns.added;
|
|
324
|
+
conflictsResolved += mergedPatterns.conflicts;
|
|
325
|
+
const mergedSolutions = mergeArrays(local.solutions, remote.data.solutions, remote.metadata, 'solutions', solutionKey);
|
|
326
|
+
newPatterns += mergedSolutions.added;
|
|
327
|
+
conflictsResolved += mergedSolutions.conflicts;
|
|
328
|
+
const mergedRouting = mergeArrays(local.routing, remote.data.routing, remote.metadata, 'routing', routingKey);
|
|
329
|
+
conflictsResolved += mergedRouting.conflicts;
|
|
330
|
+
// Merge profile: deep-merge, prefer newer values
|
|
331
|
+
const mergedProfile = mergeProfile(local.profile, remote.data.profile);
|
|
332
|
+
// Merge memory: append unique sections from remote
|
|
333
|
+
const mergedMemory = mergeMemory(local.memory, remote.data.memory);
|
|
334
|
+
// Merge forge tools: deduplicate by name, prefer newer version
|
|
335
|
+
const mergedForge = mergeForgeTools(local.forge, remote.data.forge);
|
|
336
|
+
newPatterns += mergedForge.added;
|
|
337
|
+
return {
|
|
338
|
+
merged: {
|
|
339
|
+
patterns: mergedPatterns.result,
|
|
340
|
+
solutions: mergedSolutions.result,
|
|
341
|
+
profile: mergedProfile,
|
|
342
|
+
routing: mergedRouting.result,
|
|
343
|
+
memory: mergedMemory,
|
|
344
|
+
forge: mergedForge.result,
|
|
345
|
+
},
|
|
346
|
+
newPatterns,
|
|
347
|
+
conflictsResolved,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
/** Merge two arrays with dedup, using a key function for identity. */
|
|
351
|
+
function mergeArrays(localArr, remoteArr, remoteMeta, prefix, keyFn) {
|
|
352
|
+
const localMap = new Map();
|
|
353
|
+
for (const item of localArr) {
|
|
354
|
+
localMap.set(keyFn(item), item);
|
|
355
|
+
}
|
|
356
|
+
let added = 0;
|
|
357
|
+
let conflicts = 0;
|
|
358
|
+
for (let i = 0; i < remoteArr.length; i++) {
|
|
359
|
+
const remoteItem = remoteArr[i];
|
|
360
|
+
const key = keyFn(remoteItem);
|
|
361
|
+
const localItem = localMap.get(key);
|
|
362
|
+
if (!localItem) {
|
|
363
|
+
// New entry from remote
|
|
364
|
+
localMap.set(key, remoteItem);
|
|
365
|
+
added++;
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
// Conflict — resolve by timestamp then confidence
|
|
369
|
+
const meta = remoteMeta[`${prefix}:${i}`];
|
|
370
|
+
if (meta && shouldPreferRemote(localItem, remoteItem, meta)) {
|
|
371
|
+
localMap.set(key, remoteItem);
|
|
372
|
+
conflicts++;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return { result: Array.from(localMap.values()), added, conflicts };
|
|
377
|
+
}
|
|
378
|
+
/** Decide whether remote entry should replace local entry */
|
|
379
|
+
function shouldPreferRemote(local, _remote, remoteMeta) {
|
|
380
|
+
const localRecord = local;
|
|
381
|
+
const localTime = typeof localRecord.updatedAt === 'string'
|
|
382
|
+
? new Date(localRecord.updatedAt).getTime()
|
|
383
|
+
: 0;
|
|
384
|
+
const remoteTime = new Date(remoteMeta.updatedAt).getTime();
|
|
385
|
+
// Prefer newer timestamp
|
|
386
|
+
if (remoteTime > localTime)
|
|
387
|
+
return true;
|
|
388
|
+
if (remoteTime < localTime)
|
|
389
|
+
return false;
|
|
390
|
+
// Same timestamp — prefer higher confidence
|
|
391
|
+
const localConf = typeof localRecord.confidence === 'number' ? localRecord.confidence : 0;
|
|
392
|
+
const localSuccess = typeof localRecord.successRate === 'number' ? localRecord.successRate : 0;
|
|
393
|
+
const remoteConf = remoteMeta.confidence ?? 0;
|
|
394
|
+
return remoteConf > Math.max(localConf, localSuccess);
|
|
395
|
+
}
|
|
396
|
+
/** Merge two profiles by preferring non-empty, newer values */
|
|
397
|
+
function mergeProfile(local, remote) {
|
|
398
|
+
const merged = { ...local };
|
|
399
|
+
for (const [key, value] of Object.entries(remote)) {
|
|
400
|
+
if (value === null || value === undefined)
|
|
401
|
+
continue;
|
|
402
|
+
if (!(key in merged) || merged[key] === null || merged[key] === undefined) {
|
|
403
|
+
// Local is empty — take remote
|
|
404
|
+
merged[key] = value;
|
|
405
|
+
}
|
|
406
|
+
// If both have values, keep local (local-first philosophy)
|
|
407
|
+
}
|
|
408
|
+
return merged;
|
|
409
|
+
}
|
|
410
|
+
/** Merge memory markdown: append unique date-sections from remote */
|
|
411
|
+
function mergeMemory(local, remote) {
|
|
412
|
+
if (!remote.trim())
|
|
413
|
+
return local;
|
|
414
|
+
if (!local.trim())
|
|
415
|
+
return remote;
|
|
416
|
+
// Extract date sections (## YYYY-MM-DD)
|
|
417
|
+
const localSections = new Set();
|
|
418
|
+
const dateRegex = /^## (\d{4}-\d{2}-\d{2})$/gm;
|
|
419
|
+
let match;
|
|
420
|
+
match = dateRegex.exec(local);
|
|
421
|
+
while (match !== null) {
|
|
422
|
+
localSections.add(match[1]);
|
|
423
|
+
match = dateRegex.exec(local);
|
|
424
|
+
}
|
|
425
|
+
// Find remote sections not in local
|
|
426
|
+
const remoteLines = remote.split('\n');
|
|
427
|
+
const newSections = [];
|
|
428
|
+
let inNewSection = false;
|
|
429
|
+
let currentSection = [];
|
|
430
|
+
for (const line of remoteLines) {
|
|
431
|
+
const dateMatch = /^## (\d{4}-\d{2}-\d{2})$/.exec(line);
|
|
432
|
+
if (dateMatch) {
|
|
433
|
+
// Flush previous section if it was new
|
|
434
|
+
if (inNewSection && currentSection.length > 0) {
|
|
435
|
+
newSections.push(currentSection.join('\n'));
|
|
436
|
+
}
|
|
437
|
+
inNewSection = !localSections.has(dateMatch[1]);
|
|
438
|
+
currentSection = inNewSection ? [line] : [];
|
|
439
|
+
}
|
|
440
|
+
else if (inNewSection) {
|
|
441
|
+
currentSection.push(line);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
// Flush last section
|
|
445
|
+
if (inNewSection && currentSection.length > 0) {
|
|
446
|
+
newSections.push(currentSection.join('\n'));
|
|
447
|
+
}
|
|
448
|
+
if (newSections.length === 0)
|
|
449
|
+
return local;
|
|
450
|
+
return local.trimEnd() + '\n' + newSections.join('\n');
|
|
451
|
+
}
|
|
452
|
+
/** Merge forge tool lists: deduplicate by name, prefer newer version */
|
|
453
|
+
function mergeForgeTools(local, remote) {
|
|
454
|
+
const localMap = new Map();
|
|
455
|
+
for (const tool of local) {
|
|
456
|
+
const t = tool;
|
|
457
|
+
if (typeof t.name === 'string') {
|
|
458
|
+
localMap.set(t.name, tool);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
let added = 0;
|
|
462
|
+
for (const tool of remote) {
|
|
463
|
+
const t = tool;
|
|
464
|
+
if (typeof t.name !== 'string')
|
|
465
|
+
continue;
|
|
466
|
+
const existing = localMap.get(t.name);
|
|
467
|
+
if (!existing) {
|
|
468
|
+
localMap.set(t.name, tool);
|
|
469
|
+
added++;
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
// Prefer newer version or newer creation date
|
|
473
|
+
const localVersion = typeof existing.version === 'string' ? existing.version : '0.0.0';
|
|
474
|
+
const remoteVersion = typeof t.version === 'string' ? t.version : '0.0.0';
|
|
475
|
+
if (remoteVersion > localVersion) {
|
|
476
|
+
localMap.set(t.name, tool);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
return { result: Array.from(localMap.values()), added };
|
|
481
|
+
}
|
|
482
|
+
// ── Key Functions for Dedup ──
|
|
483
|
+
function patternKey(item) {
|
|
484
|
+
const p = item;
|
|
485
|
+
const intent = typeof p.intent === 'string' ? p.intent : '';
|
|
486
|
+
const tools = Array.isArray(p.toolSequence) ? p.toolSequence.sort().join(',') : '';
|
|
487
|
+
const keywords = Array.isArray(p.keywords) ? p.keywords.sort().join(',') : '';
|
|
488
|
+
return `pattern:${intent}:${tools}:${keywords}`;
|
|
489
|
+
}
|
|
490
|
+
function solutionKey(item) {
|
|
491
|
+
const s = item;
|
|
492
|
+
const problem = typeof s.problem === 'string' ? s.problem : '';
|
|
493
|
+
const approach = typeof s.approach === 'string' ? s.approach : '';
|
|
494
|
+
return `solution:${problem}:${approach}`;
|
|
495
|
+
}
|
|
496
|
+
function routingKey(item) {
|
|
497
|
+
const r = item;
|
|
498
|
+
const pattern = typeof r.pattern === 'string' ? r.pattern : '';
|
|
499
|
+
const agent = typeof r.agent === 'string' ? r.agent : '';
|
|
500
|
+
return `routing:${pattern}:${agent}`;
|
|
501
|
+
}
|
|
502
|
+
// ── Write Back ──
|
|
503
|
+
/** Write merged data back to local ~/.kbot/ files */
|
|
504
|
+
function writeLocalData(data) {
|
|
505
|
+
ensureDir(MEMORY_DIR);
|
|
506
|
+
ensureDir(FORGE_DIR);
|
|
507
|
+
// Write JSON data files
|
|
508
|
+
if (data.patterns.length > 0) {
|
|
509
|
+
saveJSON(join(MEMORY_DIR, 'patterns.json'), data.patterns);
|
|
510
|
+
}
|
|
511
|
+
if (data.solutions.length > 0) {
|
|
512
|
+
saveJSON(join(MEMORY_DIR, 'solutions.json'), data.solutions);
|
|
513
|
+
}
|
|
514
|
+
if (Object.keys(data.profile).length > 0) {
|
|
515
|
+
saveJSON(join(MEMORY_DIR, 'profile.json'), data.profile);
|
|
516
|
+
}
|
|
517
|
+
if (data.routing.length > 0) {
|
|
518
|
+
saveJSON(join(MEMORY_DIR, 'routing.json'), data.routing);
|
|
519
|
+
}
|
|
520
|
+
// Write memory markdown
|
|
521
|
+
if (data.memory.trim()) {
|
|
522
|
+
writeFileSync(join(MEMORY_DIR, 'context.md'), data.memory);
|
|
523
|
+
}
|
|
524
|
+
// Write forge tools — one file per tool
|
|
525
|
+
for (const tool of data.forge) {
|
|
526
|
+
const t = tool;
|
|
527
|
+
if (typeof t.name === 'string') {
|
|
528
|
+
writeFileSync(join(FORGE_DIR, `${t.name}.json`), JSON.stringify(tool, null, 2));
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
//# sourceMappingURL=cross-device-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-device-sync.js","sourceRoot":"","sources":["../src/cross-device-sync.ts"],"names":[],"mappings":"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"}
|