mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-09-03 17:00:43 +02:00
refactor: remove orchestration layer (#45)
* refactor: remove orchestration layer and simplify CLI Remove the complex orchestration layer including checkpoint management, rollback/recovery commands, and session management commands. This consolidates the execution logic directly in shannon.ts for a simpler fire-and-forget execution model. Changes: - Remove checkpoint-manager.ts and rollback functionality - Remove command-handler.ts and cli/prompts.ts - Simplify session-manager.ts to just agent definitions - Consolidate orchestration logic in shannon.ts - Update CLAUDE.md documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: move session lock logic to shannon.ts, simplify session-manager - Reduce session-manager.ts to only AGENTS, AGENT_ORDER, getParallelGroups() - Move Session interface and lock file functions to shannon.ts - Simplify Session to only: id, webUrl, repoPath, status, startedAt - Remove unused types/session.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: use crypto.randomUUID() for session ID generation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
264b16991a
commit
bc52d67dd5
+6
-14
@@ -51,23 +51,15 @@ export type AgentValidatorMap = Record<AgentName, AgentValidator>;
|
||||
|
||||
export type McpAgentMapping = Record<PromptName, PlaywrightAgent>;
|
||||
|
||||
export type AgentPhase =
|
||||
| 'pre-recon'
|
||||
| 'recon'
|
||||
| 'vuln'
|
||||
| 'exploit'
|
||||
| 'report';
|
||||
|
||||
export interface AgentDefinition {
|
||||
name: AgentName;
|
||||
promptName: PromptName;
|
||||
phase: AgentPhase;
|
||||
dependencies?: AgentName[];
|
||||
}
|
||||
|
||||
export type AgentStatus =
|
||||
| 'pending'
|
||||
| 'in_progress'
|
||||
| 'completed'
|
||||
| 'failed'
|
||||
| 'rolled-back';
|
||||
|
||||
export interface AgentDefinition {
|
||||
name: AgentName;
|
||||
displayName: string;
|
||||
prerequisites: AgentName[];
|
||||
}
|
||||
|
||||
@@ -10,5 +10,4 @@
|
||||
|
||||
export * from './errors.js';
|
||||
export * from './config.js';
|
||||
export * from './session.js';
|
||||
export * from './agents.js';
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
// 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.
|
||||
|
||||
/**
|
||||
* Session type definitions
|
||||
*/
|
||||
|
||||
import type { AgentName, AgentStatus } from './agents.js';
|
||||
|
||||
export type PhaseName =
|
||||
| 'pre-reconnaissance'
|
||||
| 'reconnaissance'
|
||||
| 'vulnerability-analysis'
|
||||
| 'exploitation'
|
||||
| 'reporting';
|
||||
|
||||
export interface AgentInfo {
|
||||
name: AgentName;
|
||||
displayName: string;
|
||||
phase: PhaseName;
|
||||
order: number;
|
||||
prerequisites: AgentName[];
|
||||
}
|
||||
|
||||
export type AgentDefinitions = Record<AgentName, AgentInfo>;
|
||||
|
||||
export type PhaseDefinitions = Record<PhaseName, AgentName[]>;
|
||||
|
||||
export interface AgentState {
|
||||
status: AgentStatus;
|
||||
startedAt?: string;
|
||||
completedAt?: string;
|
||||
error?: string;
|
||||
attempts?: number;
|
||||
}
|
||||
|
||||
export interface Session {
|
||||
id: string;
|
||||
targetUrl: string;
|
||||
repoPath: string;
|
||||
configPath?: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
completedAgents: AgentName[];
|
||||
agentStates: Record<AgentName, AgentState>;
|
||||
checkpoints: Record<AgentName, string>;
|
||||
}
|
||||
|
||||
export interface SessionStore {
|
||||
sessions: Record<string, Session>;
|
||||
}
|
||||
|
||||
export interface SessionSummary {
|
||||
id: string;
|
||||
targetUrl: string;
|
||||
repoPath: string;
|
||||
createdAt: string;
|
||||
completedAgents: number;
|
||||
totalAgents: number;
|
||||
}
|
||||
Reference in New Issue
Block a user