mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-06-08 08:23:58 +02:00
d3816a29fa
- Add DI container (src/services/) with AgentExecutionService, ConfigLoaderService, and ExploitationCheckerService — pure domain logic with no Temporal dependencies - Introduce Result<T, E> type and ErrorCode enum for code-based error classification in classifyErrorForTemporal, replacing scattered string matching - Consolidate billing/spending cap detection into utils/billing-detection.ts with shared pattern lists across message-handlers, claude-executor, and error-handling - Extract LogStream abstraction for append-only logging with backpressure, used by both AgentLogger and WorkflowLogger - Simplify activities.ts from inline lifecycle logic to thin wrappers delegating to services, with heartbeat and error classification - Expand config-parser with human-readable AJV errors, security validation, and rule type-specific checks
60 lines
1.3 KiB
TypeScript
60 lines
1.3 KiB
TypeScript
// 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<boolean>;
|
|
|
|
export type AgentStatus =
|
|
| 'pending'
|
|
| 'in_progress'
|
|
| 'completed'
|
|
| 'failed'
|
|
| 'rolled-back';
|
|
|
|
export interface AgentDefinition {
|
|
name: AgentName;
|
|
displayName: string;
|
|
prerequisites: AgentName[];
|
|
promptTemplate: string;
|
|
deliverableFilename: string;
|
|
}
|