/** * PBL (Project-Based Learning) Type Definitions * * Migrated from PBL-Nano with PBL prefix to avoid conflicts with MultiMind types. */ export type PBLMode = 'project_info' | 'agent' | 'issueboard' | 'idle'; export interface PBLProjectInfo { title: string; description: string; } export type PBLRoleDivision = 'management' | 'development'; export interface PBLAgent { name: string; actor_role: string; role_division: PBLRoleDivision; system_prompt: string; default_mode: string; delay_time: number; env: Record; is_user_role: boolean; is_active: boolean; is_system_agent: boolean; } export interface PBLIssue { id: string; title: string; description: string; person_in_charge: string; participants: string[]; notes: string; parent_issue: string | null; index: number; is_done: boolean; is_active: boolean; generated_questions: string; question_agent_name: string; judge_agent_name: string; } export interface PBLIssueboard { agent_ids: string[]; issues: PBLIssue[]; current_issue_id: string | null; } export interface PBLChatMessage { id: string; agent_name: string; message: string; timestamp: number; read_by: string[]; } export interface PBLChat { messages: PBLChatMessage[]; } export interface PBLProjectConfig { projectInfo: PBLProjectInfo; agents: PBLAgent[]; issueboard: PBLIssueboard; chat: PBLChat; selectedRole?: string | null; } /** * MCP tool result (shared by all MCP classes) */ export interface PBLToolResult { success: boolean; error?: string; message?: string; [key: string]: unknown; }