feat: implement running agents view and enhance auto mode functionality

- Added a new `RunningAgentsView` component to display currently active agents working on features.
- Implemented auto-refresh functionality for the running agents list every 2 seconds.
- Enhanced the auto mode service to support project-specific operations, including starting and stopping auto mode for individual projects.
- Updated IPC handlers to manage auto mode status and running agents more effectively.
- Introduced audio settings to mute notifications when agents complete tasks.
- Refactored existing components to accommodate new features and improve overall user experience.
This commit is contained in:
Cody Seibert
2025-12-10 21:51:00 -05:00
parent 5ac81ce5a9
commit d08f922631
24 changed files with 1450 additions and 405 deletions

View File

@@ -163,18 +163,21 @@ export type AutoModeEvent =
type: "auto_mode_feature_start";
featureId: string;
projectId?: string;
projectPath?: string;
feature: unknown;
}
| {
type: "auto_mode_progress";
featureId: string;
projectId?: string;
projectPath?: string;
content: string;
}
| {
type: "auto_mode_tool";
featureId: string;
projectId?: string;
projectPath?: string;
tool: string;
input: unknown;
}
@@ -182,6 +185,7 @@ export type AutoModeEvent =
type: "auto_mode_feature_complete";
featureId: string;
projectId?: string;
projectPath?: string;
passes: boolean;
message: string;
}
@@ -190,22 +194,26 @@ export type AutoModeEvent =
error: string;
featureId?: string;
projectId?: string;
projectPath?: string;
}
| {
type: "auto_mode_complete";
message: string;
projectId?: string;
projectPath?: string;
}
| {
type: "auto_mode_phase";
featureId: string;
projectId?: string;
projectPath?: string;
phase: "planning" | "action" | "verification";
message: string;
}
| {
type: "auto_mode_ultrathink_preparation";
featureId: string;
projectPath?: string;
warnings: string[];
recommendations: string[];
estimatedCost?: number;
@@ -264,14 +272,15 @@ export interface SpecRegenerationAPI {
}
export interface AutoModeAPI {
start: (projectPath: string) => Promise<{
start: (projectPath: string, maxConcurrency?: number) => Promise<{
success: boolean;
error?: string;
}>;
stop: () => Promise<{
stop: (projectPath: string) => Promise<{
success: boolean;
error?: string;
runningFeatures?: number;
}>;
stopFeature: (featureId: string) => Promise<{
@@ -279,11 +288,14 @@ export interface AutoModeAPI {
error?: string;
}>;
status: () => Promise<{
status: (projectPath?: string) => Promise<{
success: boolean;
autoLoopRunning?: boolean;
isRunning?: boolean;
currentFeatureId?: string | null;
runningFeatures?: string[];
runningProjects?: string[];
runningCount?: number;
error?: string;
}>;