OpenMAIC-React / src /lib /pbl /types.ts
muthuk1's picture
Rebrand: OpenMAIC → MultiMind Classroom — rename in all source, DB name, cookie name, zip extension, prompts, docs, skills
ed07c96 verified
/**
* 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<string, unknown>;
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;
}