#!/usr/bin/env node import { Command } from 'commander'; import { initCommand } from './commands/init.js'; import { versionsCommand } from './commands/versions.js'; import { updateCommand } from './commands/update.js'; import type { AIType } from './types/index.js'; import { AI_TYPES } from './types/index.js'; const program = new Command(); program .name('uipro') .description('CLI to install UI/UX Pro Max skill for AI coding assistants') .version('1.0.3'); program .command('init') .description('Install UI/UX Pro Max skill to current project') .option('-a, --ai ', `AI assistant type (${AI_TYPES.join(', ')})`) .option('-v, --version ', 'Specific version to install') .option('-f, --force', 'Overwrite existing files') .action(async (options) => { if (options.ai && !AI_TYPES.includes(options.ai)) { console.error(`Invalid AI type: ${options.ai}`); console.error(`Valid types: ${AI_TYPES.join(', ')}`); process.exit(1); } await initCommand({ ai: options.ai as AIType | undefined, version: options.version, force: options.force, }); }); program .command('versions') .description('List available versions') .action(versionsCommand); program .command('update') .description('Update UI/UX Pro Max to latest version') .option('-a, --ai ', `AI assistant type (${AI_TYPES.join(', ')})`) .action(async (options) => { if (options.ai && !AI_TYPES.includes(options.ai)) { console.error(`Invalid AI type: ${options.ai}`); console.error(`Valid types: ${AI_TYPES.join(', ')}`); process.exit(1); } await updateCommand({ ai: options.ai as AIType | undefined, }); }); program.parse();