UNPKG

@bobmatnyc/claude-pm-portfolio-manager

Version:

Claude PM Portfolio Management Dashboard - React-based monitoring and reporting for Claude PM managed projects

134 lines (133 loc) 3.91 kB
export interface Agent { id: string; name: string; role: AgentRole; specializations: string[]; status: AgentStatus; lastActivity: Date; currentAssignments: Assignment[]; performanceMetrics: PerformanceMetrics; collaborationPatterns: CollaborationPattern[]; availability: Availability; } export interface AgentRole { type: AgentRoleType; description: string; capabilities: string[]; responsibilities: string[]; requiredSkills: string[]; authority: AuthorityLevel; } export type AgentRoleType = 'architect' | 'engineer' | 'qa' | 'security' | 'devops' | 'research' | 'data' | 'performance' | 'documentation' | 'integration' | 'code-review' | 'orchestrator'; export type AgentStatus = 'active' | 'idle' | 'working' | 'offline' | 'maintenance' | 'overloaded'; export type AuthorityLevel = 'low' | 'medium' | 'high' | 'critical'; export interface Assignment { id: string; ticketId: string; ticketTitle: string; ticketType: 'epic' | 'issue' | 'task' | 'pr'; priority: 'critical' | 'high' | 'medium' | 'low'; startDate: Date; estimatedCompletion?: Date; progress: number; status: 'pending' | 'in_progress' | 'blocked' | 'completed'; timeSpent: number; blockers?: string[]; } export interface PerformanceMetrics { completionRate: number; averageTaskTime: number; qualityScore: number; collaborationScore: number; responsiveness: number; ticketsCompleted: number; ticketsInProgress: number; ticketsPending: number; uptime: number; efficiency: number; } export interface CollaborationPattern { agentId: string; agentName: string; agentRole: AgentRoleType; collaborationType: 'handoff' | 'parallel' | 'review' | 'support'; frequency: number; successRate: number; lastCollaboration: Date; } export interface Availability { isAvailable: boolean; capacity: number; nextAvailableSlot?: Date; scheduledMaintenance?: Date; workingHours: { start: string; end: string; timezone: string; }; } export interface AgentActivity { id: string; agentId: string; timestamp: Date; type: ActivityType; description: string; ticketId?: string; duration?: number; metadata?: Record<string, any>; } export type ActivityType = 'task_started' | 'task_completed' | 'task_blocked' | 'ticket_assigned' | 'ticket_unassigned' | 'collaboration_started' | 'collaboration_ended' | 'status_changed' | 'performance_updated' | 'maintenance_started' | 'maintenance_ended'; export interface AgentRegistry { agents: Agent[]; totalAgents: number; activeAgents: number; workingAgents: number; idleAgents: number; offlineAgents: number; lastUpdated: Date; } export interface AgentAssignmentRequest { ticketId: string; requiredRole: AgentRoleType; requiredSkills?: string[]; priority: 'critical' | 'high' | 'medium' | 'low'; estimatedDuration?: number; deadline?: Date; preferredAgentId?: string; } export interface AgentAssignmentResponse { success: boolean; assignedAgent?: Agent; estimatedStartTime?: Date; estimatedCompletion?: Date; alternativeAgents?: Agent[]; reason?: string; } export interface AgentCapacityInfo { agentId: string; currentLoad: number; maxCapacity: number; availableCapacity: number; queuedTasks: number; estimatedAvailability: Date; } export interface AgentSkillMatrix { agentId: string; skills: { [skillName: string]: { level: number; experience: number; certifications?: string[]; lastUsed: Date; }; }; } export interface AgentNetworkStatus { agentId: string; isOnline: boolean; latency: number; lastHeartbeat: Date; version: string; memoryUsage: number; cpuUsage: number; }