export interface AgentTaskParams {
  tenantId: string;
  instructions: string;
  targetServerIds: string[];
  skills?: string[];
  runbookId?: string;
  maxRiskLevel?: number;
  maxTurns?: number;
  maxBudgetUsd?: number;
  triggerContext?: Record<string, unknown>;
}

export interface AgentStreamEvent {
  type: 'progress' | 'action' | 'result' | 'error';
  data: Record<string, unknown>;
}

export interface AgentClientPort {
  executeTask(params: AgentTaskParams): AsyncGenerator<AgentStreamEvent>;
  cancelTask(sessionId: string): Promise<void>;
  continueSession(sessionId: string, message: string): AsyncGenerator<AgentStreamEvent>;
}
