UNPKG

design-agent

Version:

Universal AI Design Review Agent - CLI tool for scanning code for design drift

118 lines (101 loc) • 3.71 kB
#!/usr/bin/env node 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); }