import { execSync } from 'child_process'; import { ABResult } from '../types'; /** * Run an agent-browser CLI command. * This is the core interface to browser automation — all engine modules use this. */ export function ab(cmd: string, options: { timeout?: number; verbose?: boolean } = {}): ABResult { const fullCmd = `agent-browser ${cmd}`; try { const result = execSync(fullCmd, { encoding: 'utf8', timeout: options.timeout || 30000, stdio: ['pipe', 'pipe', 'pipe'], }); return { success: true, output: result.trim() }; } catch (err: any) { const stderr = err.stderr?.toString() || err.message; return { success: false, error: stderr }; } }