@wonderwhy-er/desktop-commander 0.2.1 → 0.2.3

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 (52) hide show
  1. package/README.md +69 -9
  2. package/dist/command-manager.js.map +1 -0
  3. package/dist/config-manager.js.map +1 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/custom-stdio.js.map +1 -0
  6. package/dist/error-handlers.js.map +1 -0
  7. package/dist/handlers/edit-search-handlers.js.map +1 -0
  8. package/dist/handlers/filesystem-handlers.js +2 -4
  9. package/dist/handlers/filesystem-handlers.js.map +1 -0
  10. package/dist/handlers/index.js.map +1 -0
  11. package/dist/handlers/process-handlers.js.map +1 -0
  12. package/dist/handlers/terminal-handlers.js.map +1 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server.js +41 -25
  15. package/dist/server.js.map +1 -0
  16. package/dist/setup-claude-server.js +44 -36
  17. package/dist/terminal-manager.d.ts +7 -1
  18. package/dist/terminal-manager.js +9 -1
  19. package/dist/terminal-manager.js.map +1 -0
  20. package/dist/tools/config.js.map +1 -0
  21. package/dist/tools/edit.js +17 -12
  22. package/dist/tools/edit.js.map +1 -0
  23. package/dist/tools/execute.js +65 -4
  24. package/dist/tools/execute.js.map +1 -0
  25. package/dist/tools/filesystem.d.ts +10 -0
  26. package/dist/tools/filesystem.js +290 -41
  27. package/dist/tools/filesystem.js.map +1 -0
  28. package/dist/tools/fuzzySearch.js.map +1 -0
  29. package/dist/tools/improved-process-tools.d.ts +24 -0
  30. package/dist/tools/improved-process-tools.js +312 -0
  31. package/dist/tools/mime-types.js.map +1 -0
  32. package/dist/tools/process.js.map +1 -0
  33. package/dist/tools/schemas.d.ts +6 -3
  34. package/dist/tools/schemas.js +2 -2
  35. package/dist/tools/schemas.js.map +1 -0
  36. package/dist/tools/search.js.map +1 -0
  37. package/dist/types.js.map +1 -0
  38. package/dist/utils/capture.d.ts +2 -0
  39. package/dist/utils/capture.js +17 -8
  40. package/dist/utils/capture.js.map +1 -0
  41. package/dist/utils/fuzzySearchLogger.js.map +1 -0
  42. package/dist/utils/lineEndingHandler.js.map +1 -0
  43. package/dist/utils/process-detection.d.ts +23 -0
  44. package/dist/utils/process-detection.js +150 -0
  45. package/dist/utils/system-info.d.ts +30 -0
  46. package/dist/utils/system-info.js +146 -0
  47. package/dist/utils/trackTools.js.map +1 -0
  48. package/dist/utils/withTimeout.js.map +1 -0
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.js +1 -1
  51. package/dist/version.js.map +1 -0
  52. package/package.json +2 -1
@@ -0,0 +1,30 @@
1
+ export interface SystemInfo {
2
+ platform: string;
3
+ platformName: string;
4
+ defaultShell: string;
5
+ pathSeparator: string;
6
+ isWindows: boolean;
7
+ isMacOS: boolean;
8
+ isLinux: boolean;
9
+ examplePaths: {
10
+ home: string;
11
+ temp: string;
12
+ absolute: string;
13
+ };
14
+ }
15
+ /**
16
+ * Get comprehensive system information for tool prompts
17
+ */
18
+ export declare function getSystemInfo(): SystemInfo;
19
+ /**
20
+ * Generate OS-specific guidance for tool prompts
21
+ */
22
+ export declare function getOSSpecificGuidance(systemInfo: SystemInfo): string;
23
+ /**
24
+ * Get common development tool guidance based on OS
25
+ */
26
+ export declare function getDevelopmentToolGuidance(systemInfo: SystemInfo): string;
27
+ /**
28
+ * Get path guidance (simplified since paths are normalized)
29
+ */
30
+ export declare function getPathGuidance(systemInfo: SystemInfo): string;
@@ -0,0 +1,146 @@
1
+ import os from 'os';
2
+ /**
3
+ * Get comprehensive system information for tool prompts
4
+ */
5
+ export function getSystemInfo() {
6
+ const platform = os.platform();
7
+ const isWindows = platform === 'win32';
8
+ const isMacOS = platform === 'darwin';
9
+ const isLinux = platform === 'linux';
10
+ let platformName;
11
+ let defaultShell;
12
+ let pathSeparator;
13
+ let examplePaths;
14
+ if (isWindows) {
15
+ platformName = 'Windows';
16
+ defaultShell = 'powershell.exe';
17
+ pathSeparator = '\\';
18
+ examplePaths = {
19
+ home: 'C:\\Users\\username',
20
+ temp: 'C:\\Temp',
21
+ absolute: 'C:\\path\\to\\file.txt'
22
+ };
23
+ }
24
+ else if (isMacOS) {
25
+ platformName = 'macOS';
26
+ defaultShell = 'zsh';
27
+ pathSeparator = '/';
28
+ examplePaths = {
29
+ home: '/Users/username',
30
+ temp: '/tmp',
31
+ absolute: '/path/to/file.txt'
32
+ };
33
+ }
34
+ else if (isLinux) {
35
+ platformName = 'Linux';
36
+ defaultShell = 'bash';
37
+ pathSeparator = '/';
38
+ examplePaths = {
39
+ home: '/home/username',
40
+ temp: '/tmp',
41
+ absolute: '/path/to/file.txt'
42
+ };
43
+ }
44
+ else {
45
+ // Fallback for other Unix-like systems
46
+ platformName = 'Unix';
47
+ defaultShell = 'bash';
48
+ pathSeparator = '/';
49
+ examplePaths = {
50
+ home: '/home/username',
51
+ temp: '/tmp',
52
+ absolute: '/path/to/file.txt'
53
+ };
54
+ }
55
+ return {
56
+ platform,
57
+ platformName,
58
+ defaultShell,
59
+ pathSeparator,
60
+ isWindows,
61
+ isMacOS,
62
+ isLinux,
63
+ examplePaths
64
+ };
65
+ }
66
+ /**
67
+ * Generate OS-specific guidance for tool prompts
68
+ */
69
+ export function getOSSpecificGuidance(systemInfo) {
70
+ const { platformName, defaultShell, isWindows } = systemInfo;
71
+ let guidance = `Running on ${platformName}. Default shell: ${defaultShell}.`;
72
+ if (isWindows) {
73
+ guidance += `
74
+
75
+ WINDOWS-SPECIFIC TROUBLESHOOTING:
76
+ - If Node.js/Python commands fail with "not recognized" errors:
77
+ * Try different shells: specify shell parameter as "cmd" or "powershell.exe"
78
+ * PowerShell may have execution policy restrictions for some tools
79
+ * CMD typically has better compatibility with development tools
80
+ * Use set_config_value to change defaultShell if needed
81
+ - Windows services and processes use different commands (Get-Process vs ps)
82
+ - Package managers: choco, winget, scoop instead of apt/brew
83
+ - Environment variables: $env:VAR instead of $VAR
84
+ - File permissions work differently than Unix systems`;
85
+ }
86
+ else if (systemInfo.isMacOS) {
87
+ guidance += `
88
+
89
+ MACOS-SPECIFIC NOTES:
90
+ - Package manager: brew (Homebrew) is commonly used
91
+ - Python 3 might be 'python3' command, not 'python'
92
+ - Some GNU tools have different names (e.g., gsed instead of sed)
93
+ - System Integrity Protection (SIP) may block certain operations
94
+ - Use 'open' command to open files/applications from terminal`;
95
+ }
96
+ else {
97
+ guidance += `
98
+
99
+ LINUX-SPECIFIC NOTES:
100
+ - Package managers vary by distro: apt, yum, dnf, pacman, zypper
101
+ - Python 3 might be 'python3' command, not 'python'
102
+ - Standard Unix shell tools available (grep, awk, sed, etc.)
103
+ - File permissions and ownership important for many operations
104
+ - Systemd services common on modern distributions`;
105
+ }
106
+ return guidance;
107
+ }
108
+ /**
109
+ * Get common development tool guidance based on OS
110
+ */
111
+ export function getDevelopmentToolGuidance(systemInfo) {
112
+ const { isWindows, isMacOS, isLinux, platformName } = systemInfo;
113
+ if (isWindows) {
114
+ return `
115
+ COMMON WINDOWS DEVELOPMENT TOOLS:
116
+ - Node.js: Usually installed globally, accessible from any shell
117
+ - Python: May be 'python' or 'py' command, check both
118
+ - Git: Git Bash provides Unix-like environment
119
+ - WSL: Windows Subsystem for Linux available for Unix tools
120
+ - Visual Studio tools: cl, msbuild for C++ compilation`;
121
+ }
122
+ else if (isMacOS) {
123
+ return `
124
+ COMMON MACOS DEVELOPMENT TOOLS:
125
+ - Xcode Command Line Tools: Required for many development tools
126
+ - Homebrew: Primary package manager for development tools
127
+ - Python: Usually python3, check if python points to Python 2
128
+ - Node.js: Available via brew or direct installer
129
+ - Ruby: System Ruby available, rbenv/rvm for version management`;
130
+ }
131
+ else {
132
+ return `
133
+ COMMON LINUX DEVELOPMENT TOOLS:
134
+ - Package managers: Install tools via distribution package manager
135
+ - Python: Usually python3, python may point to Python 2
136
+ - Node.js: Available via package manager or NodeSource repository
137
+ - Build tools: gcc, make typically available or easily installed
138
+ - Container tools: docker, podman common for development`;
139
+ }
140
+ }
141
+ /**
142
+ * Get path guidance (simplified since paths are normalized)
143
+ */
144
+ export function getPathGuidance(systemInfo) {
145
+ return `Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction.`;
146
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackTools.js","sourceRoot":"","sources":["../../src/utils/trackTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvE,+CAA+C;AAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC5C,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAc;IAClE,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,uBAAuB;QACvB,MAAM,QAAQ,GAAG,GAAG,SAAS,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAEvH,wCAAwC;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrD,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yCAAyC;QAC3C,CAAC;QAED,sDAAsD;QACtD,IAAI,QAAQ,IAAI,uBAAuB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAE7C,oDAAoD;YACpD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACnR,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,eAAe,GAAG,OAAO,EAAE,CAAC,CAAC;YAEnF,0BAA0B;YAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QAED,wEAAwE;QACxE,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAEjD,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,OAAO,CAAC,8BAA8B,EAAE;YAC5C,KAAK,EAAE,YAAY;YACnB,QAAQ;SACT,CAAC,CAAC;QACH,yDAAyD;QACzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withTimeout.js","sourceRoot":"","sources":["../../src/utils/withTimeout.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACvB,SAAqB,EACrB,SAAiB,EACjB,aAAqB,EACrB,YAAe;IAEf,kFAAkF;IAClF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,iBAAiB;QACjB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC;gBACnB,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBACxB,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,wDAAwD;oBACxD,sDAAsD;oBACtD,MAAM,CAAC,cAAc,aAAa,oBAAoB,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC;gBACtF,CAAC;YACL,CAAC;QACL,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,wBAAwB;QACxB,SAAS;aACJ,IAAI,CAAC,MAAM,CAAC,EAAE;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC;gBACnB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC;gBACnB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBACxB,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,oFAAoF;oBACpF,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.2.1";
1
+ export declare const VERSION = "0.2.3";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.2.1';
1
+ export const VERSION = '0.2.3';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wonderwhy-er/desktop-commander",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "MCP server for terminal operations and file editing",
5
5
  "license": "MIT",
6
6
  "author": "Eduards Ruzga",
@@ -32,6 +32,7 @@
32
32
  "setup:debug": "npm install && npm run build && node setup-claude-server.js --debug",
33
33
  "prepare": "npm run build",
34
34
  "test": "node test/run-all-tests.js",
35
+ "test:debug": "node --inspect test/run-all-tests.js",
35
36
  "link:local": "npm run build && npm link",
36
37
  "unlink:local": "npm unlink",
37
38
  "inspector": "npx @modelcontextprotocol/inspector dist/index.js",