Skip to content

Commit c775c38

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 01cf05e + 74b1449 commit c775c38

File tree

1 file changed

+30
-17
lines changed

1 file changed

+30
-17
lines changed

src/server.ts

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
250250
return executeCommand(parsed);
251251
}
252252
case "read_output": {
253-
const parsed = ReadOutputArgsSchema.parse(args);
254253
capture('server_read_output');
254+
const parsed = ReadOutputArgsSchema.parse(args);
255255
return readOutput(parsed);
256256
}
257257
case "force_terminate": {
258-
const parsed = ForceTerminateArgsSchema.parse(args);
259258
capture('server_force_terminate');
259+
const parsed = ForceTerminateArgsSchema.parse(args);
260260
return forceTerminate(parsed);
261261
}
262262
case "list_sessions":
@@ -266,25 +266,28 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
266266
capture('server_list_processes');
267267
return listProcesses();
268268
case "kill_process": {
269-
const parsed = KillProcessArgsSchema.parse(args);
270269
capture('server_kill_process');
270+
const parsed = KillProcessArgsSchema.parse(args);
271271
return killProcess(parsed);
272272
}
273273
case "block_command": {
274+
capture('server_block_command');
274275
const parsed = BlockCommandArgsSchema.parse(args);
275276
const blockResult = await commandManager.blockCommand(parsed.command);
276277
return {
277278
content: [{ type: "text", text: blockResult }],
278279
};
279280
}
280281
case "unblock_command": {
282+
capture('server_unblock_command');
281283
const parsed = UnblockCommandArgsSchema.parse(args);
282284
const unblockResult = await commandManager.unblockCommand(parsed.command);
283285
return {
284286
content: [{ type: "text", text: unblockResult }],
285287
};
286288
}
287289
case "list_blocked_commands": {
290+
capture('server_list_blocked_commands');
288291
const blockedCommands = await commandManager.listBlockedCommands();
289292
return {
290293
content: [{ type: "text", text: blockedCommands.join('\n') }],
@@ -293,71 +296,79 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
293296

294297
// Filesystem tools
295298
case "edit_block": {
299+
capture('server_edit_block');
296300
const parsed = EditBlockArgsSchema.parse(args);
297301
const { filePath, searchReplace } = await parseEditBlock(parsed.blockContent);
298-
await performSearchReplace(filePath, searchReplace);
299-
capture('server_edit_block');
300-
return {
301-
content: [{ type: "text", text: `Successfully applied edit to ${filePath}` }],
302-
};
302+
try {
303+
await performSearchReplace(filePath, searchReplace);
304+
return {
305+
content: [{ type: "text", text: `Successfully applied edit to ${filePath}` }],
306+
};
307+
} catch (error) {
308+
const errorMessage = error instanceof Error ? error.message : String(error);
309+
return {
310+
content: [{ type: "text", text: errorMessage }],
311+
};
312+
}
303313
}
304314
case "read_file": {
315+
capture('server_read_file');
305316
const parsed = ReadFileArgsSchema.parse(args);
306317
const content = await readFile(parsed.path);
307-
capture('server_read_file');
308318
return {
309319
content: [{ type: "text", text: content }],
310320
};
311321
}
312322
case "read_multiple_files": {
323+
capture('server_read_multiple_files');
313324
const parsed = ReadMultipleFilesArgsSchema.parse(args);
314325
const results = await readMultipleFiles(parsed.paths);
315-
capture('server_read_multiple_files');
316326
return {
317327
content: [{ type: "text", text: results.join("\n---\n") }],
318328
};
319329
}
320330
case "write_file": {
331+
capture('server_write_file');
321332
const parsed = WriteFileArgsSchema.parse(args);
322333
await writeFile(parsed.path, parsed.content);
323-
capture('server_write_file');
324334
return {
325335
content: [{ type: "text", text: `Successfully wrote to ${parsed.path}` }],
326336
};
327337
}
328338
case "create_directory": {
339+
capture('server_create_directory');
329340
const parsed = CreateDirectoryArgsSchema.parse(args);
330341
await createDirectory(parsed.path);
331-
capture('server_create_directory');
332342
return {
333343
content: [{ type: "text", text: `Successfully created directory ${parsed.path}` }],
334344
};
335345
}
336346
case "list_directory": {
347+
capture('server_list_directory');
337348
const parsed = ListDirectoryArgsSchema.parse(args);
338349
const entries = await listDirectory(parsed.path);
339-
capture('server_list_directory');
340350
return {
341351
content: [{ type: "text", text: entries.join('\n') }],
342352
};
343353
}
344354
case "move_file": {
355+
capture('server_move_file');
345356
const parsed = MoveFileArgsSchema.parse(args);
346357
await moveFile(parsed.source, parsed.destination);
347-
capture('server_move_file');
348358
return {
349359
content: [{ type: "text", text: `Successfully moved ${parsed.source} to ${parsed.destination}` }],
350360
};
351361
}
352362
case "search_files": {
363+
capture('server_search_files');
353364
const parsed = SearchFilesArgsSchema.parse(args);
354365
const results = await searchFiles(parsed.path, parsed.pattern);
355-
capture('server_search_files');
356366
return {
357367
content: [{ type: "text", text: results.length > 0 ? results.join('\n') : "No matches found" }],
358368
};
359369
}
360370
case "search_code": {
371+
capture('server_search_code');
361372
const parsed = SearchCodeArgsSchema.parse(args);
362373
const results = await searchTextInFiles({
363374
rootPath: parsed.path,
@@ -368,7 +379,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
368379
includeHidden: parsed.includeHidden,
369380
contextLines: parsed.contextLines,
370381
});
371-
capture('server_search_code');
372382
if (results.length === 0) {
373383
return {
374384
content: [{ type: "text", text: "No matches found" }],
@@ -392,9 +402,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
392402
};
393403
}
394404
case "get_file_info": {
405+
capture('server_get_file_info');
395406
const parsed = GetFileInfoArgsSchema.parse(args);
396407
const info = await getFileInfo(parsed.path);
397-
capture('server_get_file_info');
398408
return {
399409
content: [{
400410
type: "text",
@@ -416,6 +426,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request: CallToolRequest)
416426
}
417427

418428
default:
429+
capture('server_unknow_tool', {
430+
name
431+
});
419432
throw new Error(`Unknown tool: ${name}`);
420433
}
421434
} catch (error) {

0 commit comments

Comments
 (0)