@webdevtoday/claude-agents
Version:
AI-powered development shop with 15 specialized agents for Claude Code. Features concurrent execution, shared memory, context-forge integration, and web dashboard for 80% faster development.
93 lines (80 loc) • 3.8 kB
JavaScript
import chalk from 'chalk';
import { getAgentDetails } from '../utils/agents.js';
import { getInstalledAgents, isAgentEnabled } from '../utils/config.js';
export async function infoCommand(agentName) {
try {
const agentDetails = getAgentDetails(agentName);
const installedAgents = getInstalledAgents();
const isInstalled = installedAgents.hasOwnProperty(agentName);
if (!agentDetails && !isInstalled) {
console.log(chalk.red(`Agent "${agentName}" not found.`));
console.log(chalk.gray('Use "claude-agents list" to see available agents.'));
process.exit(1);
}
// Display agent information
console.log(chalk.bold.blue(`\n${agentName}\n${'='.repeat(agentName.length)}`));
if (agentDetails) {
console.log(chalk.bold('Description:'), agentDetails.description);
console.log(chalk.bold('Version:'), agentDetails.version);
console.log(chalk.bold('Author:'), agentDetails.author || 'Unknown');
if (agentDetails.tags && agentDetails.tags.length > 0) {
console.log(chalk.bold('Tags:'), agentDetails.tags.join(', '));
}
console.log('');
console.log(chalk.bold('Installation Status:'));
if (isInstalled) {
const enabled = isAgentEnabled(agentName);
const installedInfo = installedAgents[agentName];
console.log(` Status: ${enabled ? chalk.green('Enabled') : chalk.gray('Disabled')}`);
console.log(` Scope: ${installedInfo.scope}`);
console.log(` Installed: ${new Date(installedInfo.installedAt).toLocaleDateString()}`);
} else {
console.log(` Status: ${chalk.blue('Available for installation')}`);
}
console.log('');
console.log(chalk.bold('Requirements:'));
if (agentDetails.requirements?.tools) {
console.log(' Tools:', agentDetails.requirements.tools.join(', '));
}
if (agentDetails.requirements?.optional_tools) {
console.log(' Optional tools:', agentDetails.requirements.optional_tools.join(', '));
}
if (agentDetails.hooks) {
console.log('');
console.log(chalk.bold('Hooks:'));
if (agentDetails.hooks.recommended) {
console.log(' Recommended:', agentDetails.hooks.recommended.join(', '));
}
if (agentDetails.hooks.optional) {
console.log(' Optional:', agentDetails.hooks.optional.join(', '));
}
}
if (agentDetails.commands && agentDetails.commands.length > 0) {
console.log('');
console.log(chalk.bold('Slash Commands:'));
agentDetails.commands.forEach(cmd => {
console.log(` /${cmd}`);
});
}
console.log('');
console.log(chalk.bold('System Prompt Preview:'));
const promptPreview = agentDetails.content.split('\n').slice(0, 5).join('\n');
console.log(chalk.gray(promptPreview));
if (agentDetails.content.split('\n').length > 5) {
console.log(chalk.gray(' [... truncated ...]'));
}
} else if (isInstalled) {
// Agent is installed but not in available agents (custom agent)
const installedInfo = installedAgents[agentName];
console.log(chalk.bold('Description:'), installedInfo.description || 'Custom agent');
console.log(chalk.bold('Version:'), installedInfo.version || 'Unknown');
console.log(chalk.bold('Scope:'), installedInfo.scope);
console.log(chalk.bold('Installed:'), new Date(installedInfo.installedAt).toLocaleDateString());
console.log(chalk.bold('Status:'), isAgentEnabled(agentName) ? chalk.green('Enabled') : chalk.gray('Disabled'));
}
console.log('');
} catch (error) {
console.error(chalk.red('Error:'), error.message);
process.exit(1);
}
}