/**
 * Multi-Agent System 타입 정의
 */

// 에이전트 타입
export type AgentType = 'pm' | 'backend' | 'db' | 'frontend';

// 에이전트 설정
export interface AgentConfig {
  model: string;
  systemPrompt: string;
  maxTokens: number;
}

// 작업 요청
export interface TaskRequest {
  agent: AgentType;
  task: string;
  context?: string;
}

// 작업 응답 상태
export type ResponseStatus = 'success' | 'partial' | 'failed' | 'need_clarification';

// 확신도
export type ConfidenceLevel = 'high' | 'medium' | 'low';

// 코드 변경
export interface CodeChange {
  file: string;
  action: 'create' | 'modify' | 'delete';
  content?: string;
  lineStart?: number;
  lineEnd?: number;
}

// 에이전트 응답
export interface AgentResponse {
  status: ResponseStatus;
  confidence: ConfidenceLevel;
  result?: {
    summary: string;
    details: string;
    filesAffected?: string[];
    codeChanges?: CodeChange[];
  };
  scopeViolations?: string[];
  dependencies?: string[];
  sideEffects?: string[];
  alternatives?: string[];
  questions?: string[];
  needsFromOthers?: {
    agent: AgentType;
    request: string;
  }[];
}

// 병렬 요청 결과
export interface ParallelResult {
  agent: AgentType;
  result: string;
  error?: string;
}
