@wonderwhy-er/desktop-commander 0.2.5 → 0.2.7

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 (113) hide show
  1. package/dist/index-dxt.js +10 -47
  2. package/dist/server.js +6 -0
  3. package/dist/tools/filesystem.js +37 -4
  4. package/dist/utils/usageTracker.js +8 -5
  5. package/dist/version.d.ts +1 -1
  6. package/dist/version.js +1 -1
  7. package/package.json +2 -1
  8. package/dist/REPLSessionManager.d.ts +0 -109
  9. package/dist/REPLSessionManager.js +0 -364
  10. package/dist/REPLSessionManager.test.d.ts +0 -1
  11. package/dist/REPLSessionManager.test.js +0 -75
  12. package/dist/client/replClient.d.ts +0 -63
  13. package/dist/client/replClient.js +0 -217
  14. package/dist/client/sshClient.d.ts +0 -82
  15. package/dist/client/sshClient.js +0 -200
  16. package/dist/command-manager.js.map +0 -1
  17. package/dist/config-manager.js.map +0 -1
  18. package/dist/config.js.map +0 -1
  19. package/dist/custom-stdio.js.map +0 -1
  20. package/dist/error-handlers.js.map +0 -1
  21. package/dist/handlers/command-handlers.d.ts +0 -13
  22. package/dist/handlers/command-handlers.js +0 -43
  23. package/dist/handlers/edit-search-handlers.js.map +0 -1
  24. package/dist/handlers/filesystem-handlers.js.map +0 -1
  25. package/dist/handlers/fuzzy-search-log-handlers.d.ts +0 -13
  26. package/dist/handlers/fuzzy-search-log-handlers.js +0 -179
  27. package/dist/handlers/index.js.map +0 -1
  28. package/dist/handlers/process-handlers.js.map +0 -1
  29. package/dist/handlers/repl-handlers.d.ts +0 -21
  30. package/dist/handlers/repl-handlers.js +0 -37
  31. package/dist/handlers/replCommandHandler.d.ts +0 -125
  32. package/dist/handlers/replCommandHandler.js +0 -255
  33. package/dist/handlers/replCommandHandler.test.d.ts +0 -1
  34. package/dist/handlers/replCommandHandler.test.js +0 -103
  35. package/dist/handlers/terminal-handlers.js.map +0 -1
  36. package/dist/index-with-startup-detection.d.ts +0 -5
  37. package/dist/index-with-startup-detection.js +0 -180
  38. package/dist/index.js.map +0 -1
  39. package/dist/logging.d.ts +0 -2
  40. package/dist/logging.js +0 -28
  41. package/dist/polyform-license-src/edit/edit.d.ts +0 -15
  42. package/dist/polyform-license-src/edit/edit.js +0 -163
  43. package/dist/polyform-license-src/edit/fuzzySearch.d.ts +0 -30
  44. package/dist/polyform-license-src/edit/fuzzySearch.js +0 -121
  45. package/dist/polyform-license-src/edit/handlers.d.ts +0 -16
  46. package/dist/polyform-license-src/edit/handlers.js +0 -24
  47. package/dist/polyform-license-src/edit/index.d.ts +0 -12
  48. package/dist/polyform-license-src/edit/index.js +0 -13
  49. package/dist/polyform-license-src/edit/schemas.d.ts +0 -25
  50. package/dist/polyform-license-src/edit/schemas.js +0 -16
  51. package/dist/polyform-license-src/index.d.ts +0 -9
  52. package/dist/polyform-license-src/index.js +0 -10
  53. package/dist/repl-manager.d.ts +0 -73
  54. package/dist/repl-manager.js +0 -407
  55. package/dist/replIntegration.d.ts +0 -14
  56. package/dist/replIntegration.js +0 -27
  57. package/dist/sandbox/index.d.ts +0 -9
  58. package/dist/sandbox/index.js +0 -50
  59. package/dist/sandbox/mac-sandbox.d.ts +0 -19
  60. package/dist/sandbox/mac-sandbox.js +0 -174
  61. package/dist/server.js.map +0 -1
  62. package/dist/setup.log +0 -32
  63. package/dist/terminal-manager.js.map +0 -1
  64. package/dist/tools/client.d.ts +0 -10
  65. package/dist/tools/client.js +0 -13
  66. package/dist/tools/command-block.d.ts +0 -18
  67. package/dist/tools/command-block.js +0 -62
  68. package/dist/tools/config.js.map +0 -1
  69. package/dist/tools/debug-path.d.ts +0 -1
  70. package/dist/tools/debug-path.js +0 -44
  71. package/dist/tools/edit.js.map +0 -1
  72. package/dist/tools/enhanced-read-output.js +0 -69
  73. package/dist/tools/enhanced-send-input.js +0 -111
  74. package/dist/tools/environment.d.ts +0 -55
  75. package/dist/tools/environment.js +0 -65
  76. package/dist/tools/execute.d.ts +0 -10
  77. package/dist/tools/execute.js +0 -158
  78. package/dist/tools/execute.js.map +0 -1
  79. package/dist/tools/filesystem-fixed.d.ts +0 -22
  80. package/dist/tools/filesystem-fixed.js +0 -176
  81. package/dist/tools/filesystem.js.map +0 -1
  82. package/dist/tools/fuzzySearch.js.map +0 -1
  83. package/dist/tools/mime-types.js.map +0 -1
  84. package/dist/tools/pdf-reader.d.ts +0 -13
  85. package/dist/tools/pdf-reader.js +0 -214
  86. package/dist/tools/process.js.map +0 -1
  87. package/dist/tools/progress.d.ts +0 -20
  88. package/dist/tools/progress.js +0 -59
  89. package/dist/tools/repl.d.ts +0 -21
  90. package/dist/tools/repl.js +0 -217
  91. package/dist/tools/schemas.js.map +0 -1
  92. package/dist/tools/search.js.map +0 -1
  93. package/dist/tools/send-input.d.ts +0 -2
  94. package/dist/tools/send-input.js +0 -45
  95. package/dist/types.js.map +0 -1
  96. package/dist/utils/capture.js.map +0 -1
  97. package/dist/utils/early-logger.d.ts +0 -4
  98. package/dist/utils/early-logger.js +0 -35
  99. package/dist/utils/fuzzySearchLogger.js.map +0 -1
  100. package/dist/utils/lineEndingHandler.js.map +0 -1
  101. package/dist/utils/lineEndingHandler_optimized.d.ts +0 -21
  102. package/dist/utils/lineEndingHandler_optimized.js +0 -77
  103. package/dist/utils/mcp-logger.d.ts +0 -30
  104. package/dist/utils/mcp-logger.js +0 -59
  105. package/dist/utils/smithery-detector.d.ts +0 -94
  106. package/dist/utils/smithery-detector.js +0 -292
  107. package/dist/utils/startup-detector.d.ts +0 -65
  108. package/dist/utils/startup-detector.js +0 -390
  109. package/dist/utils/trackTools.js.map +0 -1
  110. package/dist/utils/withTimeout.js.map +0 -1
  111. package/dist/utils.d.ts +0 -26
  112. package/dist/utils.js +0 -227
  113. package/dist/version.js.map +0 -1
@@ -1,174 +0,0 @@
1
- import { spawn } from 'child_process';
2
- import fs from 'fs/promises';
3
- import path from 'path';
4
- import os from 'os';
5
- /**
6
- * Generate a temporary sandbox profile for macOS that restricts access to allowed directories
7
- * @param allowedDirectories Array of directories that should be accessible
8
- * @returns Path to the generated sandbox profile file
9
- */
10
- export async function generateSandboxProfile(allowedDirectories) {
11
- // Create a temporary directory for the sandbox profile
12
- const tempDir = path.join(os.tmpdir(), 'claude-server-sandbox');
13
- // Ensure temp directory exists
14
- try {
15
- // Check if directory exists first
16
- try {
17
- await fs.access(tempDir);
18
- console.log(`Temp directory exists: ${tempDir}`);
19
- }
20
- catch {
21
- // Directory doesn't exist, create it
22
- console.log(`Creating temp directory: ${tempDir}`);
23
- await fs.mkdir(tempDir, { recursive: true });
24
- console.log(`Temp directory created: ${tempDir}`);
25
- }
26
- }
27
- catch (error) {
28
- console.error('Error creating temp directory for sandbox:', error);
29
- throw new Error(`Failed to create sandbox temp directory: ${error}`);
30
- }
31
- // Create the sandbox profile content - based on our tests, we need a simpler approach
32
- // that just allows by default and then adds specific permissions for allowed directories
33
- // Use a more restrictive approach - deny all file access, then explicitly allow only what we need
34
- let profileContent = `(version 1)
35
- (debug deny)
36
- (allow default)
37
- (deny file-read* file-write*)
38
- `;
39
- // Add explicit permissions for allowed directories
40
- for (const dir of allowedDirectories) {
41
- // Ensure path is absolute
42
- const absPath = path.resolve(dir);
43
- profileContent += `(allow file-read* file-write* (subpath "${absPath}"))\n`;
44
- }
45
- // Add system paths needed for basic command execution
46
- profileContent += `
47
- (allow file-read* (subpath "/usr"))
48
- (allow file-read* (subpath "/bin"))
49
- (allow file-read* (subpath "/sbin"))
50
- (allow file-read* (subpath "/Library"))
51
- (allow file-read* (subpath "/System"))
52
- (allow file-read* (subpath "/tmp"))
53
- (allow file-read* (subpath "/dev"))
54
- (allow file-read* (subpath "/etc"))
55
- (allow file-read* (subpath "${os.homedir()}/.zshrc"))
56
- (allow file-read* (subpath "${os.homedir()}/.bash_profile"))
57
- (allow file-read* (subpath "${os.homedir()}/.bashrc"))
58
- (allow process-exec)
59
- (allow process-fork)
60
- (allow mach-lookup)
61
- (allow network-outbound)
62
- (allow system-socket)
63
- (allow sysctl-read)
64
- `;
65
- // Add comment for debugging
66
- profileContent += `\n; Allowed directories: ${allowedDirectories.join(', ')}\n`;
67
- // Write the profile to a temporary file
68
- const profilePath = path.join(tempDir, 'sandbox-profile.sb');
69
- try {
70
- // Write the profile with verbose logging
71
- console.log(`Writing sandbox profile to: ${profilePath}`);
72
- await fs.writeFile(profilePath, profileContent, 'utf-8');
73
- // Verify the file was created
74
- await fs.access(profilePath);
75
- console.log(`Sandbox profile created successfully`);
76
- // Log the profile content for debugging
77
- console.log(`Sandbox profile content:\n${profileContent}`);
78
- return profilePath;
79
- }
80
- catch (error) {
81
- console.error(`Error creating sandbox profile at ${profilePath}:`, error);
82
- throw new Error(`Failed to create sandbox profile: ${error}`);
83
- }
84
- }
85
- /**
86
- * Execute a command in a macOS sandbox with access restricted to allowed directories
87
- * @param command Command to execute
88
- * @param allowedDirectories Array of allowed directory paths
89
- * @param options Additional execution options
90
- * @returns Promise resolving to the execution result
91
- */
92
- export async function executeSandboxedCommand(command, allowedDirectories, timeoutMs = 30000) {
93
- try {
94
- // Generate the sandbox profile
95
- const profilePath = await generateSandboxProfile(allowedDirectories);
96
- // Create a wrapper script that will perform additional path checks
97
- // This is a belt-and-suspenders approach since our tests show the sandbox
98
- // doesn't perfectly restrict access to only allowed directories
99
- const wrapperScriptPath = path.join(os.tmpdir(), `claude-sandbox-wrapper-${Date.now()}.sh`);
100
- // Generate a script that does additional path validation
101
- // This will extract file paths from the command and verify they're in allowed directories
102
- const wrapperScript = `#!/bin/sh
103
- # Wrapper script for sandboxed execution
104
- # Only allows access to specific directories: ${allowedDirectories.join(', ')}
105
-
106
- # The actual command to run
107
- COMMAND="${command.replace(/"/g, '\\"')}"
108
-
109
- # Run the command in sandbox
110
- sandbox-exec -f "${profilePath}" /bin/sh -c "$COMMAND"
111
- EXIT_CODE=$?
112
-
113
- # Return the exit code from the sandbox
114
- exit $EXIT_CODE
115
- `;
116
- // Write the wrapper script
117
- await fs.writeFile(wrapperScriptPath, wrapperScript, { mode: 0o755 });
118
- // Log what we're doing
119
- console.log(`Executing sandboxed command via wrapper script`);
120
- console.log(`Command: ${command}`);
121
- console.log(`Allowed directories: ${allowedDirectories.join(', ')}`);
122
- // Execute the wrapper script
123
- const process = spawn(wrapperScriptPath, []);
124
- let output = '';
125
- let isBlocked = false;
126
- // Set up timeout
127
- const timeoutId = setTimeout(() => {
128
- isBlocked = true;
129
- }, timeoutMs);
130
- // Handle output
131
- process.stdout.on('data', (data) => {
132
- const text = data.toString();
133
- console.log(`Sandbox stdout: ${text}`);
134
- output += text;
135
- });
136
- process.stderr.on('data', (data) => {
137
- const text = data.toString();
138
- console.log(`Sandbox stderr: ${text}`);
139
- output += text;
140
- });
141
- // Return a promise that resolves when the process exits
142
- return new Promise((resolve) => {
143
- process.on('exit', (code) => {
144
- clearTimeout(timeoutId);
145
- console.log(`Sandbox process exited with code: ${code}`);
146
- // Clean up the temporary files
147
- Promise.all([
148
- fs.unlink(profilePath).catch(err => {
149
- console.error('Error removing temporary sandbox profile:', err);
150
- }),
151
- fs.unlink(wrapperScriptPath).catch(err => {
152
- console.error('Error removing temporary wrapper script:', err);
153
- })
154
- ]).finally(() => {
155
- resolve({
156
- output,
157
- exitCode: code,
158
- isBlocked,
159
- pid: process.pid || -1
160
- });
161
- });
162
- });
163
- });
164
- }
165
- catch (error) {
166
- console.error('Error in sandbox execution:', error);
167
- return {
168
- output: `Sandbox execution error: ${error instanceof Error ? error.message : String(error)}`,
169
- exitCode: 1,
170
- isBlocked: false,
171
- pid: -1
172
- };
173
- }
174
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/setup.log DELETED
@@ -1,32 +0,0 @@
1
- 2025-01-09T13:51:00.508Z - Successfully added MCP servers to Claude configuration!
2
- 2025-01-09T13:51:00.509Z - Configuration location: /Users/eduardruzga/Library/Application Support/Claude/claude_desktop_config.json
3
- 2025-01-09T13:51:00.509Z -
4
- To use the servers:
5
- 1. Restart Claude if it's currently running
6
- 2. The servers will be available in Claude's MCP server list
7
- 2025-01-09T13:52:55.111Z - Successfully added MCP servers to Claude configuration!
8
- 2025-01-09T13:52:55.113Z - Configuration location: /Users/eduardruzga/Library/Application Support/Claude/claude_desktop_config.json
9
- 2025-01-09T13:52:55.113Z -
10
- To use the servers:
11
- 1. Restart Claude if it's currently running
12
- 2. The servers will be available in Claude's MCP server list
13
- 2025-01-09T13:56:00.121Z - npm_lifecycle_event,file:///Users/eduardruzga/work/ClaudeServerCommander/dist/setup-claude-server.js,
14
- 2025-01-09T13:56:00.122Z - Successfully added MCP servers to Claude configuration!
15
- 2025-01-09T13:56:00.122Z - Configuration location: /Users/eduardruzga/Library/Application Support/Claude/claude_desktop_config.json
16
- 2025-01-09T13:56:00.122Z -
17
- To use the servers:
18
- 1. Restart Claude if it's currently running
19
- 2. The servers will be available in Claude's MCP server list
20
- 2025-01-09T13:57:23.336Z - npm_lifecycle_event,file:///Users/eduardruzga/work/ClaudeServerCommander/dist/setup-claude-server.js,
21
- 2025-01-09T13:57:23.338Z - Successfully added MCP servers to Claude configuration!
22
- 2025-01-09T13:57:23.338Z - Configuration location: /Users/eduardruzga/Library/Application Support/Claude/claude_desktop_config.json
23
- 2025-01-09T13:57:23.338Z -
24
- To use the servers:
25
- 1. Restart Claude if it's currently running
26
- 2. The servers will be available in Claude's MCP server list
27
- 2025-01-09T14:16:00.862Z - Successfully added MCP servers to Claude configuration!
28
- 2025-01-09T14:16:00.864Z - Configuration location: /Users/eduardruzga/Library/Application Support/Claude/claude_desktop_config.json
29
- 2025-01-09T14:16:00.864Z -
30
- To use the servers:
31
- 1. Restart Claude if it's currently running
32
- 2. The servers will be available in Claude's MCP server list
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Simple tool to get current client information
3
- */
4
- export declare function getCurrentClient(): Promise<{
5
- content: {
6
- type: "text";
7
- text: string;
8
- }[];
9
- isError: boolean;
10
- }>;
@@ -1,13 +0,0 @@
1
- /**
2
- * Simple tool to get current client information
3
- */
4
- import { currentClient } from '../server.js';
5
- export async function getCurrentClient() {
6
- return {
7
- content: [{
8
- type: "text",
9
- text: `Current client: ${currentClient.name} v${currentClient.version}`
10
- }],
11
- isError: false,
12
- };
13
- }
@@ -1,18 +0,0 @@
1
- export declare function blockCommand(args: unknown): Promise<{
2
- content: {
3
- type: string;
4
- text: string;
5
- }[];
6
- }>;
7
- export declare function unblockCommand(args: unknown): Promise<{
8
- content: {
9
- type: string;
10
- text: string;
11
- }[];
12
- }>;
13
- export declare function listBlockedCommands(): Promise<{
14
- content: {
15
- type: string;
16
- text: string;
17
- }[];
18
- }>;
@@ -1,62 +0,0 @@
1
- import { commandManager } from '../command-manager.js';
2
- import { logToFile } from '../logging.js';
3
- import { BlockCommandArgsSchema, UnblockCommandArgsSchema } from './schemas.js';
4
- export async function blockCommand(args) {
5
- await logToFile('Processing block_command request');
6
- const parsed = BlockCommandArgsSchema.safeParse(args);
7
- if (!parsed.success) {
8
- throw new Error(`Invalid arguments for block_command: ${parsed.error}`);
9
- }
10
- const success = await commandManager.blockCommand(parsed.data.command);
11
- if (!success) {
12
- return {
13
- content: [{
14
- type: "text",
15
- text: `Command '${parsed.data.command}' is already blocked.`
16
- }],
17
- };
18
- }
19
- await logToFile(`Added '${parsed.data.command}' to blocked commands`);
20
- return {
21
- content: [{
22
- type: "text",
23
- text: `Command '${parsed.data.command}' has been blocked. Current blocked commands: ${commandManager.listBlockedCommands().join(', ')}`
24
- }],
25
- };
26
- }
27
- export async function unblockCommand(args) {
28
- await logToFile('Processing unblock_command request');
29
- const parsed = UnblockCommandArgsSchema.safeParse(args);
30
- if (!parsed.success) {
31
- throw new Error(`Invalid arguments for unblock_command: ${parsed.error}`);
32
- }
33
- const success = await commandManager.unblockCommand(parsed.data.command);
34
- if (!success) {
35
- return {
36
- content: [{
37
- type: "text",
38
- text: `Command '${parsed.data.command}' is not blocked.`
39
- }],
40
- };
41
- }
42
- await logToFile(`Removed '${parsed.data.command}' from blocked commands`);
43
- return {
44
- content: [{
45
- type: "text",
46
- text: `Command '${parsed.data.command}' has been unblocked. Current blocked commands: ${commandManager.listBlockedCommands().join(', ')}`
47
- }],
48
- };
49
- }
50
- export async function listBlockedCommands() {
51
- await logToFile('Processing list_blocked_commands request');
52
- const blockedList = commandManager.listBlockedCommands();
53
- await logToFile(`Listed ${blockedList.length} blocked commands`);
54
- return {
55
- content: [{
56
- type: "text",
57
- text: blockedList.length > 0
58
- ? `Currently blocked commands:\n${blockedList.join('\n')}`
59
- : "No commands are currently blocked."
60
- }],
61
- };
62
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,44 +0,0 @@
1
- // This is a debug script to help understand how ~ expansion works
2
- import os from 'os';
3
- import path from 'path';
4
- function expandHome(filepath) {
5
- console.log(`Expanding ${filepath}`);
6
- // Handle both '~' alone or '~/' path prefix
7
- if (filepath === '~') {
8
- const home = os.homedir();
9
- console.log(`~ expanded to ${home}`);
10
- return home;
11
- }
12
- else if (filepath.startsWith('~/')) {
13
- const joinedPath = path.join(os.homedir(), filepath.slice(2));
14
- console.log(`~/ expanded to ${joinedPath}`);
15
- return joinedPath;
16
- }
17
- return filepath;
18
- }
19
- console.log(`Home directory: ${os.homedir()}`);
20
- console.log(`Current working directory: ${process.cwd()}`);
21
- console.log(`Expanding ~: ${expandHome('~')}`);
22
- console.log(`Expanding ~/Documents: ${expandHome('~/Documents')}`);
23
- console.log(`Expanding /tmp: ${expandHome('/tmp')}`);
24
- // Create lowercase normalized paths for comparison
25
- function normalizePath(p) {
26
- return path.normalize(p).toLowerCase();
27
- }
28
- const allowedDir = '~';
29
- const expandedAllowedDir = expandHome(allowedDir);
30
- const normalizedAllowedDir = normalizePath(expandedAllowedDir);
31
- console.log(`Allowed dir: ${allowedDir}`);
32
- console.log(`Expanded allowed dir: ${expandedAllowedDir}`);
33
- console.log(`Normalized allowed dir: ${normalizedAllowedDir}`);
34
- // Example path to check
35
- const pathToCheck = '~';
36
- const expandedPathToCheck = expandHome(pathToCheck);
37
- const normalizedPathToCheck = normalizePath(expandedPathToCheck);
38
- console.log(`Path to check: ${pathToCheck}`);
39
- console.log(`Expanded path to check: ${expandedPathToCheck}`);
40
- console.log(`Normalized path to check: ${normalizedPathToCheck}`);
41
- // Check if path is allowed
42
- const isAllowed = normalizedPathToCheck === normalizedAllowedDir ||
43
- normalizedPathToCheck.startsWith(normalizedAllowedDir + path.sep);
44
- console.log(`Is path allowed: ${isAllowed}`);
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- import { terminalManager } from '../terminal-manager.js';
2
- import { ReadOutputArgsSchema } from './schemas.js';
3
-
4
- export async function readOutput(args) {
5
- const parsed = ReadOutputArgsSchema.safeParse(args);
6
- if (!parsed.success) {
7
- return {
8
- content: [{ type: "text", text: `Error: Invalid arguments for read_output: ${parsed.error}` }],
9
- isError: true,
10
- };
11
- }
12
-
13
- const { pid, timeout_ms = 5000 } = parsed.data;
14
-
15
- // Check if the process exists
16
- const session = terminalManager.getSession(pid);
17
- if (!session) {
18
- return {
19
- content: [{ type: "text", text: `No session found for PID ${pid}` }],
20
- isError: true,
21
- };
22
- }
23
-
24
- // Wait for output with timeout
25
- let output = "";
26
- let timeoutReached = false;
27
-
28
- try {
29
- // Create a promise that resolves when new output is available or when timeout is reached
30
- const outputPromise = new Promise((resolve) => {
31
- // Check for initial output
32
- const initialOutput = terminalManager.getNewOutput(pid);
33
- if (initialOutput && initialOutput.length > 0) {
34
- resolve(initialOutput);
35
- return;
36
- }
37
-
38
- // Setup an interval to poll for output
39
- const interval = setInterval(() => {
40
- const newOutput = terminalManager.getNewOutput(pid);
41
- if (newOutput && newOutput.length > 0) {
42
- clearInterval(interval);
43
- resolve(newOutput);
44
- }
45
- }, 100); // Check every 100ms
46
-
47
- // Set a timeout to stop waiting
48
- setTimeout(() => {
49
- clearInterval(interval);
50
- timeoutReached = true;
51
- resolve(terminalManager.getNewOutput(pid) || "");
52
- }, timeout_ms);
53
- });
54
-
55
- output = await outputPromise;
56
- } catch (error) {
57
- return {
58
- content: [{ type: "text", text: `Error reading output: ${error}` }],
59
- isError: true,
60
- };
61
- }
62
-
63
- return {
64
- content: [{
65
- type: "text",
66
- text: output || 'No new output available' + (timeoutReached ? ' (timeout reached)' : '')
67
- }],
68
- };
69
- }
@@ -1,111 +0,0 @@
1
- import { terminalManager } from '../terminal-manager.js';
2
- import { SendInputArgsSchema } from './schemas.js';
3
- import { capture } from "../utils/capture.js";
4
-
5
- export async function sendInput(args) {
6
- const parsed = SendInputArgsSchema.safeParse(args);
7
- if (!parsed.success) {
8
- capture('server_send_input_failed', {
9
- error: 'Invalid arguments'
10
- });
11
- return {
12
- content: [{ type: "text", text: `Error: Invalid arguments for send_input: ${parsed.error}` }],
13
- isError: true,
14
- };
15
- }
16
-
17
- const { pid, input, timeout_ms = 5000, wait_for_prompt = false } = parsed.data;
18
-
19
- try {
20
- capture('server_send_input', {
21
- pid: pid,
22
- inputLength: input.length
23
- });
24
-
25
- // Try to send input to the process
26
- const success = terminalManager.sendInputToProcess(pid, input);
27
-
28
- if (!success) {
29
- return {
30
- content: [{ type: "text", text: `Error: Failed to send input to process ${pid}. The process may have exited or doesn't accept input.` }],
31
- isError: true,
32
- };
33
- }
34
-
35
- // If we don't need to wait for output, return immediately
36
- if (!wait_for_prompt) {
37
- return {
38
- content: [{
39
- type: "text",
40
- text: `Successfully sent input to process ${pid}. Use read_output to get the process response.`
41
- }],
42
- };
43
- }
44
-
45
- // Wait for output with timeout
46
- let output = "";
47
- let timeoutReached = false;
48
-
49
- try {
50
- // Create a promise that resolves when new output is available or when timeout is reached
51
- const outputPromise = new Promise((resolve) => {
52
- // Setup an interval to poll for output
53
- const interval = setInterval(() => {
54
- const newOutput = terminalManager.getNewOutput(pid);
55
-
56
- if (newOutput && newOutput.length > 0) {
57
- output += newOutput;
58
-
59
- // Check if output contains a prompt pattern (indicating the REPL is ready for more input)
60
- const promptPatterns = [/^>\s*$/, /^>>>\s*$/, /^\.{3}\s*$/]; // Common REPL prompts
61
- const lines = output.split('\n');
62
- const lastLine = lines[lines.length - 1];
63
- const hasPrompt = promptPatterns.some(pattern => pattern.test(lastLine.trim()));
64
-
65
- if (hasPrompt) {
66
- clearInterval(interval);
67
- resolve(output);
68
- }
69
- }
70
- }, 100); // Check every 100ms
71
-
72
- // Set a timeout to stop waiting
73
- setTimeout(() => {
74
- clearInterval(interval);
75
- timeoutReached = true;
76
-
77
- // Get any final output
78
- const finalOutput = terminalManager.getNewOutput(pid);
79
- if (finalOutput) {
80
- output += finalOutput;
81
- }
82
-
83
- resolve(output);
84
- }, timeout_ms);
85
- });
86
-
87
- await outputPromise;
88
- } catch (error) {
89
- return {
90
- content: [{ type: "text", text: `Error reading output after sending input: ${error}` }],
91
- isError: true,
92
- };
93
- }
94
-
95
- return {
96
- content: [{
97
- type: "text",
98
- text: `Input sent to process ${pid}.\n\nOutput received:\n${output || '(No output)'}${timeoutReached ? ' (timeout reached)' : ''}`
99
- }],
100
- };
101
- } catch (error) {
102
- const errorMessage = error instanceof Error ? error.message : String(error);
103
- capture('server_send_input_error', {
104
- error: errorMessage
105
- });
106
- return {
107
- content: [{ type: "text", text: `Error sending input: ${errorMessage}` }],
108
- isError: true,
109
- };
110
- }
111
- }
@@ -1,55 +0,0 @@
1
- export declare function getEnvironmentInfo(): {
2
- processInfo: {
3
- pid: number;
4
- ppid: number;
5
- cwd: string;
6
- nodeVersion: string;
7
- versions: NodeJS.ProcessVersions;
8
- argv: string[];
9
- uptime: number;
10
- memoryUsage: NodeJS.MemoryUsage;
11
- execPath: string;
12
- execArgv: string[];
13
- platform: NodeJS.Platform;
14
- arch: NodeJS.Architecture;
15
- title: string;
16
- };
17
- systemEnvironment: {
18
- platform: NodeJS.Platform;
19
- arch: string;
20
- hostname: string;
21
- totalmem: number;
22
- freemem: number;
23
- cpus: import("os").CpuInfo[];
24
- userInfo: import("os").UserInfo<string>;
25
- networkInterfaces: NodeJS.Dict<import("os").NetworkInterfaceInfo[]>;
26
- environmentVariables: NodeJS.ProcessEnv;
27
- loadavg: number[];
28
- uptime: number;
29
- tmpdir: string;
30
- homedir: string;
31
- endianness: "BE" | "LE";
32
- release: string;
33
- type: string;
34
- };
35
- runtimeContext: {
36
- timestamp: string;
37
- timezone: string;
38
- locale: string;
39
- executionTime: number;
40
- };
41
- error?: undefined;
42
- } | {
43
- error: string;
44
- processInfo: {
45
- pid: number;
46
- cwd: string;
47
- };
48
- systemEnvironment: {
49
- platform: NodeJS.Platform;
50
- };
51
- runtimeContext: {
52
- timestamp: string;
53
- executionTime: number;
54
- };
55
- };