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