vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
78 lines (77 loc) • 2.42 kB
JavaScript
import chalk from 'chalk';
import boxen from 'boxen';
import Table from 'cli-table3';
import { CLIUtils } from '../../tools/vibe-task-manager/cli/commands/index.js';
export class EnhancedCLIUtils extends CLIUtils {
static formatSuccess(message) {
console.log(chalk.green(`✓ ${message}`));
}
static formatError(message) {
console.error(chalk.red(`✗ ${message}`));
}
static formatInfo(message) {
console.log(chalk.blue(`ℹ ${message}`));
}
static formatWarning(message) {
console.log(chalk.yellow(`⚠ ${message}`));
}
static formatBox(content, title) {
console.log(boxen(content, {
title,
padding: 1,
margin: 1,
borderStyle: 'round',
borderColor: 'cyan',
titleAlignment: 'center'
}));
}
static formatTable(headers, rows) {
const table = new Table({
head: headers.map(h => chalk.cyan(h)),
style: {
head: [],
border: []
}
});
rows.forEach(row => {
table.push([...row]);
});
console.log(table.toString());
}
static formatHeading(text) {
console.log(chalk.bold.cyan(text));
console.log(chalk.cyan('─'.repeat(text.length)));
}
static formatExample(command, description) {
console.log(` ${chalk.green(command)}`);
console.log(` ${chalk.gray(description)}`);
console.log();
}
static formatLoading(message) {
console.log(chalk.blue(`○ ${message}`));
}
static formatKeyValue(data) {
const entries = Object.entries(data);
const maxKeyLength = Math.max(...entries.map(([key]) => key.length));
entries.forEach(([key, value]) => {
const paddedKey = key.padEnd(maxKeyLength);
console.log(`${chalk.cyan(paddedKey)} : ${value}`);
});
}
static formatList(items) {
items.forEach(item => {
console.log(`• ${item}`);
});
}
static formatNumberedList(items) {
items.forEach((item, index) => {
console.log(`${chalk.cyan(`${index + 1}.`)} ${item}`);
});
}
static formatSeparator(character = '─', length = 50) {
console.log(chalk.gray(character.repeat(length)));
}
static clear() {
console.clear();
}
}