import { z } from 'zod';
import { SessionManager } from '../core/session-manager.js';
export const schema = z.object({
session_id: z.string(),
command: z.string(),
timeout_ms: z.number().default(30000),
background: z.boolean().default(false),
});
export async function sshExec(params: z.infer<typeof schema>) {
const client = SessionManager.getInstance().getSession(params.session_id);
if (!client) {
return { stdout: '', stderr: '', exit_code: 1, status: 'error', message: 'Session not found' };
}
if (params.background) {
const result = await client.execBackground(params.command);
return { stdout: '', stderr: '', exit_code: 0, status: 'running', pid: result.pid };
}
const result = await client.exec(params.command, params.timeout_ms);
return {
stdout: result.stdout,
stderr: result.stderr,
exit_code: result.exitCode,
status: result.status,
};
}