@wonderwhy-er/desktop-commander
Version:
MCP server for terminal operations and file editing
44 lines (43 loc) • 1.65 kB
JavaScript
import { commandManager } from '../command-manager.js';
import { BlockCommandArgsSchema, UnblockCommandArgsSchema } from '../tools/schemas.js';
/**
* Handle block_command command
*/
export async function handleBlockCommand(args) {
const parsed = BlockCommandArgsSchema.parse(args);
const blockResult = await commandManager.blockCommand(parsed.command);
// Convert boolean result to appropriate message string
const message = blockResult
? `Successfully blocked command: ${parsed.command}`
: `Command is already blocked: ${parsed.command}`;
return {
content: [{ type: "text", text: message }],
};
}
/**
* Handle unblock_command command
*/
export async function handleUnblockCommand(args) {
const parsed = UnblockCommandArgsSchema.parse(args);
const unblockResult = await commandManager.unblockCommand(parsed.command);
// Convert boolean result to appropriate message string
const message = unblockResult
? `Successfully unblocked command: ${parsed.command}`
: `Command is not blocked or doesn't exist: ${parsed.command}`;
return {
content: [{ type: "text", text: message }],
};
}
/**
* Handle list_blocked_commands command
*/
export function handleListBlockedCommands() {
const blockedCommands = commandManager.listBlockedCommands();
// Create appropriate message based on whether there are blocked commands
const message = blockedCommands.length > 0
? `Blocked commands:\n${blockedCommands.join('\n')}`
: "No commands are currently blocked.";
return {
content: [{ type: "text", text: message }],
};
}