import { sessionManager } from '../ssh/session.js';
import { downloadFile } from '../ssh/sftp.js';
import type { SFTPDownloadParams, ToolResponse } from '../types.js';
export async function sftpDownload(params: SFTPDownloadParams): 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 downloadFile(client, params.remotePath, params.localPath);
return {
success: true,
data: {
remotePath: params.remotePath,
localPath: params.localPath,
bytesTransferred: result.bytesTransferred,
message: `Downloaded ${result.bytesTransferred} bytes to ${params.localPath}`,
},
};
} catch (err) {
return {
success: false,
error: err instanceof Error ? err.message : String(err),
};
}
}