visionclaw 0.1.26 → 0.1.28

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.
Files changed (37) hide show
  1. package/CHANGELOG.md +232 -0
  2. package/dist/agent/context.d.ts +2 -0
  3. package/dist/agent/context.d.ts.map +1 -1
  4. package/dist/agent/context.js +12 -1
  5. package/dist/agent/context.js.map +1 -1
  6. package/dist/agent/loop.d.ts.map +1 -1
  7. package/dist/agent/loop.js +40 -14
  8. package/dist/agent/loop.js.map +1 -1
  9. package/dist/agent/system-prompt.d.ts.map +1 -1
  10. package/dist/agent/system-prompt.js +4 -3
  11. package/dist/agent/system-prompt.js.map +1 -1
  12. package/dist/drive/google-drive.d.ts +82 -0
  13. package/dist/drive/google-drive.d.ts.map +1 -0
  14. package/dist/drive/google-drive.js +190 -0
  15. package/dist/drive/google-drive.js.map +1 -0
  16. package/dist/obs/ui.js +4 -4
  17. package/dist/onboarding/google-auth.js +1 -1
  18. package/dist/onboarding/google-auth.js.map +1 -1
  19. package/dist/tools/drive.d.ts +29 -0
  20. package/dist/tools/drive.d.ts.map +1 -0
  21. package/dist/tools/drive.js +363 -0
  22. package/dist/tools/drive.js.map +1 -0
  23. package/dist/tools/index.d.ts.map +1 -1
  24. package/dist/tools/index.js +4 -0
  25. package/dist/tools/index.js.map +1 -1
  26. package/dist/tools/sleep-interval.d.ts +5 -0
  27. package/dist/tools/sleep-interval.d.ts.map +1 -0
  28. package/dist/tools/sleep-interval.js +25 -0
  29. package/dist/tools/sleep-interval.js.map +1 -0
  30. package/dist/tools/upgrade.d.ts.map +1 -1
  31. package/dist/tools/upgrade.js +9 -32
  32. package/dist/tools/upgrade.js.map +1 -1
  33. package/dist/tools/version-check.d.ts +25 -0
  34. package/dist/tools/version-check.d.ts.map +1 -0
  35. package/dist/tools/version-check.js +164 -0
  36. package/dist/tools/version-check.js.map +1 -0
  37. package/package.json +7 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/tools/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CACjC,cAAc,EACd;;;;;;;;;;oCAUkC,EAClC;IACE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC;QACJ,YAAY;QACZ,UAAU;QACV,aAAa;QACb,eAAe;QACf,eAAe;QACf,YAAY;QACZ,WAAW;QACX,aAAa;KACd,CAAC;SACD,QAAQ,CAAC,yBAAyB,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kGAAkG,CACnG;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4EAA4E,CAC7E;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yFAAyF,CAC1F;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;IACH,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,EACD,KAAK,EAAE,IAAI,EAA2B,EAAE;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;oBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,IAAI,CAAC,WAAW;oBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;iBACzB,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,uCAAuC;6BAC9C;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY;wBAC7B,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,kBAAkB,EAAE,EAAE;wBAChE,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,OAAO,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,SAAS,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBAC5D;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE;yBAClE;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;oBACpB,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;oBACtD,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;oBAChC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC/D,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM;oBAClC,CAAC,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClD,CAAC,CAAC,EAAE,CAAC;gBAEP,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,EAAE;yBACtG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,+CAA+C;6BACtD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;oBACrC,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS;iBACzB,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;oBACtB,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;oBACnD,CAAC,CAAC,EAAE,CAAC;gBAEP,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,mBAAmB,MAAM,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE;yBACxE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,8CAA8C;6BACrD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,iDAAiD;6BACxD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,CAAC,YAAY,CAAC;oBACxB,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,SAAS,EAAE,IAAI,CAAC,UAAU;iBAC3B,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,uBAAuB,IAAI,CAAC,UAAU,EAAE;yBAC/C;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,2CAA2C;6BAClD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBACvC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;iBACzB,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEvE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oBAAoB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE;yBAClE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,2CAA2C;6BAClD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,yCAAyC;6BAChD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,uEAAuE;6BAC9E;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,CAAC,SAAS,CAAC;oBACrB,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;iBACzC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,QAAQ,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG;yBACxE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,0CAA0C;6BACjD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,gDAAgD;6BACvD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;oBAClC,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,WAAW,EAAE,IAAI,CAAC,aAAa;iBAChC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,qBAAqB,IAAI,CAAC,aAAa,GAAG;yBACpE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,4CAA4C;6BACnD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEtC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,QAAQ,IAAI,CAAC,OAAO,kBAAkB;yBAC7C;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC;oBAC9D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;iBACpF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAmBpE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAsBxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAqBpE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAwBxE"}
@@ -9,6 +9,8 @@ import { manageCalendarTool } from "./calendar.js";
9
9
  import { manageEmailTool } from "./email.js";
10
10
  import { memoryTool } from "./memory.js";
11
11
  import { browserTool } from "./browser.js";
12
+ import { setSleepIntervalTool } from "./sleep-interval.js";
13
+ import { manageDriveTool } from "./drive.js";
12
14
  import { computerUseClickTool, computerUseScrollTool, computerUseDragTool, computerUseTypeTool, computerUseKeyTool, } from "./computer-use.js";
13
15
  /**
14
16
  * Create the in-process MCP server that provides all
@@ -27,6 +29,7 @@ export function createToolServer() {
27
29
  upgradeTool,
28
30
  manageCalendarTool,
29
31
  manageEmailTool,
32
+ manageDriveTool,
30
33
  memoryTool,
31
34
  browserTool,
32
35
  computerUseClickTool,
@@ -34,6 +37,7 @@ export function createToolServer() {
34
37
  computerUseDragTool,
35
38
  computerUseTypeTool,
36
39
  computerUseKeyTool,
40
+ setSleepIntervalTool,
37
41
  ],
38
42
  });
39
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,QAAQ;YACR,cAAc;YACd,UAAU;YACV,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,kBAAkB;YAClB,eAAe;YACf,UAAU;YACV,WAAW;YACX,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;SACnB;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,QAAQ;YACR,cAAc;YACd,UAAU;YACV,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,kBAAkB;YAClB,eAAe;YACf,eAAe;YACf,UAAU;YACV,WAAW;YACX,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;SACrB;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { z } from "zod";
2
+ export declare const setSleepIntervalTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
3
+ minutes: z.ZodNumber;
4
+ }>;
5
+ //# sourceMappingURL=sleep-interval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep-interval.d.ts","sourceRoot":"","sources":["../../src/tools/sleep-interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,oBAAoB;;EAwBhC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { tool } from "@anthropic-ai/claude-agent-sdk";
3
+ import { getAgentState } from "../agent/loop.js";
4
+ import { saveConfig } from "../config/index.js";
5
+ export const setSleepIntervalTool = tool("set_sleep_interval", "Change how long the agent sleeps between heartbeat wake-ups. Use this when the user asks you to sleep longer or shorter, or to change the check-in frequency.", {
6
+ minutes: z
7
+ .number()
8
+ .min(1)
9
+ .max(1440)
10
+ .describe("Sleep interval in minutes (1-1440, i.e. up to 24 hours)"),
11
+ }, async (args) => {
12
+ const state = await Promise.resolve(getAgentState());
13
+ const oldMs = state.config.heartbeatIntervalMs;
14
+ state.config.heartbeatIntervalMs = args.minutes * 60 * 1000;
15
+ saveConfig(state.config);
16
+ return {
17
+ content: [
18
+ {
19
+ type: "text",
20
+ text: `Sleep interval changed from ${oldMs / 60000}m to ${args.minutes}m (saved to config).`,
21
+ },
22
+ ],
23
+ };
24
+ });
25
+ //# sourceMappingURL=sleep-interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep-interval.js","sourceRoot":"","sources":["../../src/tools/sleep-interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CACtC,oBAAoB,EACpB,+JAA+J,EAC/J;IACE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,CAAC,yDAAyD,CAAC;CACvE,EACD,KAAK,EAAE,IAAI,EAA2B,EAAE;IACtC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC/C,KAAK,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5D,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,+BAA+B,KAAK,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,sBAAsB;aAC7F;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/tools/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+ExB,eAAO,MAAM,WAAW;;EA2HvB,CAAC"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/tools/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+DxB,eAAO,MAAM,WAAW;;EAuHvB,CAAC"}
@@ -2,26 +2,10 @@ import { exec } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
3
  import { z } from "zod";
4
4
  import { tool } from "@anthropic-ai/claude-agent-sdk";
5
- import fs from "node:fs";
6
- import path from "node:path";
5
+ import { getCurrentVersion, getLatestNpmVersion, compareSemver, fetchChangelogFromNpm, } from "./version-check.js";
7
6
  const execAsync = promisify(exec);
8
7
  const PACKAGE_NAME = "visionclaw";
9
8
  const RESTART_DELAY = 10_000;
10
- const PACKAGE_JSON_PATH = path.resolve(new URL(".", import.meta.url).pathname, "../../package.json");
11
- function compareSemver(a, b) {
12
- const parse = (v) => v.split(".").map((x) => parseInt(x, 10) || 0);
13
- const [aMaj, aMin, aPatch] = parse(a);
14
- const [bMaj, bMin, bPatch] = parse(b);
15
- if (aMaj !== bMaj)
16
- return aMaj - bMaj;
17
- if (aMin !== bMin)
18
- return aMin - bMin;
19
- return aPatch - bPatch;
20
- }
21
- async function getLatestNpmVersion() {
22
- const { stdout } = await execAsync(`npm show ${PACKAGE_NAME} version --json`);
23
- return JSON.parse(stdout.trim());
24
- }
25
9
  async function detectPackageManager() {
26
10
  try {
27
11
  const { stdout } = await execAsync(`pnpm list -g --json ${PACKAGE_NAME} 2>/dev/null`);
@@ -63,16 +47,7 @@ export const upgradeTool = tool("upgrade", "Check for new versions of VisionClaw
63
47
  .describe("If true, only check for updates without installing"),
64
48
  }, async (args) => {
65
49
  try {
66
- // Read current version from local package.json
67
- let currentVersion = "0.0.0";
68
- try {
69
- const pkg = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH, "utf-8"));
70
- currentVersion = pkg.version ?? "0.0.0";
71
- }
72
- catch {
73
- // Ignore
74
- }
75
- // Check latest version from npm registry
50
+ const currentVersion = getCurrentVersion();
76
51
  let latestVersion;
77
52
  try {
78
53
  latestVersion = await getLatestNpmVersion();
@@ -98,12 +73,16 @@ export const upgradeTool = tool("upgrade", "Check for new versions of VisionClaw
98
73
  ],
99
74
  };
100
75
  }
76
+ const changelog = await fetchChangelogFromNpm(latestVersion, currentVersion);
77
+ const changelogSection = changelog
78
+ ? `\n\nChanges in ${latestVersion}:\n${changelog}`
79
+ : "";
101
80
  if (args.check_only) {
102
81
  return {
103
82
  content: [
104
83
  {
105
84
  type: "text",
106
- text: `Update available: ${currentVersion} → ${latestVersion}`,
85
+ text: `Update available: ${currentVersion} → ${latestVersion}${changelogSection}`,
107
86
  },
108
87
  ],
109
88
  };
@@ -115,10 +94,6 @@ export const upgradeTool = tool("upgrade", "Check for new versions of VisionClaw
115
94
  : `npm install -g ${PACKAGE_NAME}@latest`;
116
95
  const { stdout: installOut, stderr: installErr } = await execAsync(installCmd);
117
96
  const installLog = (installOut + installErr).trim();
118
- // Attempt automatic restart via process manager.
119
- // The restart kills the current process, so we must return the tool result
120
- // first and schedule the restart after a delay to allow the response to
121
- // propagate back to the user before the process exits.
122
97
  const procManager = detectProcessManager();
123
98
  if (procManager) {
124
99
  setTimeout(() => {
@@ -131,6 +106,7 @@ export const upgradeTool = tool("upgrade", "Check for new versions of VisionClaw
131
106
  text: [
132
107
  `Upgraded from ${currentVersion} to ${latestVersion} via ${pm}.`,
133
108
  installLog,
109
+ changelogSection,
134
110
  `Restarting via ${procManager} in ${RESTART_DELAY / 1000} seconds...`,
135
111
  ]
136
112
  .filter(Boolean)
@@ -146,6 +122,7 @@ export const upgradeTool = tool("upgrade", "Check for new versions of VisionClaw
146
122
  text: [
147
123
  `Upgraded from ${currentVersion} to ${latestVersion} via ${pm}.`,
148
124
  installLog,
125
+ changelogSection,
149
126
  "Please restart VisionClaw manually to run the new version.",
150
127
  "Tip: run VisionClaw with PM2 (`pm2 start visionclaw --name visionclaw`) to enable automatic restarts after upgrades.",
151
128
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/tools/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/tools/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface VersionCheckResult {
2
+ currentVersion: string;
3
+ latestVersion: string;
4
+ hasUpdate: boolean;
5
+ changelog?: string;
6
+ }
7
+ export declare function getCurrentVersion(): string;
8
+ export declare function compareSemver(a: string, b: string): number;
9
+ export declare function getLatestNpmVersion(): Promise<string>;
10
+ /**
11
+ * Whether enough time has passed since the last notification for a given version.
12
+ * Returns true at most once per 24 hours per new version.
13
+ */
14
+ export declare function shouldNotifyUpdate(): boolean;
15
+ export declare function recordUpdateNotification(version: string): void;
16
+ /**
17
+ * Fetch the CHANGELOG.md section for a specific version from unpkg CDN.
18
+ * Returns the changelog text for entries newer than `fromVersion`, or undefined on failure.
19
+ */
20
+ export declare function fetchChangelogFromNpm(latestVersion: string, fromVersion: string): Promise<string | undefined>;
21
+ /**
22
+ * Full version check: queries npm, compares versions, fetches changelog.
23
+ */
24
+ export declare function checkForUpdate(): Promise<VersionCheckResult>;
25
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK3D;AAuBD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAQ5C;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAe7B;AA6DD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAqBlE"}
@@ -0,0 +1,164 @@
1
+ import { exec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ import https from "node:https";
6
+ import { getConfigDir } from "../config/index.js";
7
+ import { logger } from "../logger.js";
8
+ const execAsync = promisify(exec);
9
+ const PACKAGE_NAME = "visionclaw";
10
+ const PACKAGE_JSON_PATH = path.resolve(new URL(".", import.meta.url).pathname, "../../package.json");
11
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
12
+ const STATE_FILENAME = "version-check.json";
13
+ export function getCurrentVersion() {
14
+ try {
15
+ const pkg = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH, "utf-8"));
16
+ return pkg.version ?? "0.0.0";
17
+ }
18
+ catch {
19
+ return "0.0.0";
20
+ }
21
+ }
22
+ export function compareSemver(a, b) {
23
+ const parse = (v) => v.split(".").map((x) => parseInt(x, 10) || 0);
24
+ const [aMaj, aMin, aPatch] = parse(a);
25
+ const [bMaj, bMin, bPatch] = parse(b);
26
+ if (aMaj !== bMaj)
27
+ return aMaj - bMaj;
28
+ if (aMin !== bMin)
29
+ return aMin - bMin;
30
+ return aPatch - bPatch;
31
+ }
32
+ export async function getLatestNpmVersion() {
33
+ const { stdout } = await execAsync(`npm show ${PACKAGE_NAME} version --json`);
34
+ return JSON.parse(stdout.trim());
35
+ }
36
+ function getStatePath() {
37
+ return path.join(getConfigDir(), STATE_FILENAME);
38
+ }
39
+ function loadState() {
40
+ try {
41
+ const raw = fs.readFileSync(getStatePath(), "utf-8");
42
+ return JSON.parse(raw);
43
+ }
44
+ catch {
45
+ return { lastCheckAt: 0 };
46
+ }
47
+ }
48
+ function saveState(state) {
49
+ try {
50
+ fs.writeFileSync(getStatePath(), JSON.stringify(state, null, 2), "utf-8");
51
+ }
52
+ catch {
53
+ // best-effort
54
+ }
55
+ }
56
+ /**
57
+ * Whether enough time has passed since the last notification for a given version.
58
+ * Returns true at most once per 24 hours per new version.
59
+ */
60
+ export function shouldNotifyUpdate() {
61
+ const state = loadState();
62
+ const elapsed = Date.now() - state.lastCheckAt;
63
+ const due = elapsed >= CHECK_INTERVAL_MS;
64
+ logger.debug(`Version check: last=${state.lastCheckAt ? new Date(state.lastCheckAt).toISOString() : "never"} elapsed=${Math.round(elapsed / 60000)}min due=${due}`);
65
+ return due;
66
+ }
67
+ export function recordUpdateNotification(version) {
68
+ logger.debug(`Version check: recording notification for v${version}`);
69
+ saveState({
70
+ lastCheckAt: Date.now(),
71
+ lastNotifiedVersion: version,
72
+ });
73
+ }
74
+ /**
75
+ * Fetch the CHANGELOG.md section for a specific version from unpkg CDN.
76
+ * Returns the changelog text for entries newer than `fromVersion`, or undefined on failure.
77
+ */
78
+ export async function fetchChangelogFromNpm(latestVersion, fromVersion) {
79
+ try {
80
+ const url = `https://unpkg.com/${PACKAGE_NAME}@${latestVersion}/CHANGELOG.md`;
81
+ logger.debug(`Version check: fetching changelog from ${url}`);
82
+ const body = await httpGet(url);
83
+ logger.debug(`Version check: fetched changelog (${body.length} bytes)`);
84
+ const sections = extractChangelogSections(body, fromVersion);
85
+ logger.debug(`Version check: extracted changelog sections (${sections.length} chars)`);
86
+ return sections;
87
+ }
88
+ catch (err) {
89
+ logger.warn(`Version check: failed to fetch changelog: ${err instanceof Error ? err.message : String(err)}`);
90
+ return undefined;
91
+ }
92
+ }
93
+ /**
94
+ * Extract all changelog sections newer than `fromVersion`.
95
+ * Sections are delimited by `## [x.y.z]` headers.
96
+ */
97
+ function extractChangelogSections(changelog, fromVersion) {
98
+ const lines = changelog.split("\n");
99
+ const result = [];
100
+ let capturing = false;
101
+ for (const line of lines) {
102
+ const match = /^## \[([^\]]+)\]/.exec(line);
103
+ if (match) {
104
+ const sectionVersion = match[1];
105
+ if (compareSemver(sectionVersion, fromVersion) <= 0) {
106
+ break;
107
+ }
108
+ capturing = true;
109
+ }
110
+ if (capturing) {
111
+ result.push(line);
112
+ }
113
+ }
114
+ return result.join("\n").trim();
115
+ }
116
+ function httpGet(url, redirects = 0) {
117
+ if (redirects > 5)
118
+ return Promise.reject(new Error("Too many redirects"));
119
+ return new Promise((resolve, reject) => {
120
+ https
121
+ .get(url, { timeout: 10000 }, (res) => {
122
+ if (res.statusCode &&
123
+ res.statusCode >= 300 &&
124
+ res.statusCode < 400 &&
125
+ res.headers.location) {
126
+ resolve(httpGet(res.headers.location, redirects + 1));
127
+ return;
128
+ }
129
+ if (res.statusCode && res.statusCode >= 400) {
130
+ reject(new Error(`HTTP ${res.statusCode}`));
131
+ return;
132
+ }
133
+ let data = "";
134
+ res.on("data", (chunk) => {
135
+ data += chunk.toString();
136
+ });
137
+ res.on("end", () => resolve(data));
138
+ res.on("error", reject);
139
+ })
140
+ .on("error", reject);
141
+ });
142
+ }
143
+ /**
144
+ * Full version check: queries npm, compares versions, fetches changelog.
145
+ */
146
+ export async function checkForUpdate() {
147
+ const currentVersion = getCurrentVersion();
148
+ logger.debug(`Version check: current=${currentVersion}, querying npm...`);
149
+ const latestVersion = await getLatestNpmVersion();
150
+ logger.debug(`Version check: latest=${latestVersion}`);
151
+ if (compareSemver(latestVersion, currentVersion) <= 0) {
152
+ logger.debug("Version check: already up to date");
153
+ return { currentVersion, latestVersion, hasUpdate: false };
154
+ }
155
+ logger.debug(`Version check: update available ${currentVersion} → ${latestVersion}, fetching changelog...`);
156
+ const changelog = await fetchChangelogFromNpm(latestVersion, currentVersion);
157
+ return {
158
+ currentVersion,
159
+ latestVersion,
160
+ hasUpdate: true,
161
+ changelog,
162
+ };
163
+ }
164
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "visionclaw",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -10,7 +10,8 @@
10
10
  "files": [
11
11
  "dist/**/*",
12
12
  "dist/builtin-skills/**/*",
13
- "README.md"
13
+ "README.md",
14
+ "CHANGELOG.md"
14
15
  ],
15
16
  "dependencies": {
16
17
  "@anthropic-ai/claude-agent-sdk": "^0.2.42",
@@ -20,7 +21,6 @@
20
21
  "better-sqlite3": "^11.7.0",
21
22
  "cron-parser": "^4.9.0",
22
23
  "discord.js": "^14.25.1",
23
- "dotenv": "^17.3.1",
24
24
  "googleapis": "^144.0.0",
25
25
  "node-telegram-bot-api": "^0.66.0",
26
26
  "open": "^10.1.0",
@@ -34,6 +34,8 @@
34
34
  "@types/node": "^22.10.0",
35
35
  "@types/node-telegram-bot-api": "^0.64.7",
36
36
  "@types/prompts": "^2.4.9",
37
+ "conventional-changelog-cli": "^5.0.0",
38
+ "dotenv": "^17.3.1",
37
39
  "esbuild": "^0.27.3",
38
40
  "eslint": "^9.39.2",
39
41
  "tsx": "^4.19.0",
@@ -57,6 +59,7 @@
57
59
  "reconfigure": "tsx scripts/reconfigure.ts",
58
60
  "reset-session": "tsx scripts/reset-session.ts",
59
61
  "list-profiles": "tsx scripts/list-profiles.ts",
60
- "release": "pnpm lint && pnpm build && pnpm version patch && pnpm publish"
62
+ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
63
+ "release": "pnpm lint && pnpm build && pnpm version patch --no-git-tag-version && pnpm changelog && git add -A && git commit -m \"chore(release): v$(node -p 'require(\"./package.json\").version')\" && git tag \"v$(node -p 'require(\"./package.json\").version')\" && pnpm publish"
61
64
  }
62
65
  }