import { sessionManager } from '../ssh/session.js';
import { executeCommand } from '../ssh/exec.js';
import type { ExecParams, ToolResponse } from '../types.js';
export async function sshExec(params: ExecParams): Promise<ToolResponse> {
try {
const client = sessionManager.getClient(params.sessionId);
if (!client) {
return {
success: false,
error: `Session not found or disconnected: ${params.sessionId}`,
};
}
const result = await executeCommand(client, params.command, {
cwd: params.cwd,
env: params.env,
pty: params.pty,
});
return {
success: true,
data: {
stdout: result.stdout,
stderr: result.stderr,
exitCode: result.exitCode,
command: params.command,
},
};
} catch (err) {
return {
success: false,
error: err instanceof Error ? err.message : String(err),
};
}
}