design-agent
Version:
Universal AI Design Review Agent - CLI tool for scanning code for design drift
118 lines (101 loc) ⢠3.71 kB
JavaScript
import { runAgent } from '../src/agent.mjs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Parse CLI arguments
const args = process.argv.slice(2);
const options = {
config: 'design-agent.config.json',
delta: false,
full: true,
sarif: false,
baseline: 'design-agent.baseline.json',
rules: 'rules.yml',
suggest: false
};
// Check for subcommands
const subcommand = args[0];
if (subcommand === 'audit') {
// Remove 'audit' from args and parse the rest
args.shift();
}
// Parse flags
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (arg === '--config' && args[i + 1]) {
options.config = args[++i];
} else if (arg === '--delta') {
options.delta = true;
options.full = false;
} else if (arg === '--full') {
options.full = true;
options.delta = false;
} else if (arg === '--sarif') {
options.sarif = true;
} else if (arg === '--baseline' && args[i + 1]) {
options.baseline = args[++i];
} else if (arg === '--rules' && args[i + 1]) {
options.rules = args[++i];
} else if (arg === '--suggest') {
options.suggest = true;
} else if (arg === '--help' || arg === '-h') {
console.log(`
Design Agent - Universal AI Design Review Agent
USAGE:
design-agent [OPTIONS]
design-agent audit [OPTIONS]
COMMANDS:
audit Run design audit (default command)
OPTIONS:
--config <path> Config file path (default: design-agent.config.json)
--delta Run delta scan only
--full Run full scan (default)
--sarif Emit SARIF output
--baseline <path> Baseline file path (default: design-agent.baseline.json)
--rules <path> Rules file path (default: rules.yml)
--suggest Include suggested changes
--detect Detect environment and suggest configuration
--help, -h Show this help
ENVIRONMENT VARIABLES:
SLACK_WEBHOOK_URL Slack webhook for notifications
ANTHROPIC_API_KEY Claude API key for AI summaries
GITHUB_SERVER_URL GitHub server URL (for CI links)
GITHUB_REPOSITORY GitHub repository (for CI links)
GITHUB_RUN_ID GitHub run ID (for CI links)
EXAMPLES:
design-agent
design-agent audit
design-agent audit --delta --sarif
design-agent audit --config custom.config.json --suggest
`);
process.exit(0);
} else if (arg === '--version' || arg === '-v') {
const pkg = JSON.parse(await import('fs').then(fs => fs.readFile(join(__dirname, '../package.json'), 'utf8')));
console.log(pkg.version);
process.exit(0);
} else if (arg === '--detect') {
const { detectEnvironment, generateConfigForEnvironment, suggestConfigTemplate } = await import('../src/utils/environmentDetector.mjs');
const environments = await detectEnvironment();
const config = await generateConfigForEnvironment(environments);
const suggestions = await suggestConfigTemplate(environments);
console.log('š Environment Detection Results:');
console.log('==================================');
for (const [env, detected] of Object.entries(environments)) {
console.log(`${detected ? 'ā
' : 'ā'} ${env}`);
}
console.log('\nš Suggested Configuration:');
console.log(JSON.stringify(config, null, 2));
console.log('\nš” Recommendations:');
suggestions.forEach(suggestion => console.log(` - ${suggestion}`));
process.exit(0);
}
}
// Run the agent
try {
await runAgent(options);
} catch (error) {
console.error('Error running design agent:', error.message);
process.exit(1);
}