// Copyright (C) 2025 Keygraph, Inc. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License version 3 // as published by the Free Software Foundation. /** * Agent type definitions */ /** * List of all agents in execution order. * Used for iteration during resume state checking. */ export const ALL_AGENTS = [ 'pre-recon', 'recon', 'injection-vuln', 'xss-vuln', 'auth-vuln', 'ssrf-vuln', 'authz-vuln', 'injection-exploit', 'xss-exploit', 'auth-exploit', 'ssrf-exploit', 'authz-exploit', 'report', ] as const; /** * Agent name type derived from ALL_AGENTS. * This ensures type safety and prevents drift between type and array. */ export type AgentName = typeof ALL_AGENTS[number]; export type PlaywrightAgent = | 'playwright-agent1' | 'playwright-agent2' | 'playwright-agent3' | 'playwright-agent4' | 'playwright-agent5'; export type AgentValidator = (sourceDir: string) => Promise; export type AgentStatus = | 'pending' | 'in_progress' | 'completed' | 'failed' | 'rolled-back'; export interface AgentDefinition { name: AgentName; displayName: string; prerequisites: AgentName[]; promptTemplate: string; deliverableFilename: string; }