@wonderwhy-er/desktop-commander 0.2.6 → 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 (112) 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/version.d.ts +1 -1
  5. package/dist/version.js +1 -1
  6. package/package.json +2 -1
  7. package/dist/REPLSessionManager.d.ts +0 -109
  8. package/dist/REPLSessionManager.js +0 -364
  9. package/dist/REPLSessionManager.test.d.ts +0 -1
  10. package/dist/REPLSessionManager.test.js +0 -75
  11. package/dist/client/replClient.d.ts +0 -63
  12. package/dist/client/replClient.js +0 -217
  13. package/dist/client/sshClient.d.ts +0 -82
  14. package/dist/client/sshClient.js +0 -200
  15. package/dist/command-manager.js.map +0 -1
  16. package/dist/config-manager.js.map +0 -1
  17. package/dist/config.js.map +0 -1
  18. package/dist/custom-stdio.js.map +0 -1
  19. package/dist/error-handlers.js.map +0 -1
  20. package/dist/handlers/command-handlers.d.ts +0 -13
  21. package/dist/handlers/command-handlers.js +0 -43
  22. package/dist/handlers/edit-search-handlers.js.map +0 -1
  23. package/dist/handlers/filesystem-handlers.js.map +0 -1
  24. package/dist/handlers/fuzzy-search-log-handlers.d.ts +0 -13
  25. package/dist/handlers/fuzzy-search-log-handlers.js +0 -179
  26. package/dist/handlers/index.js.map +0 -1
  27. package/dist/handlers/process-handlers.js.map +0 -1
  28. package/dist/handlers/repl-handlers.d.ts +0 -21
  29. package/dist/handlers/repl-handlers.js +0 -37
  30. package/dist/handlers/replCommandHandler.d.ts +0 -125
  31. package/dist/handlers/replCommandHandler.js +0 -255
  32. package/dist/handlers/replCommandHandler.test.d.ts +0 -1
  33. package/dist/handlers/replCommandHandler.test.js +0 -103
  34. package/dist/handlers/terminal-handlers.js.map +0 -1
  35. package/dist/index-with-startup-detection.d.ts +0 -5
  36. package/dist/index-with-startup-detection.js +0 -180
  37. package/dist/index.js.map +0 -1
  38. package/dist/logging.d.ts +0 -2
  39. package/dist/logging.js +0 -28
  40. package/dist/polyform-license-src/edit/edit.d.ts +0 -15
  41. package/dist/polyform-license-src/edit/edit.js +0 -163
  42. package/dist/polyform-license-src/edit/fuzzySearch.d.ts +0 -30
  43. package/dist/polyform-license-src/edit/fuzzySearch.js +0 -121
  44. package/dist/polyform-license-src/edit/handlers.d.ts +0 -16
  45. package/dist/polyform-license-src/edit/handlers.js +0 -24
  46. package/dist/polyform-license-src/edit/index.d.ts +0 -12
  47. package/dist/polyform-license-src/edit/index.js +0 -13
  48. package/dist/polyform-license-src/edit/schemas.d.ts +0 -25
  49. package/dist/polyform-license-src/edit/schemas.js +0 -16
  50. package/dist/polyform-license-src/index.d.ts +0 -9
  51. package/dist/polyform-license-src/index.js +0 -10
  52. package/dist/repl-manager.d.ts +0 -73
  53. package/dist/repl-manager.js +0 -407
  54. package/dist/replIntegration.d.ts +0 -14
  55. package/dist/replIntegration.js +0 -27
  56. package/dist/sandbox/index.d.ts +0 -9
  57. package/dist/sandbox/index.js +0 -50
  58. package/dist/sandbox/mac-sandbox.d.ts +0 -19
  59. package/dist/sandbox/mac-sandbox.js +0 -174
  60. package/dist/server.js.map +0 -1
  61. package/dist/setup.log +0 -32
  62. package/dist/terminal-manager.js.map +0 -1
  63. package/dist/tools/client.d.ts +0 -10
  64. package/dist/tools/client.js +0 -13
  65. package/dist/tools/command-block.d.ts +0 -18
  66. package/dist/tools/command-block.js +0 -62
  67. package/dist/tools/config.js.map +0 -1
  68. package/dist/tools/debug-path.d.ts +0 -1
  69. package/dist/tools/debug-path.js +0 -44
  70. package/dist/tools/edit.js.map +0 -1
  71. package/dist/tools/enhanced-read-output.js +0 -69
  72. package/dist/tools/enhanced-send-input.js +0 -111
  73. package/dist/tools/environment.d.ts +0 -55
  74. package/dist/tools/environment.js +0 -65
  75. package/dist/tools/execute.d.ts +0 -10
  76. package/dist/tools/execute.js +0 -158
  77. package/dist/tools/execute.js.map +0 -1
  78. package/dist/tools/filesystem-fixed.d.ts +0 -22
  79. package/dist/tools/filesystem-fixed.js +0 -176
  80. package/dist/tools/filesystem.js.map +0 -1
  81. package/dist/tools/fuzzySearch.js.map +0 -1
  82. package/dist/tools/mime-types.js.map +0 -1
  83. package/dist/tools/pdf-reader.d.ts +0 -13
  84. package/dist/tools/pdf-reader.js +0 -214
  85. package/dist/tools/process.js.map +0 -1
  86. package/dist/tools/progress.d.ts +0 -20
  87. package/dist/tools/progress.js +0 -59
  88. package/dist/tools/repl.d.ts +0 -21
  89. package/dist/tools/repl.js +0 -217
  90. package/dist/tools/schemas.js.map +0 -1
  91. package/dist/tools/search.js.map +0 -1
  92. package/dist/tools/send-input.d.ts +0 -2
  93. package/dist/tools/send-input.js +0 -45
  94. package/dist/types.js.map +0 -1
  95. package/dist/utils/capture.js.map +0 -1
  96. package/dist/utils/early-logger.d.ts +0 -4
  97. package/dist/utils/early-logger.js +0 -35
  98. package/dist/utils/fuzzySearchLogger.js.map +0 -1
  99. package/dist/utils/lineEndingHandler.js.map +0 -1
  100. package/dist/utils/lineEndingHandler_optimized.d.ts +0 -21
  101. package/dist/utils/lineEndingHandler_optimized.js +0 -77
  102. package/dist/utils/mcp-logger.d.ts +0 -30
  103. package/dist/utils/mcp-logger.js +0 -59
  104. package/dist/utils/smithery-detector.d.ts +0 -94
  105. package/dist/utils/smithery-detector.js +0 -292
  106. package/dist/utils/startup-detector.d.ts +0 -65
  107. package/dist/utils/startup-detector.js +0 -390
  108. package/dist/utils/trackTools.js.map +0 -1
  109. package/dist/utils/withTimeout.js.map +0 -1
  110. package/dist/utils.d.ts +0 -26
  111. package/dist/utils.js +0 -227
  112. package/dist/version.js.map +0 -1
@@ -1,214 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs/promises';
3
- import { capture } from '../utils.js';
4
- // Direct imports
5
- import pdfParse from 'pdf-parse';
6
- import TurndownService from 'turndown';
7
- // PDF output formats
8
- export var PDFOutputFormat;
9
- (function (PDFOutputFormat) {
10
- PDFOutputFormat["TEXT"] = "text";
11
- PDFOutputFormat["MARKDOWN"] = "markdown";
12
- PDFOutputFormat["HTML"] = "html";
13
- })(PDFOutputFormat || (PDFOutputFormat = {}));
14
- /**
15
- * Reads a PDF file and returns its content in the specified format
16
- * @param filePath Path to the PDF file
17
- * @param outputFormat Desired output format (text, markdown, or html)
18
- * @returns FileResult object with the parsed content
19
- */
20
- export async function readPDFFile(filePath, outputFormat = PDFOutputFormat.TEXT) {
21
- try {
22
- // Read the PDF file as a buffer
23
- const dataBuffer = await fs.readFile(filePath);
24
- // Parse the PDF
25
- const pdfData = await pdfParse(dataBuffer);
26
- // Extract the raw text
27
- const rawText = pdfData.text;
28
- let content;
29
- let mimeType;
30
- // Convert to the requested format
31
- switch (outputFormat) {
32
- case PDFOutputFormat.HTML:
33
- // Convert to simple HTML (using paragraphs for line breaks)
34
- content = convertPDFToHTML(rawText, pdfData, filePath);
35
- mimeType = 'text/html';
36
- break;
37
- case PDFOutputFormat.MARKDOWN:
38
- try {
39
- // First convert to HTML, then to Markdown
40
- const htmlContent = convertPDFToHTML(rawText, pdfData, filePath);
41
- const turndownService = new TurndownService({
42
- headingStyle: 'atx',
43
- codeBlockStyle: 'fenced',
44
- emDelimiter: '*'
45
- });
46
- content = turndownService.turndown(htmlContent);
47
- mimeType = 'text/markdown';
48
- }
49
- catch (error) {
50
- capture('server_turndown_error', {
51
- error: error instanceof Error ? error.message : String(error)
52
- });
53
- // Fallback to basic markdown conversion if turndown has an issue
54
- content = convertPDFToBasicMarkdown(rawText, pdfData, filePath);
55
- mimeType = 'text/markdown';
56
- }
57
- break;
58
- // First convert to HTML, then to Markdown
59
- const htmlContent = convertPDFToHTML(rawText, pdfData, filePath);
60
- const turndownService = new TurndownService({
61
- headingStyle: 'atx',
62
- codeBlockStyle: 'fenced',
63
- emDelimiter: '*'
64
- });
65
- content = turndownService.turndown(htmlContent);
66
- mimeType = 'text/markdown';
67
- break;
68
- case PDFOutputFormat.TEXT:
69
- default:
70
- // Format as readable text
71
- content = formatPDFText(rawText, pdfData, filePath);
72
- mimeType = 'text/plain';
73
- break;
74
- }
75
- return {
76
- content,
77
- mimeType,
78
- isImage: false
79
- };
80
- }
81
- catch (error) {
82
- capture('server_pdf_read_error', {
83
- error: error instanceof Error ? error.name : 'Unknown',
84
- errorMessage: error instanceof Error ? error.message : String(error)
85
- });
86
- throw new Error(`Failed to read PDF file: ${error instanceof Error ? error.message : String(error)}`);
87
- }
88
- }
89
- /**
90
- * Format PDF text to make it more readable as plain text
91
- * @param text Raw text from PDF
92
- * @param pdfData PDF data
93
- * @param filePath Original file path (for filename)
94
- * @returns Formatted text
95
- */
96
- function formatPDFText(text, pdfData, filePath) {
97
- const fileName = path.basename(filePath);
98
- let output = `Document: ${fileName}\n`;
99
- output += `Pages: ${pdfData.numpages}\n\n`;
100
- // Add PDF metadata if available
101
- if (pdfData.info) {
102
- if (pdfData.info.Title)
103
- output += `Title: ${pdfData.info.Title}\n`;
104
- if (pdfData.info.Author)
105
- output += `Author: ${pdfData.info.Author}\n`;
106
- if (pdfData.info.Subject)
107
- output += `Subject: ${pdfData.info.Subject}\n`;
108
- if (pdfData.info.Keywords)
109
- output += `Keywords: ${pdfData.info.Keywords}\n`;
110
- if (pdfData.info.CreationDate)
111
- output += `Creation Date: ${pdfData.info.CreationDate}\n`;
112
- output += '\n';
113
- }
114
- // Format the actual text content
115
- // Split by double line breaks to identify paragraphs
116
- const paragraphs = text.split(/\n\s*\n/);
117
- output += paragraphs.join('\n\n');
118
- return output;
119
- }
120
- /**
121
- * Convert PDF text to basic markdown format without using turndown
122
- * @param text Raw text from PDF
123
- * @param pdfData PDF data
124
- * @param filePath Original file path (for filename)
125
- * @returns Markdown text
126
- */
127
- function convertPDFToBasicMarkdown(text, pdfData, filePath) {
128
- const fileName = path.basename(filePath);
129
- let output = `# ${fileName}\n\n`;
130
- // Add PDF metadata if available
131
- if (pdfData.info) {
132
- if (pdfData.info.Title)
133
- output += `**Title:** ${pdfData.info.Title}\n\n`;
134
- if (pdfData.info.Author)
135
- output += `**Author:** ${pdfData.info.Author}\n\n`;
136
- if (pdfData.info.Subject)
137
- output += `**Subject:** ${pdfData.info.Subject}\n\n`;
138
- }
139
- // Split by double line breaks to identify paragraphs
140
- const paragraphs = text.split(/\n\s*\n/);
141
- // Process each paragraph
142
- paragraphs.forEach(paragraph => {
143
- const trimmed = paragraph.trim();
144
- if (trimmed) {
145
- // Check if this looks like a heading (shorter, ends without punctuation)
146
- if (trimmed.length < 80 && !trimmed.match(/[.,:;?!]$/)) {
147
- output += `## ${trimmed}\n\n`;
148
- }
149
- else {
150
- output += `${trimmed}\n\n`;
151
- }
152
- }
153
- });
154
- return output;
155
- }
156
- /**
157
- * Convert PDF text to a simple HTML representation
158
- * @param text Raw text from PDF
159
- * @param pdfData PDF data
160
- * @param filePath Original file path (for filename)
161
- * @returns HTML string
162
- */
163
- function convertPDFToHTML(text, pdfData, filePath) {
164
- // This is a basic conversion that preserves paragraphs
165
- const fileName = path.basename(filePath);
166
- const title = pdfData.info && pdfData.info.Title ? pdfData.info.Title : fileName;
167
- // Split by double line breaks to identify paragraphs
168
- const paragraphs = text.split(/\n\s*\n/);
169
- // Build HTML structure
170
- let html = `<!DOCTYPE html>
171
- <html>
172
- <head>
173
- <title>${title}</title>
174
- <style>
175
- body { font-family: Arial, sans-serif; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 20px; }
176
- h1 { border-bottom: 1px solid #eee; padding-bottom: 10px; }
177
- h2 { margin-top: 24px; }
178
- pre { background-color: #f5f5f5; padding: 15px; border-radius: 5px; overflow-x: auto; }
179
- .metadata { color: #666; font-size: 0.9em; margin-bottom: 24px; }
180
- </style>
181
- </head>
182
- <body>
183
- <h1>${title}</h1>
184
- `;
185
- // Add metadata if available
186
- if (pdfData.info) {
187
- html += ' <div class="metadata">\n';
188
- if (pdfData.info.Author)
189
- html += ` <p><strong>Author:</strong> ${pdfData.info.Author}</p>\n`;
190
- if (pdfData.info.Subject)
191
- html += ` <p><strong>Subject:</strong> ${pdfData.info.Subject}</p>\n`;
192
- if (pdfData.info.Keywords)
193
- html += ` <p><strong>Keywords:</strong> ${pdfData.info.Keywords}</p>\n`;
194
- if (pdfData.numpages)
195
- html += ` <p><strong>Pages:</strong> ${pdfData.numpages}</p>\n`;
196
- html += ' </div>\n';
197
- }
198
- // Add paragraphs
199
- paragraphs.forEach(paragraph => {
200
- const trimmed = paragraph.trim();
201
- if (trimmed) {
202
- // Check if this looks like a heading (shorter, ends without punctuation)
203
- if (trimmed.length < 100 && !trimmed.match(/[.,:;?!]$/)) {
204
- html += ` <h2>${trimmed}</h2>\n`;
205
- }
206
- else {
207
- html += ` <p>${trimmed}</p>\n`;
208
- }
209
- }
210
- });
211
- html += `</body>
212
- </html>`;
213
- return html;
214
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/tools/process.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { z } from "zod";
2
- export declare const LongRunningTaskSchema: z.ZodObject<{
3
- total_steps: z.ZodDefault<z.ZodNumber>;
4
- step_duration: z.ZodDefault<z.ZodNumber>;
5
- should_fail: z.ZodDefault<z.ZodBoolean>;
6
- }, "strip", z.ZodTypeAny, {
7
- total_steps: number;
8
- step_duration: number;
9
- should_fail: boolean;
10
- }, {
11
- total_steps?: number | undefined;
12
- step_duration?: number | undefined;
13
- should_fail?: boolean | undefined;
14
- }>;
15
- export declare function executeLongRunning(args: unknown, server: any, progressToken?: string): Promise<{
16
- content: {
17
- type: string;
18
- text: string;
19
- }[];
20
- }>;
@@ -1,59 +0,0 @@
1
- import { z } from "zod";
2
- export const LongRunningTaskSchema = z.object({
3
- total_steps: z.number().default(5).describe("Total number of steps to execute"),
4
- step_duration: z.number().default(1000).describe("Duration of each step in milliseconds"),
5
- should_fail: z.boolean().default(false).describe("Whether the task should fail midway through"),
6
- });
7
- export async function executeLongRunning(args, server, progressToken) {
8
- const parsed = LongRunningTaskSchema.safeParse(args);
9
- if (!parsed.success) {
10
- throw new Error(`Invalid arguments for long_running_task: ${parsed.error}`);
11
- }
12
- const { total_steps, step_duration, should_fail } = parsed.data;
13
- try {
14
- for (let step = 1; step <= total_steps; step++) {
15
- // Simulate work
16
- await new Promise(resolve => setTimeout(resolve, step_duration));
17
- // Send progress notification if we have a token
18
- if (progressToken) {
19
- await server.notification({
20
- method: "notifications/progress",
21
- params: {
22
- progress: step,
23
- total: total_steps,
24
- progressToken,
25
- detail: `Completed step ${step} of ${total_steps}${should_fail && step === Math.floor(total_steps / 2)
26
- ? ' (about to fail)'
27
- : ''}`
28
- }
29
- });
30
- }
31
- // If should_fail is true, fail halfway through
32
- if (should_fail && step === Math.floor(total_steps / 2)) {
33
- throw new Error("Task failed halfway through as requested");
34
- }
35
- }
36
- return {
37
- content: [{
38
- type: "text",
39
- text: `Long running task completed successfully after ${total_steps} steps`
40
- }]
41
- };
42
- }
43
- catch (error) {
44
- // Send error notification if we have a token
45
- if (progressToken) {
46
- await server.notification({
47
- method: "notifications/progress",
48
- params: {
49
- progress: Math.floor(total_steps / 2),
50
- total: total_steps,
51
- progressToken,
52
- detail: error instanceof Error ? error.message : 'Unknown error',
53
- error: true
54
- }
55
- });
56
- }
57
- throw error;
58
- }
59
- }
@@ -1,21 +0,0 @@
1
- import { ServerResult } from '../types.js';
2
- /**
3
- * Create a new REPL session
4
- */
5
- export declare function createREPLSession(args: unknown): Promise<ServerResult>;
6
- /**
7
- * Execute code in a REPL session
8
- */
9
- export declare function executeREPLCode(args: unknown): Promise<ServerResult>;
10
- /**
11
- * Terminate a REPL session
12
- */
13
- export declare function terminateREPLSession(args: unknown): Promise<ServerResult>;
14
- /**
15
- * List all active REPL sessions
16
- */
17
- export declare function listREPLSessions(args: unknown): Promise<ServerResult>;
18
- /**
19
- * Get information about a specific REPL session
20
- */
21
- export declare function getREPLSessionInfo(args: unknown): Promise<ServerResult>;
@@ -1,217 +0,0 @@
1
- import { replManager } from '../repl-manager.js';
2
- import { capture } from '../utils/capture.js';
3
- import { CreateREPLSessionArgsSchema, ExecuteREPLCodeArgsSchema, TerminateREPLSessionArgsSchema, ListREPLSessionsArgsSchema, GetREPLSessionInfoArgsSchema } from './schemas.js';
4
- /**
5
- * Create a new REPL session
6
- */
7
- export async function createREPLSession(args) {
8
- const parsed = CreateREPLSessionArgsSchema.safeParse(args);
9
- if (!parsed.success) {
10
- capture('server_create_repl_session_failed', {
11
- error: 'Invalid arguments'
12
- });
13
- return {
14
- content: [{ type: "text", text: `Error: Invalid arguments for create_repl_session: ${parsed.error}` }],
15
- isError: true,
16
- };
17
- }
18
- try {
19
- const pid = await replManager.createSession(parsed.data.language, parsed.data.timeout);
20
- return {
21
- content: [{
22
- type: "text",
23
- text: `Successfully created ${parsed.data.language} REPL session with PID ${pid}`
24
- }],
25
- };
26
- }
27
- catch (error) {
28
- const errorMessage = error instanceof Error ? error.message : String(error);
29
- capture('server_create_repl_session_error', {
30
- error: errorMessage
31
- });
32
- return {
33
- content: [{ type: "text", text: `Error creating REPL session: ${errorMessage}` }],
34
- isError: true,
35
- };
36
- }
37
- }
38
- /**
39
- * Execute code in a REPL session
40
- */
41
- export async function executeREPLCode(args) {
42
- const parsed = ExecuteREPLCodeArgsSchema.safeParse(args);
43
- if (!parsed.success) {
44
- capture('server_execute_repl_code_failed', {
45
- error: 'Invalid arguments'
46
- });
47
- return {
48
- content: [{ type: "text", text: `Error: Invalid arguments for execute_repl_code: ${parsed.error}` }],
49
- isError: true,
50
- };
51
- }
52
- try {
53
- const result = await replManager.executeCode(parsed.data.pid, parsed.data.code, {
54
- timeout: parsed.data.timeout,
55
- waitForPrompt: parsed.data.waitForPrompt,
56
- ignoreErrors: parsed.data.ignoreErrors,
57
- multiline: parsed.data.multiline
58
- });
59
- if (!result.success) {
60
- return {
61
- content: [{
62
- type: "text",
63
- text: result.error
64
- ? `Error executing code: ${result.error}`
65
- : `Failed to execute code in REPL session ${parsed.data.pid}` +
66
- (result.timeout ? ` (timed out)` : '') +
67
- (result.output ? `\nOutput received: ${result.output}` : '')
68
- }],
69
- isError: true,
70
- };
71
- }
72
- return {
73
- content: [{
74
- type: "text",
75
- text: `Code executed in REPL session ${parsed.data.pid}` +
76
- (result.timeout ? ` (timed out, partial output below)` : '') +
77
- `\n\nOutput:\n${result.output || '(No output)'}`
78
- }],
79
- };
80
- }
81
- catch (error) {
82
- const errorMessage = error instanceof Error ? error.message : String(error);
83
- capture('server_execute_repl_code_error', {
84
- error: errorMessage
85
- });
86
- return {
87
- content: [{ type: "text", text: `Error executing REPL code: ${errorMessage}` }],
88
- isError: true,
89
- };
90
- }
91
- }
92
- /**
93
- * Terminate a REPL session
94
- */
95
- export async function terminateREPLSession(args) {
96
- const parsed = TerminateREPLSessionArgsSchema.safeParse(args);
97
- if (!parsed.success) {
98
- capture('server_terminate_repl_session_failed', {
99
- error: 'Invalid arguments'
100
- });
101
- return {
102
- content: [{ type: "text", text: `Error: Invalid arguments for terminate_repl_session: ${parsed.error}` }],
103
- isError: true,
104
- };
105
- }
106
- try {
107
- const success = await replManager.terminateSession(parsed.data.pid);
108
- if (!success) {
109
- return {
110
- content: [{ type: "text", text: `Failed to terminate REPL session ${parsed.data.pid}. The session may have already ended.` }],
111
- isError: true,
112
- };
113
- }
114
- return {
115
- content: [{
116
- type: "text",
117
- text: `Successfully terminated REPL session ${parsed.data.pid}`
118
- }],
119
- };
120
- }
121
- catch (error) {
122
- const errorMessage = error instanceof Error ? error.message : String(error);
123
- capture('server_terminate_repl_session_error', {
124
- error: errorMessage
125
- });
126
- return {
127
- content: [{ type: "text", text: `Error terminating REPL session: ${errorMessage}` }],
128
- isError: true,
129
- };
130
- }
131
- }
132
- /**
133
- * List all active REPL sessions
134
- */
135
- export async function listREPLSessions(args) {
136
- const parsed = ListREPLSessionsArgsSchema.safeParse(args);
137
- if (!parsed.success) {
138
- capture('server_list_repl_sessions_failed', {
139
- error: 'Invalid arguments'
140
- });
141
- return {
142
- content: [{ type: "text", text: `Error: Invalid arguments for list_repl_sessions: ${parsed.error}` }],
143
- isError: true,
144
- };
145
- }
146
- try {
147
- const sessions = replManager.listSessions();
148
- if (sessions.length === 0) {
149
- return {
150
- content: [{
151
- type: "text",
152
- text: `No active REPL sessions found`
153
- }],
154
- };
155
- }
156
- const sessionsText = sessions.map(s => `PID: ${s.pid}, Language: ${s.language}, Runtime: ${Math.round(s.runtime / 1000)}s`).join('\n');
157
- return {
158
- content: [{
159
- type: "text",
160
- text: `Active REPL sessions:\n${sessionsText}`
161
- }],
162
- };
163
- }
164
- catch (error) {
165
- const errorMessage = error instanceof Error ? error.message : String(error);
166
- capture('server_list_repl_sessions_error', {
167
- error: errorMessage
168
- });
169
- return {
170
- content: [{ type: "text", text: `Error listing REPL sessions: ${errorMessage}` }],
171
- isError: true,
172
- };
173
- }
174
- }
175
- /**
176
- * Get information about a specific REPL session
177
- */
178
- export async function getREPLSessionInfo(args) {
179
- const parsed = GetREPLSessionInfoArgsSchema.safeParse(args);
180
- if (!parsed.success) {
181
- capture('server_get_repl_session_info_failed', {
182
- error: 'Invalid arguments'
183
- });
184
- return {
185
- content: [{ type: "text", text: `Error: Invalid arguments for get_repl_session_info: ${parsed.error}` }],
186
- isError: true,
187
- };
188
- }
189
- try {
190
- const info = replManager.getSessionInfo(parsed.data.pid);
191
- if (!info) {
192
- return {
193
- content: [{
194
- type: "text",
195
- text: `No active REPL session found with PID ${parsed.data.pid}`
196
- }],
197
- isError: true,
198
- };
199
- }
200
- return {
201
- content: [{
202
- type: "text",
203
- text: `REPL Session ${parsed.data.pid}:\nLanguage: ${info.language}\nRuntime: ${Math.round(info.runtime / 1000)}s`
204
- }],
205
- };
206
- }
207
- catch (error) {
208
- const errorMessage = error instanceof Error ? error.message : String(error);
209
- capture('server_get_repl_session_info_error', {
210
- error: errorMessage
211
- });
212
- return {
213
- content: [{ type: "text", text: `Error getting REPL session info: ${errorMessage}` }],
214
- isError: true,
215
- };
216
- }
217
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAS5C,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAQhC;IACC,MAAM,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,aAAa,GAAG,KAAK,EACrB,YAAY,GAAG,CAAC,EACjB,GAAG,OAAO,CAAC;IAEZ,6BAA6B;IAC7B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE/C,0BAA0B;IAC1B,MAAM,IAAI,GAAG;QACX,QAAQ,EAAG,2CAA2C;QACtD,eAAe,EAAE,uBAAuB;KACzC,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE9B,sBAAsB;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,mEAAmE;QACnE,MAAM,YAAY,GAAiB,EAAE,CAAC;QAEtC,wEAAwE;QACxE,uDAAuD;QACtD,UAAkB,CAAC,oBAAoB,GAAG,YAAY,CAAC;QAExD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5B,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,gCAAgC;YAChC,IAAK,UAAkB,CAAC,oBAAoB,KAAK,YAAY,EAAE,CAAC;gBAC9D,OAAQ,UAAkB,CAAC,oBAAoB,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,8BAA8B;gBAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gCAC/C,OAAO,CAAC,IAAI,CAAC;oCACX,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oCAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;oCAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;iCAC3B,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC;6BAEI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;4BACvD,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gCAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;gCAC7B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;6BACrC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC5E,OAAO,CAAC,sBAAsB,EAAE,EAAC,KAAK,EAAE,iCAAiC,YAAY,EAAE,EAAC,CAAC,CAAC;wBAC1F,OAAO,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAQxC;IACC,MAAM,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,EACtC,YAAY,GAAG,CAAC,EACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,KAAK,UAAU,SAAS,CAAC,OAAe;QACtC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;YAAE,OAAO;QAEzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;oBAAE,MAAM;gBAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEhD,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAE7B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC1B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCACtC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzB,uBAAuB;oCACvB,OAAO,CAAC,IAAI,CAAC;wCACX,IAAI,EAAE,QAAQ;wCACd,IAAI,EAAE,CAAC,GAAG,CAAC;wCACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;qCACvB,CAAC,CAAC;oCAEH,oBAAoB;oCACpB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wCACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;wCAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;wCAE5D,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4CACxC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,4CAA4C;gDACzD,OAAO,CAAC,IAAI,CAAC;oDACX,IAAI,EAAE,QAAQ;oDACd,IAAI,EAAE,CAAC,GAAG,CAAC;oDACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iDACvB,CAAC,CAAC;4CACL,CAAC;wCACH,CAAC;oCACH,CAAC;oCAED,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;wCAAE,MAAM;gCAC1C,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,yCAAyC;oBACzC,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAQvC;IACC,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC;YACvB,GAAG,OAAO;YACV,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- import { ServerResult } from '../types.js';
2
- export declare function sendInput(args: unknown): Promise<ServerResult>;
@@ -1,45 +0,0 @@
1
- import { terminalManager } from '../terminal-manager.js';
2
- import { SendInputArgsSchema } from './schemas.js';
3
- import { capture } from "../utils/capture.js";
4
- export async function sendInput(args) {
5
- const parsed = SendInputArgsSchema.safeParse(args);
6
- if (!parsed.success) {
7
- capture('server_send_input_failed', {
8
- error: 'Invalid arguments'
9
- });
10
- return {
11
- content: [{ type: "text", text: `Error: Invalid arguments for send_input: ${parsed.error}` }],
12
- isError: true,
13
- };
14
- }
15
- try {
16
- capture('server_send_input', {
17
- pid: parsed.data.pid,
18
- inputLength: parsed.data.input.length
19
- });
20
- // Try to send input to the process
21
- const success = terminalManager.sendInputToProcess(parsed.data.pid, parsed.data.input);
22
- if (!success) {
23
- return {
24
- content: [{ type: "text", text: `Error: Failed to send input to process ${parsed.data.pid}. The process may have exited or doesn't accept input.` }],
25
- isError: true,
26
- };
27
- }
28
- return {
29
- content: [{
30
- type: "text",
31
- text: `Successfully sent input to process ${parsed.data.pid}. Use read_output to get the process response.`
32
- }],
33
- };
34
- }
35
- catch (error) {
36
- const errorMessage = error instanceof Error ? error.message : String(error);
37
- capture('server_send_input_error', {
38
- error: errorMessage
39
- });
40
- return {
41
- content: [{ type: "text", text: `Error sending input: ${errorMessage}` }],
42
- isError: true,
43
- };
44
- }
45
- }
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/utils/capture.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function setTransportInstance(transport: any): void;
2
- export declare function logError(message: string, data?: any): void;
3
- export declare function logInfo(message: string, data?: any): void;
4
- export declare function logWarning(message: string, data?: any): void;
@@ -1,35 +0,0 @@
1
- // Early logger that can work before FilteredStdioServerTransport is ready
2
- let transportInstance = null;
3
- export function setTransportInstance(transport) {
4
- transportInstance = transport;
5
- }
6
- export function logError(message, data) {
7
- if (transportInstance && transportInstance.sendLog) {
8
- // Use transport's structured logging
9
- transportInstance.sendLog("error", message, data);
10
- }
11
- else {
12
- // Fallback to console.error which will be intercepted later
13
- console.error(message);
14
- }
15
- }
16
- export function logInfo(message, data) {
17
- if (transportInstance && transportInstance.sendLog) {
18
- // Use transport's structured logging
19
- transportInstance.sendLog("info", message, data);
20
- }
21
- else {
22
- // Fallback to console.log which will be intercepted later
23
- console.log(message);
24
- }
25
- }
26
- export function logWarning(message, data) {
27
- if (transportInstance && transportInstance.sendLog) {
28
- // Use transport's structured logging
29
- transportInstance.sendLog("warning", message, data);
30
- }
31
- else {
32
- // Fallback to console.warn which will be intercepted later
33
- console.warn(message);
34
- }
35
- }