pm-orchestrator-enhancement
Version:
PM Orchestrator Enhancement - Multi-agent parallel execution system
111 lines • 3.83 kB
JavaScript
;
/**
* ANSI Color Code Module
*
* サブエージェントごとに色分けされた表示を提供します。
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ColorCode = exports.AgentColor = void 0;
var AgentColor;
(function (AgentColor) {
AgentColor["PM_ORCHESTRATOR"] = "\u001B[33m";
AgentColor["RULE_CHECKER"] = "\u001B[31m";
AgentColor["CODE_ANALYZER"] = "\u001B[35m";
AgentColor["DESIGNER"] = "\u001B[95m";
AgentColor["IMPLEMENTER"] = "\u001B[32m";
AgentColor["TESTER"] = "\u001B[96m";
AgentColor["QA"] = "\u001B[36m";
AgentColor["CICD_ENGINEER"] = "\u001B[34m";
AgentColor["REPORTER"] = "\u001B[94m";
AgentColor["RESET"] = "\u001B[0m";
})(AgentColor || (exports.AgentColor = AgentColor = {}));
class ColorCode {
/**
* エージェント名に対応する色コードを取得
*/
static getColor(agentName) {
const colorMap = {
'pm-orchestrator': AgentColor.PM_ORCHESTRATOR,
'rule-checker': AgentColor.RULE_CHECKER,
'code-analyzer': AgentColor.CODE_ANALYZER,
'designer': AgentColor.DESIGNER,
'implementer': AgentColor.IMPLEMENTER,
'tester': AgentColor.TESTER,
'qa': AgentColor.QA,
'cicd-engineer': AgentColor.CICD_ENGINEER,
'reporter': AgentColor.REPORTER
};
return colorMap[agentName] || '';
}
/**
* エージェント名を色付きで表示
*/
static colorize(agentName, text) {
const color = this.getColor(agentName);
return `${color}${text}${AgentColor.RESET}`;
}
/**
* エージェント識別子を色付きで表示
*/
static formatAgentName(agentName) {
const emoji = this.getEmoji(agentName);
const displayName = this.getDisplayName(agentName);
return this.colorize(agentName, `${emoji} ${displayName}`);
}
/**
* エージェントに対応する絵文字を取得
*/
static getEmoji(agentName) {
const emojiMap = {
'pm-orchestrator': '🎯',
'rule-checker': '🔴',
'code-analyzer': '🟣',
'designer': '🟣',
'implementer': '🟢',
'tester': '🔵',
'qa': '🔵',
'cicd-engineer': '🔵',
'reporter': '🔵'
};
return emojiMap[agentName] || '⚪';
}
/**
* エージェントの表示名を取得
*/
static getDisplayName(agentName) {
const nameMap = {
'pm-orchestrator': 'PM Orchestrator',
'rule-checker': 'Rule Checker',
'code-analyzer': 'Code Analyzer',
'designer': 'Designer',
'implementer': 'Implementer',
'tester': 'Tester',
'qa': 'QA',
'cicd-engineer': 'CI/CD Engineer',
'reporter': 'Reporter'
};
return nameMap[agentName] || agentName;
}
/**
* 進捗状況を色付きで表示
*/
static formatStatus(status) {
const statusMap = {
'pending': { color: '\x1b[90m', text: '⏳ Pending' },
'running': { color: '\x1b[33m', text: '▶️ Running' },
'completed': { color: '\x1b[32m', text: '✅ Completed' },
'error': { color: '\x1b[31m', text: '❌ Error' }
};
const { color, text } = statusMap[status];
return `${color}${text}${AgentColor.RESET}`;
}
/**
* ツール呼び出しを色付きで表示
*/
static formatToolCall(toolName, description) {
const toolColor = '\x1b[36m'; // Cyan
return `${toolColor}🔧 ${toolName}${AgentColor.RESET}: ${description}`;
}
}
exports.ColorCode = ColorCode;
//# sourceMappingURL=color-code.js.map