@nanocollective/nanocoder 1.16.3 → 1.16.4

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 (75) hide show
  1. package/README.md +17 -1
  2. package/dist/commands/update.d.ts +6 -0
  3. package/dist/commands/update.d.ts.map +1 -1
  4. package/dist/commands/update.js +104 -10
  5. package/dist/commands/update.js.map +1 -1
  6. package/dist/components/status.d.ts +1 -6
  7. package/dist/components/status.d.ts.map +1 -1
  8. package/dist/components/status.js +3 -2
  9. package/dist/components/status.js.map +1 -1
  10. package/dist/components/user-input.d.ts.map +1 -1
  11. package/dist/components/user-input.js +61 -19
  12. package/dist/components/user-input.js.map +1 -1
  13. package/dist/components/warning-message.d.ts +7 -0
  14. package/dist/components/warning-message.d.ts.map +1 -0
  15. package/dist/components/warning-message.js +12 -0
  16. package/dist/components/warning-message.js.map +1 -0
  17. package/dist/config/index.js +6 -6
  18. package/dist/config/index.js.map +1 -1
  19. package/dist/config/paths.d.ts +1 -0
  20. package/dist/config/paths.d.ts.map +1 -1
  21. package/dist/config/paths.js +28 -3
  22. package/dist/config/paths.js.map +1 -1
  23. package/dist/config/paths.spec.d.ts +2 -0
  24. package/dist/config/paths.spec.d.ts.map +1 -0
  25. package/dist/config/paths.spec.js +114 -0
  26. package/dist/config/paths.spec.js.map +1 -0
  27. package/dist/config/themes.d.ts.map +1 -1
  28. package/dist/config/themes.js +19 -0
  29. package/dist/config/themes.js.map +1 -1
  30. package/dist/hooks/useInputState.d.ts.map +1 -1
  31. package/dist/hooks/useInputState.js +95 -8
  32. package/dist/hooks/useInputState.js.map +1 -1
  33. package/dist/tools/execute-bash.d.ts.map +1 -1
  34. package/dist/tools/execute-bash.js +5 -3
  35. package/dist/tools/execute-bash.js.map +1 -1
  36. package/dist/types/ui.d.ts +1 -1
  37. package/dist/types/ui.d.ts.map +1 -1
  38. package/dist/types/utils.d.ts +2 -1
  39. package/dist/types/utils.d.ts.map +1 -1
  40. package/dist/usage/storage.d.ts +1 -1
  41. package/dist/usage/storage.d.ts.map +1 -1
  42. package/dist/usage/storage.js +55 -9
  43. package/dist/usage/storage.js.map +1 -1
  44. package/dist/usage/storage.spec.js +136 -2
  45. package/dist/usage/storage.spec.js.map +1 -1
  46. package/dist/utils/installation-detector.d.ts +16 -0
  47. package/dist/utils/installation-detector.d.ts.map +1 -0
  48. package/dist/utils/installation-detector.js +118 -0
  49. package/dist/utils/installation-detector.js.map +1 -0
  50. package/dist/utils/installation-detector.spec.d.ts +2 -0
  51. package/dist/utils/installation-detector.spec.d.ts.map +1 -0
  52. package/dist/utils/installation-detector.spec.js +141 -0
  53. package/dist/utils/installation-detector.spec.js.map +1 -0
  54. package/dist/utils/message-queue.d.ts +2 -0
  55. package/dist/utils/message-queue.d.ts.map +1 -1
  56. package/dist/utils/message-queue.js +11 -0
  57. package/dist/utils/message-queue.js.map +1 -1
  58. package/dist/utils/paste-detection.d.ts.map +1 -1
  59. package/dist/utils/paste-detection.js +8 -3
  60. package/dist/utils/paste-detection.js.map +1 -1
  61. package/dist/utils/paste-detection.spec.js +15 -8
  62. package/dist/utils/paste-detection.spec.js.map +1 -1
  63. package/dist/utils/paste-utils.d.ts.map +1 -1
  64. package/dist/utils/paste-utils.js +4 -2
  65. package/dist/utils/paste-utils.js.map +1 -1
  66. package/dist/utils/paste-utils.spec.js +19 -3
  67. package/dist/utils/paste-utils.spec.js.map +1 -1
  68. package/dist/utils/update-checker.d.ts.map +1 -1
  69. package/dist/utils/update-checker.js +31 -3
  70. package/dist/utils/update-checker.js.map +1 -1
  71. package/dist/utils/update-checker.spec.js +68 -18
  72. package/dist/utils/update-checker.spec.js.map +1 -1
  73. package/dist/wizard/steps/location-step.js +2 -2
  74. package/dist/wizard/steps/location-step.js.map +1 -1
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../../source/utils/message-queue.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAG1D,+DAA+D;AAC/D,IAAI,oBAAoB,GAAkD,IAAI,CAAC;AAC/E,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B,qCAAqC;AACrC,MAAM,UAAU,qBAAqB,CACpC,cAAoD;IAEpD,oBAAoB,GAAG,cAAc,CAAC;AACvC,CAAC;AAED,0CAA0C;AAC1C,SAAS,UAAU;IAClB,mBAAmB,EAAE,CAAC;IACtB,OAAO,cAAc,mBAAmB,EAAE,CAAC;AAC5C,CAAC;AAED,4BAA4B;AAC5B,SAAS,iBAAiB,CACzB,IAAiB,EACjB,OAAe,EACf,UAAmB,IAAI;IAEvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,6CAA6C;QAC7C,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO;IACR,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,SAA0B,CAAC;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,OAAO;YACX,SAAS,GAAG,CACX,KAAC,YAAY,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAC9D,CAAC;YACF,MAAM;QACP,KAAK,SAAS;YACb,SAAS,GAAG,CACX,KAAC,cAAc,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAChE,CAAC;YACF,MAAM;QACP,KAAK,MAAM,CAAC;QACZ;YACC,SAAS,GAAG,KAAC,WAAW,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAAC;YAC1E,MAAM;IACR,CAAC;IAED,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,UAAmB,IAAI;IAC/D,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,UAAmB,IAAI;IAChE,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../../source/utils/message-queue.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAG1D,+DAA+D;AAC/D,IAAI,oBAAoB,GAAkD,IAAI,CAAC;AAC/E,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B,qCAAqC;AACrC,MAAM,UAAU,qBAAqB,CACpC,cAAoD;IAEpD,oBAAoB,GAAG,cAAc,CAAC;AACvC,CAAC;AAED,0CAA0C;AAC1C,SAAS,UAAU;IAClB,mBAAmB,EAAE,CAAC;IACtB,OAAO,cAAc,mBAAmB,EAAE,CAAC;AAC5C,CAAC;AAED,4BAA4B;AAC5B,SAAS,iBAAiB,CACzB,IAAiB,EACjB,OAAe,EACf,UAAmB,IAAI;IAEvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,6CAA6C;QAC7C,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO;IACR,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,SAA0B,CAAC;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,OAAO;YACX,SAAS,GAAG,CACX,KAAC,YAAY,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAC9D,CAAC;YACF,MAAM;QACP,KAAK,SAAS;YACb,SAAS,GAAG,CACX,KAAC,cAAc,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAChE,CAAC;YACF,MAAM;QACP,KAAK,SAAS;YACb,SAAS,GAAG,CACX,KAAC,cAAc,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAChE,CAAC;YACF,MAAM;QACP,KAAK,MAAM,CAAC;QACZ;YACC,SAAS,GAAG,KAAC,WAAW,IAAW,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAvC,GAAG,CAAwC,CAAC;YAC1E,MAAM;IACR,CAAC;IAED,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,UAAmB,IAAI;IAC/D,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,UAAmB,IAAI;IAChE,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,UAAmB,IAAI;IAClE,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,UAAmB,IAAI;IAClE,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paste-detection.d.ts","sourceRoot":"","sources":["../../source/utils/paste-detection.ts"],"names":[],"mappings":"AAGA,UAAU,qBAAqB;IAE9B,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC;CACtB;AAQD,qBAAa,aAAa;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAE5B;;;;;OAKG;IACH,WAAW,CACV,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA6C,GACpD;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE;YACR,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;SACnB,CAAC;KACF;IA4DD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI/B"}
1
+ {"version":3,"file":"paste-detection.d.ts","sourceRoot":"","sources":["../../source/utils/paste-detection.ts"],"names":[],"mappings":"AAGA,UAAU,qBAAqB;IAE9B,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC;CACtB;AAQD,qBAAa,aAAa;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAE5B;;;;;OAKG;IACH,WAAW,CACV,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA6C,GACpD;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE;YACR,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;SACnB,CAAC;KACF;IAmED;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI/B"}
@@ -1,8 +1,8 @@
1
1
  // CLI Paste Detection Utilities
2
2
  // Since CLI applications don't receive direct paste events, we use heuristics
3
3
  const DEFAULT_PASTE_OPTIONS = {
4
- timeThreshold: 16, // ~1 frame at 60fps
5
- charThreshold: 50, // Characters added in single change
4
+ timeThreshold: 50, // Increased to 50ms to be more forgiving of fast typing
5
+ charThreshold: 5, // Lower threshold - detect pastes of 5+ chars (size method needs 10+ chars)
6
6
  lineThreshold: 2, // Multiple lines added instantly
7
7
  };
8
8
  export class PasteDetector {
@@ -18,7 +18,12 @@ export class PasteDetector {
18
18
  const currentTime = Date.now();
19
19
  const timeElapsed = currentTime - this.lastInputTime;
20
20
  const charsAdded = newText.length - this.lastInputLength;
21
- const linesAdded = newText.split('\n').length - 1;
21
+ // Calculate lines added in THIS change, not total lines in text
22
+ const previousLineCount = this.lastInputLength > 0
23
+ ? newText.slice(0, this.lastInputLength).split('\n').length
24
+ : 1;
25
+ const currentLineCount = newText.split('\n').length;
26
+ const linesAdded = currentLineCount - previousLineCount;
22
27
  // Get the added text (assuming it's at the end)
23
28
  const addedText = newText.slice(this.lastInputLength);
24
29
  // Update tracking
@@ -1 +1 @@
1
- {"version":3,"file":"paste-detection.js","sourceRoot":"","sources":["../../source/utils/paste-detection.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,8EAA8E;AAW9E,MAAM,qBAAqB,GAA0B;IACpD,aAAa,EAAE,EAAE,EAAE,oBAAoB;IACvC,aAAa,EAAE,EAAE,EAAE,oCAAoC;IACvD,aAAa,EAAE,CAAC,EAAE,iCAAiC;CACnD,CAAC;AAEF,MAAM,OAAO,aAAa;IACjB,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,WAAW,CACV,OAAe,EACf,UAAiC,qBAAqB;QAWtD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAElD,gDAAgD;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEtD,kBAAkB;QAClB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;QAEtC,MAAM,OAAO,GAAG;YACf,WAAW;YACX,UAAU;YACV,UAAU;SACV,CAAC;QAEF,8CAA8C;QAC9C,IACC,WAAW,GAAG,OAAO,CAAC,aAAa;YACnC,UAAU,GAAG,OAAO,CAAC,aAAa,EACjC,CAAC;YACF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,SAAS;YACT,OAAO;SACP,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACpC,CAAC;CACD"}
1
+ {"version":3,"file":"paste-detection.js","sourceRoot":"","sources":["../../source/utils/paste-detection.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,8EAA8E;AAW9E,MAAM,qBAAqB,GAA0B;IACpD,aAAa,EAAE,EAAE,EAAE,wDAAwD;IAC3E,aAAa,EAAE,CAAC,EAAE,4EAA4E;IAC9F,aAAa,EAAE,CAAC,EAAE,iCAAiC;CACnD,CAAC;AAEF,MAAM,OAAO,aAAa;IACjB,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,WAAW,CACV,OAAe,EACf,UAAiC,qBAAqB;QAWtD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QAEzD,gEAAgE;QAChE,MAAM,iBAAiB,GACtB,IAAI,CAAC,eAAe,GAAG,CAAC;YACvB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACpD,MAAM,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QAExD,gDAAgD;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEtD,kBAAkB;QAClB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;QAEtC,MAAM,OAAO,GAAG;YACf,WAAW;YACX,UAAU;YACV,UAAU;SACV,CAAC;QAEF,8CAA8C;QAC9C,IACC,WAAW,GAAG,OAAO,CAAC,aAAa;YACnC,UAAU,GAAG,OAAO,CAAC,aAAa,EACjC,CAAC;YACF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,SAAS;gBACT,OAAO;aACP,CAAC;QACH,CAAC;QAED,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,SAAS;YACT,OAAO;SACP,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACpC,CAAC;CACD"}
@@ -16,24 +16,31 @@ test('PasteDetector detects multi-line input as paste', t => {
16
16
  const multiLineText = 'line1\nline2\nline3\nline4';
17
17
  const result = detector.detectPaste(multiLineText);
18
18
  t.true(result.isPaste);
19
- t.is(result.method, 'lines');
19
+ // With low thresholds, size method triggers first (25 chars > 1*2 = 2)
20
+ // but still correctly detected as paste
21
+ t.true(['size', 'lines'].includes(result.method));
20
22
  t.is(result.addedText, multiLineText);
21
23
  });
22
- test('PasteDetector does not detect small input as paste', t => {
24
+ test('PasteDetector detects small paste', t => {
23
25
  const detector = new PasteDetector();
24
- const result = detector.detectPaste('small');
25
- t.false(result.isPaste);
26
- t.is(result.method, 'none');
26
+ // 15 characters - enough to trigger size detection (> 5*2 = 10)
27
+ const result = detector.detectPaste('small paste txt');
28
+ t.true(result.isPaste);
29
+ t.is(result.method, 'size'); // 15 chars > 5*2 = 10
27
30
  });
28
- test('PasteDetector tracks incremental changes correctly', t => {
31
+ test('PasteDetector does not detect manual typing', async (t) => {
29
32
  const detector = new PasteDetector();
30
- // First input
33
+ // First input - 5 chars, below 10-char size threshold
31
34
  const result1 = detector.detectPaste('hello');
32
35
  t.false(result1.isPaste);
33
- // Add more text (incremental)
36
+ t.is(result1.method, 'none');
37
+ // Wait to simulate human typing speed (not a paste)
38
+ await new Promise(resolve => setTimeout(resolve, 100));
39
+ // Add more text (incremental) - adds " world" (6 chars), still below threshold
34
40
  const result2 = detector.detectPaste('hello world');
35
41
  t.false(result2.isPaste);
36
42
  t.is(result2.addedText, ' world');
43
+ t.is(result2.method, 'none');
37
44
  });
38
45
  test('PasteDetector reset clears state', t => {
39
46
  const detector = new PasteDetector();
@@ -1 +1 @@
1
- {"version":3,"file":"paste-detection.spec.js","sourceRoot":"","sources":["../../source/utils/paste-detection.spec.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,gCAAgC;AAChC,sCAAsC;AAEtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEzC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,EAAE;IACtD,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,oEAAoE;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAgC;IAC7D,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,4BAA4B,CAAC;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAEnD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,CAAC,CAAC,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,CAAC,CAAC,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,cAAc;IACd,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzB,8BAA8B;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE;IAC5C,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,qCAAqC;AAC1E,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"paste-detection.spec.js","sourceRoot":"","sources":["../../source/utils/paste-detection.spec.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,gCAAgC;AAChC,sCAAsC;AAEtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEzC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,EAAE;IACtD,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,oEAAoE;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAgC;IAC7D,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,4BAA4B,CAAC;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAEnD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,uEAAuE;IACvE,wCAAwC;IACxC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,gEAAgE;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAEvD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,sDAAsD;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,oDAAoD;IACpD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,+EAA+E;IAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE;IAC5C,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAErC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,qCAAqC;AAC1E,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paste-utils.d.ts","sourceRoot":"","sources":["../../source/utils/paste-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EAEV,kBAAkB,EAElB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,WAAW,CAC1B,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,MAAM,EAC3B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAC7C,UAAU,GAAG,IAAI,CAqCnB"}
1
+ {"version":3,"file":"paste-utils.d.ts","sourceRoot":"","sources":["../../source/utils/paste-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EAEV,kBAAkB,EAElB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,WAAW,CAC1B,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,MAAM,EAC3B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAC7C,UAAU,GAAG,IAAI,CAuCnB"}
@@ -1,7 +1,9 @@
1
1
  import { PlaceholderType, } from '../types/hooks.js';
2
2
  export function handlePaste(pastedText, currentDisplayValue, currentPlaceholderContent, detectionMethod) {
3
- const THRESHOLD = 80; // characters
4
- if (pastedText.length < THRESHOLD) {
3
+ // No minimum threshold - any detected paste gets a placeholder
4
+ // This is especially important for multi-line pastes where only the first line
5
+ // may be captured by the input component
6
+ if (pastedText.length === 0) {
5
7
  return null;
6
8
  }
7
9
  // Generate simple incrementing ID based on existing paste placeholders
@@ -1 +1 @@
1
- {"version":3,"file":"paste-utils.js","sourceRoot":"","sources":["../../source/utils/paste-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,eAAe,GACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,WAAW,CAC1B,UAAkB,EAClB,mBAA2B,EAC3B,yBAA6D,EAC7D,eAA+C;IAE/C,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,aAAa;IACnC,IAAI,UAAU,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,CACzE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CACjD,CAAC,MAAM,CAAC;IACT,MAAM,OAAO,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,WAAW,OAAO,KAAK,UAAU,CAAC,MAAM,SAAS,CAAC;IAEtE,MAAM,YAAY,GAA4B;QAC7C,IAAI,EAAE,eAAe,CAAC,KAAK;QAC3B,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,UAAU,CAAC,MAAM;QAC/B,eAAe;QACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC7B,GAAG,yBAAyB;QAC5B,CAAC,OAAO,CAAC,EAAE,YAAY;KACvB,CAAC;IAEF,mFAAmF;IACnF,kFAAkF;IAClF,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/D,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QACtD,CAAC,CAAC,mBAAmB,GAAG,WAAW,CAAC;IAErC,OAAO;QACN,YAAY,EAAE,eAAe;QAC7B,kBAAkB,EAAE,qBAAqB;KACzC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"paste-utils.js","sourceRoot":"","sources":["../../source/utils/paste-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,eAAe,GACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,WAAW,CAC1B,UAAkB,EAClB,mBAA2B,EAC3B,yBAA6D,EAC7D,eAA+C;IAE/C,+DAA+D;IAC/D,+EAA+E;IAC/E,yCAAyC;IACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,CACzE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CACjD,CAAC,MAAM,CAAC;IACT,MAAM,OAAO,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,WAAW,OAAO,KAAK,UAAU,CAAC,MAAM,SAAS,CAAC;IAEtE,MAAM,YAAY,GAA4B;QAC7C,IAAI,EAAE,eAAe,CAAC,KAAK;QAC3B,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,UAAU,CAAC,MAAM;QAC/B,eAAe;QACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC7B,GAAG,yBAAyB;QAC5B,CAAC,OAAO,CAAC,EAAE,YAAY;KACvB,CAAC;IAEF,mFAAmF;IACnF,kFAAkF;IAClF,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/D,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QACtD,CAAC,CAAC,mBAAmB,GAAG,WAAW,CAAC;IAErC,OAAO;QACN,YAAY,EAAE,eAAe;QAC7B,kBAAkB,EAAE,qBAAqB;KACzC,CAAC;AACH,CAAC"}
@@ -4,15 +4,31 @@ import { PlaceholderType } from '../types/hooks.js';
4
4
  // Tests for handlePaste utility function
5
5
  // Validates paste handling logic and placeholder creation
6
6
  console.log(`\npaste-utils.spec.ts`);
7
- test('handlePaste returns null for small pastes', t => {
8
- const pastedText = 'small text';
7
+ test('handlePaste returns null for empty pastes', t => {
8
+ const pastedText = '';
9
9
  const currentDisplayValue = 'existing content';
10
10
  const currentPlaceholderContent = {};
11
11
  const result = handlePaste(pastedText, currentDisplayValue, currentPlaceholderContent);
12
12
  t.is(result, null);
13
13
  });
14
+ test('handlePaste creates placeholder for small pastes', t => {
15
+ const pastedText = 'small text';
16
+ const currentDisplayValue = 'existing content';
17
+ const currentPlaceholderContent = {};
18
+ const result = handlePaste(pastedText, currentDisplayValue, currentPlaceholderContent);
19
+ t.truthy(result);
20
+ t.is(typeof result.displayValue, 'string');
21
+ t.true(result.displayValue.includes('[Paste #'));
22
+ t.true(result.displayValue.includes('10 chars]'));
23
+ // Should contain the pasted content in the map
24
+ const pasteIds = Object.keys(result.placeholderContent);
25
+ t.is(pasteIds.length, 1);
26
+ const pasteContent = result.placeholderContent[pasteIds[0]];
27
+ t.is(pasteContent.content, pastedText);
28
+ t.is(pasteContent.type, PlaceholderType.PASTE);
29
+ });
14
30
  test('handlePaste creates placeholder for large pastes', t => {
15
- const pastedText = 'a'.repeat(600); // Above 500 char threshold
31
+ const pastedText = 'a'.repeat(600);
16
32
  const currentDisplayValue = 'existing content';
17
33
  const currentPlaceholderContent = {};
18
34
  const result = handlePaste(pastedText, currentDisplayValue, currentPlaceholderContent);
@@ -1 +1 @@
1
- {"version":3,"file":"paste-utils.spec.js","sourceRoot":"","sources":["../../source/utils/paste-utils.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paste-utils.spec.js","sourceRoot":"","sources":["../../source/utils/paste-utils.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../source/utils/update-checker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAsB,UAAU,EAAC,MAAM,eAAe,CAAC;AAgGnE;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAoC3D"}
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../source/utils/update-checker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAsB,UAAU,EAAC,MAAM,eAAe,CAAC;AA8GnE;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CA8D3D"}
@@ -3,6 +3,16 @@ import { join, dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { loadPreferences, savePreferences } from '../config/preferences.js';
5
5
  import { logError } from '../utils/message-queue.js';
6
+ import { detectInstallationMethod } from './installation-detector.js';
7
+ const UPDATE_COMMANDS = {
8
+ NPM: 'npm update -g @nanocollective/nanocoder',
9
+ // Check if package exists before upgrading to provide better error messages
10
+ HOMEBREW: 'brew list nanocoder >/dev/null 2>&1 && brew upgrade nanocoder || (echo "Error: nanocoder not found in Homebrew. Please install it first with: brew install nanocoder" && exit 1)',
11
+ };
12
+ const UPDATE_MESSAGES = {
13
+ NIX: 'To update, re-run: nix run github:Nano-Collective/nanocoder (or update your flake).',
14
+ UNKNOWN: 'A new version is available. Please update using your package manager.',
15
+ };
6
16
  const __filename = fileURLToPath(import.meta.url);
7
17
  const __dirname = dirname(__filename);
8
18
  /**
@@ -90,13 +100,31 @@ export async function checkForUpdates() {
90
100
  };
91
101
  }
92
102
  const hasUpdate = isNewerVersion(currentVersion, latestVersion);
103
+ function getUpdateDetails(hasUpdate) {
104
+ if (!hasUpdate) {
105
+ return {};
106
+ }
107
+ const method = detectInstallationMethod();
108
+ // Use constants defined at top of file for maintainability
109
+ switch (method) {
110
+ case 'npm':
111
+ return { command: UPDATE_COMMANDS.NPM };
112
+ case 'homebrew':
113
+ return { command: UPDATE_COMMANDS.HOMEBREW };
114
+ case 'nix':
115
+ return { message: UPDATE_MESSAGES.NIX };
116
+ default:
117
+ // For 'unknown' fallback to a general message (do not attempt to run a command)
118
+ return { message: UPDATE_MESSAGES.UNKNOWN };
119
+ }
120
+ }
121
+ const updateDetails = getUpdateDetails(hasUpdate);
93
122
  return {
94
123
  hasUpdate,
95
124
  currentVersion,
96
125
  latestVersion,
97
- updateCommand: hasUpdate
98
- ? 'npm update -g @nanocollective/nanocoder'
99
- : undefined,
126
+ updateCommand: updateDetails.command,
127
+ updateMessage: updateDetails.message,
100
128
  };
101
129
  }
102
130
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../source/utils/update-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../source/utils/update-checker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,15 @@
1
1
  import test from 'ava';
2
+ import { readFileSync } from 'fs';
3
+ import { join, dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
2
5
  import { checkForUpdates } from './update-checker.js';
3
6
  console.log(`\nupdate-checker.spec.ts`);
7
+ // Get current version from package.json dynamically
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ const packageJsonPath = join(__dirname, '../../package.json');
11
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
12
+ const CURRENT_VERSION = packageJson.version;
4
13
  // Mock fetch globally for testing
5
14
  const originalFetch = globalThis.fetch;
6
15
  // Helper to create mock fetch responses
@@ -20,79 +29,102 @@ function createMockFetch(status, data, shouldReject = false) {
20
29
  test.beforeEach(() => {
21
30
  // Reset fetch before each test
22
31
  globalThis.fetch = originalFetch;
32
+ // Default to npm install override
33
+ process.env.NANOCODER_INSTALL_METHOD = 'npm';
23
34
  });
24
35
  test.afterEach(() => {
25
- // Restore original fetch after each test
36
+ // Restore original fetch and env after each test
26
37
  globalThis.fetch = originalFetch;
38
+ delete process.env.NANOCODER_INSTALL_METHOD;
27
39
  });
28
40
  // Version Comparison Tests
29
41
  test('checkForUpdates: detects newer major version', async (t) => {
42
+ // Calculate a newer major version dynamically
43
+ const currentParts = CURRENT_VERSION.split('.');
44
+ const newerMajorVersion = `${parseInt(currentParts[0]) + 1}.0.0`;
30
45
  globalThis.fetch = createMockFetch(200, {
31
- version: '2.0.0',
46
+ version: newerMajorVersion,
32
47
  name: '@nanocollective/nanocoder',
33
48
  });
34
49
  const result = await checkForUpdates();
35
50
  t.true(result.hasUpdate);
36
- t.is(result.currentVersion, '1.16.3');
37
- t.is(result.latestVersion, '2.0.0');
51
+ t.is(result.currentVersion, CURRENT_VERSION);
52
+ t.is(result.latestVersion, newerMajorVersion);
38
53
  t.truthy(result.updateCommand);
39
54
  });
40
55
  test('checkForUpdates: detects newer minor version', async (t) => {
56
+ // Calculate a newer minor version dynamically
57
+ const currentParts = CURRENT_VERSION.split('.');
58
+ const newerMinorVersion = `${currentParts[0]}.${parseInt(currentParts[1]) + 1}.0`;
41
59
  globalThis.fetch = createMockFetch(200, {
42
- version: '1.17.0',
60
+ version: newerMinorVersion,
43
61
  name: '@nanocollective/nanocoder',
44
62
  });
45
63
  const result = await checkForUpdates();
46
64
  t.true(result.hasUpdate);
47
- t.is(result.latestVersion, '1.17.0');
65
+ t.is(result.latestVersion, newerMinorVersion);
48
66
  });
49
67
  test('checkForUpdates: detects newer patch version', async (t) => {
68
+ // Calculate a newer patch version dynamically
69
+ const currentParts = CURRENT_VERSION.split('.');
70
+ const newerPatchVersion = `${currentParts[0]}.${currentParts[1]}.${parseInt(currentParts[2]) + 1}`;
50
71
  globalThis.fetch = createMockFetch(200, {
51
- version: '1.16.4',
72
+ version: newerPatchVersion,
52
73
  name: '@nanocollective/nanocoder',
53
74
  });
54
75
  const result = await checkForUpdates();
55
76
  t.true(result.hasUpdate);
56
- t.is(result.latestVersion, '1.16.4');
77
+ t.is(result.latestVersion, newerPatchVersion);
57
78
  });
58
79
  test('checkForUpdates: detects same version (no update)', async (t) => {
59
80
  globalThis.fetch = createMockFetch(200, {
60
- version: '1.16.3',
81
+ version: CURRENT_VERSION,
61
82
  name: '@nanocollective/nanocoder',
62
83
  });
63
84
  const result = await checkForUpdates();
64
85
  t.false(result.hasUpdate);
65
- t.is(result.currentVersion, '1.16.3');
66
- t.is(result.latestVersion, '1.16.3');
86
+ t.is(result.currentVersion, CURRENT_VERSION);
87
+ t.is(result.latestVersion, CURRENT_VERSION);
67
88
  t.is(result.updateCommand, undefined);
68
89
  });
69
90
  test('checkForUpdates: detects older version (no update)', async (t) => {
91
+ // Calculate an older patch version dynamically
92
+ const currentParts = CURRENT_VERSION.split('.');
93
+ const patchNum = parseInt(currentParts[2]);
94
+ // Use 0 if current patch is already 0, otherwise decrement
95
+ const olderPatchVersion = `${currentParts[0]}.${currentParts[1]}.${Math.max(0, patchNum - 1)}`;
70
96
  globalThis.fetch = createMockFetch(200, {
71
- version: '1.16.2',
97
+ version: olderPatchVersion,
72
98
  name: '@nanocollective/nanocoder',
73
99
  });
74
100
  const result = await checkForUpdates();
75
101
  t.false(result.hasUpdate);
76
- t.is(result.latestVersion, '1.16.2');
102
+ t.is(result.latestVersion, olderPatchVersion);
77
103
  });
78
104
  test('checkForUpdates: handles version with v prefix', async (t) => {
105
+ // Use a newer major version with v prefix
106
+ const currentParts = CURRENT_VERSION.split('.');
107
+ const newerMajorVersion = `v${parseInt(currentParts[0]) + 1}.0.0`;
79
108
  globalThis.fetch = createMockFetch(200, {
80
- version: 'v2.0.0',
109
+ version: newerMajorVersion,
81
110
  name: '@nanocollective/nanocoder',
82
111
  });
83
112
  const result = await checkForUpdates();
84
113
  t.true(result.hasUpdate);
85
- t.is(result.latestVersion, 'v2.0.0');
114
+ t.is(result.latestVersion, newerMajorVersion);
86
115
  });
87
116
  test('checkForUpdates: handles pre-release versions', async (t) => {
117
+ // Use a newer major version with pre-release tag
118
+ const currentParts = CURRENT_VERSION.split('.');
119
+ const newerPreReleaseVersion = `${parseInt(currentParts[0]) + 1}.0.0-beta.1`;
88
120
  globalThis.fetch = createMockFetch(200, {
89
- version: '2.0.0-beta.1',
121
+ version: newerPreReleaseVersion,
90
122
  name: '@nanocollective/nanocoder',
91
123
  });
92
124
  const result = await checkForUpdates();
93
- // Pre-release info is stripped, so 2.0.0 > 1.16.3
125
+ // Pre-release info is stripped during comparison
94
126
  t.true(result.hasUpdate);
95
- t.is(result.latestVersion, '2.0.0-beta.1');
127
+ t.is(result.latestVersion, newerPreReleaseVersion);
96
128
  });
97
129
  // Network Error Handling Tests
98
130
  test('checkForUpdates: handles network errors gracefully', async (t) => {
@@ -138,6 +170,24 @@ test('checkForUpdates: returns correct update command', async (t) => {
138
170
  const result = await checkForUpdates();
139
171
  t.is(result.updateCommand, 'npm update -g @nanocollective/nanocoder');
140
172
  });
173
+ test('checkForUpdates: returns correct Homebrew command when installed via Homebrew', async (t) => {
174
+ globalThis.fetch = createMockFetch(200, {
175
+ version: '2.0.0',
176
+ name: '@nanocollective/nanocoder',
177
+ });
178
+ process.env.NANOCODER_INSTALL_METHOD = 'homebrew';
179
+ const result = await checkForUpdates();
180
+ t.is(result.updateCommand, 'brew list nanocoder >/dev/null 2>&1 && brew upgrade nanocoder || (echo "Error: nanocoder not found in Homebrew. Please install it first with: brew install nanocoder" && exit 1)');
181
+ });
182
+ test('checkForUpdates: returns message for Nix installations (no executable command)', async (t) => {
183
+ globalThis.fetch = createMockFetch(200, {
184
+ version: '2.0.0',
185
+ name: '@nanocollective/nanocoder',
186
+ });
187
+ process.env.NANOCODER_INSTALL_METHOD = 'nix';
188
+ const result = await checkForUpdates();
189
+ t.is(result.updateMessage, 'To update, re-run: nix run github:Nano-Collective/nanocoder (or update your flake).');
190
+ });
141
191
  test('checkForUpdates: includes current version in response', async (t) => {
142
192
  globalThis.fetch = createMockFetch(200, {
143
193
  version: '2.0.0',
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.spec.js","sourceRoot":"","sources":["../../source/utils/update-checker.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-checker.spec.js","sourceRoot":"","sources":["../../source/utils/update-checker.spec.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@ import SelectInput from 'ink-select-input';
5
5
  import { join } from 'node:path';
6
6
  import { existsSync } from 'node:fs';
7
7
  import { colors } from '../../config/index.js';
8
- import { getAppDataPath } from '../../config/paths.js';
8
+ import { getConfigPath } from '../../config/paths.js';
9
9
  import { useResponsiveTerminal } from '../../hooks/useTerminalWidth.js';
10
10
  export function LocationStep({ onComplete, onBack, projectDir, }) {
11
11
  const { isNarrow, truncatePath } = useResponsiveTerminal();
12
12
  const projectPath = join(projectDir, 'agents.config.json');
13
- const globalPath = join(getAppDataPath(), 'agents.config.json');
13
+ const globalPath = join(getConfigPath(), 'agents.config.json');
14
14
  const projectExists = existsSync(projectPath);
15
15
  const globalExists = existsSync(globalPath);
16
16
  const [mode, setMode] = useState(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"location-step.js","sourceRoot":"","sources":["../../../source/wizard/steps/location-step.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location-step.js","sourceRoot":"","sources":["../../../source/wizard/steps/location-step.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAe/D,MAAM,UAAU,YAAY,CAAC,EAC5B,UAAU,EACV,MAAM,EACN,UAAU,GACS;IACnB,MAAM,EAAC,QAAQ,EAAE,YAAY,EAAC,GAAG,qBAAqB,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAE9B,GAAG,EAAE;QACN,sDAAsD;QACtD,IAAI,aAAa,EAAE,CAAC;YACnB,OAAO,iBAAiB,CAAC;QAC1B,CAAC;QACD,sEAAsE;QACtE,0CAA0C;QAC1C,OAAO,iBAAiB,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,eAAe,GAAqB;QACzC;YACC,KAAK,EAAE,2BAA2B;YAClC,KAAK,EAAE,SAAS;SAChB;QACD;YACC,KAAK,EAAE,oBAAoB;YAC3B,KAAK,EAAE,QAAQ;SACf;KACD,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC7B,EAAC,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAC;QACjD,EAAC,KAAK,EAAE,yCAAyC,EAAE,KAAK,EAAE,KAAK,EAAC;KAChE,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,IAAoB,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QACjE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAmB,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtE,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,SAAS;YACT,MAAM,EAAE,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC;IAEF,sEAAsE;IACtE,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC1B,0EAA0E;YAC1E,IAAI,IAAI,KAAK,iBAAiB,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACP,6CAA6C;gBAC7C,MAAM,EAAE,EAAE,CAAC;YACZ,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChC,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC3C,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,OAAO,wCACP,GAAG,IACrB,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAC3B,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,GACnD,IACF,EACN,KAAC,WAAW,IACX,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,GACpE,IACG,CACN,CAAC;IACH,CAAC;IAED,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAC9B,QAAQ;wBACR,CAAC,CAAC,yBAAyB;wBAC3B,CAAC,CAAC,oDAAoD,GACjD,GACF,EACL,YAAY,IAAI,CAAC,aAAa,IAAI,CAClC,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC3C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YACzB,QAAQ;4BACR,CAAC,CAAC,4BAA4B;4BAC9B,CAAC,CAAC,+BAA+B,GAC5B,EACN,CAAC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,UAAU,GAAQ,IAC3D,CACN,EACD,KAAC,WAAW,IACX,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,IAAoB,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAC7D,EACD,CAAC,QAAQ,IAAI,CACb,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,4GAGtB,GACF,CACN,IACI,CACN,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nanocollective/nanocoder",
3
3
  "main": "dist/cli.js",
4
- "version": "1.16.3",
4
+ "version": "1.16.4",
5
5
  "description": "A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter",
6
6
  "keywords": [
7
7
  "cli",