/** * Aura Protocol - Base Agent * * Abstract base class for all agents. */ import { Agent, AgentConfig, AgentCapabilities, AgentStatus, AgentResult } from './types.js'; import { ZoneContext, ZoneFinding } from '../zones/types.js'; export declare abstract class BaseAgent implements Agent { readonly config: AgentConfig; readonly capabilities: AgentCapabilities; protected status: AgentStatus; constructor(config: AgentConfig, capabilities: AgentCapabilities); /** * Check if external tool is installed */ protected checkToolAvailable(toolName: string): Promise; /** * Execute a command and return output */ protected executeCommand(command: string, args: string[], options?: { cwd?: string; timeout?: number; }): Promise<{ stdout: string; stderr: string; exitCode: number; }>; /** * Check if agent is available */ isAvailable(): Promise; /** * Get current status */ getStatus(): AgentStatus; /** * Execute the agent */ abstract execute(context: ZoneContext): Promise; /** * Helper to create a finding */ protected createFinding(agentId: string, partial: Omit): ZoneFinding; }