export type AgentTier = 'base' | 'workflow' | 'domain' | 'sub-agent'; export type AgentType = 'custom' | 'sub_agent'; export interface Agent { id: string; name: string; version: string; tier: AgentTier; type: AgentType; description: string; model: string; temperature: number; max_tokens: number; triggers: string[]; tools: string[]; auto_activate: boolean; portable?: boolean; quality_gate?: string; min_evidence?: number; min_quality?: number; min_confidence?: number; requires?: string[]; invoked_by?: string[]; sub_agents?: string[]; works_with?: string[]; content: string; config: Record; filePath: string; } export interface AgentContext { feature?: string; phase?: string; module?: string[]; inputs: Record; history: AgentExecution[]; session: SessionState; } export interface AgentExecution { agentId: string; timestamp: Date; inputs: Record; outputs: Record; duration: number; success: boolean; error?: string; } export interface SessionState { projectPath: string; currentFeature?: string; currentPhase?: string; confidence: number; gates: GateStatus[]; modules: string[]; } export interface GateStatus { gate: string; status: 'pending' | 'passed' | 'failed'; score?: number; timestamp?: Date; evidence?: string[]; }