UNPKG

quallaa-cli

Version:

Sets up core infrastructure services for AI-assisted development

134 lines 5.91 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCommand = void 0; const commander_1 = require("commander"); const chalk_1 = __importDefault(require("chalk")); const inquirer_1 = __importDefault(require("inquirer")); const claude_1 = require("./claude"); exports.generateCommand = new commander_1.Command('generate') .description('Generate context files for AI-assisted development') .addCommand(new commander_1.Command('claude') .description('Generate CLAUDE.md context file for AI development assistant') .option('-r, --role <role>', 'Role for context generation') .action(async (options) => { try { let role = options.role; if (!role) { const { selectedRole } = await inquirer_1.default.prompt([ { type: 'list', name: 'selectedRole', message: 'Select role for CLAUDE.md context:', choices: [ { name: 'Technical Co-Founder / First Engineer', value: 'founder' }, { name: 'Product Manager / Product Owner', value: 'product' }, { name: 'Marketing Lead / Growth Hacker', value: 'marketing' }, { name: 'Operations Manager / Business Manager', value: 'operations' }, ], }, ]); role = selectedRole; } const services = await detectServices(); const config = { name: process.cwd().split('/').pop() || 'project', role, services, leadInfo: null, }; console.log(chalk_1.default.yellow('Generating CLAUDE.md...')); await (0, claude_1.generateClaudeMd)(config); console.log(chalk_1.default.green('✓ CLAUDE.md generated successfully!')); } catch (error) { console.error(chalk_1.default.red('Error generating CLAUDE.md:'), error); process.exit(1); } })); async function detectServices() { try { const fs = await Promise.resolve().then(() => __importStar(require('fs/promises'))); const packageJson = JSON.parse(await fs.readFile('package.json', 'utf-8')); const dependencies = { ...packageJson.dependencies, ...packageJson.devDependencies }; const services = []; if (dependencies['@supabase/supabase-js'] || dependencies['@supabase/ssr']) { services.push('supabase'); } if (dependencies['resend']) { services.push('resend'); } if (dependencies['typesense']) { services.push('typesense'); } services.push('vercel', 'github'); const { confirmedServices } = await inquirer_1.default.prompt([ { type: 'checkbox', name: 'confirmedServices', message: 'Confirm services for CLAUDE.md context:', choices: [ { name: 'Vercel (Hosting)', value: 'vercel', checked: services.includes('vercel') }, { name: 'Supabase (Database)', value: 'supabase', checked: services.includes('supabase') }, { name: 'GitHub (Version Control)', value: 'github', checked: services.includes('github') }, { name: 'Resend (Email)', value: 'resend', checked: services.includes('resend') }, { name: 'Typesense (Search)', value: 'typesense', checked: services.includes('typesense') }, ], }, ]); return confirmedServices; } catch (error) { const { services } = await inquirer_1.default.prompt([ { type: 'checkbox', name: 'services', message: 'Select services for CLAUDE.md context:', choices: [ { name: 'Vercel (Hosting)', value: 'vercel', checked: true }, { name: 'Supabase (Database)', value: 'supabase', checked: true }, { name: 'GitHub (Version Control)', value: 'github', checked: true }, { name: 'Resend (Email)', value: 'resend', checked: true }, { name: 'Typesense (Search)', value: 'typesense', checked: false }, ], }, ]); return services; } } //# sourceMappingURL=index.js.map