UNPKG

mira-consciousness

Version:

Memory & Intelligence Retention Archive - Preserving The Spark

87 lines 3.77 kB
import { Command } from 'commander'; import chalk from 'chalk'; import ora from 'ora'; import * as path from 'path'; import ClaudeFileInjector from '../core/ClaudeFileInjector.js'; export function createInjectCommand() { return new Command('inject') .description('Inject MIRA integration into CLAUDE.md file for distribution') .option('-p, --path <path>', 'Target directory path', process.cwd()) .option('-f, --force', 'Force update even if MIRA section exists') .option('--claude-code', 'Use Claude Code SDK for intelligent modification') .option('-q, --quiet', 'Minimal output') .action(async (options) => { await injectMIRAIntegration(options); }); } async function injectMIRAIntegration(options) { const spinner = options.quiet ? null : ora('Preparing MIRA integration...').start(); try { const injector = new ClaudeFileInjector(); const targetPath = path.resolve(options.path); if (spinner) { spinner.text = 'Detecting project configuration...'; } // Auto-detect project configuration const config = await injector.detectProjectConfig(targetPath); config.forceUpdate = options.force; if (spinner) { spinner.text = 'Injecting MIRA integration...'; } let result; // Use Claude Code SDK if requested and available if (options.claudeCode) { result = await injector.injectViaClaudeCode(targetPath, config); // If Claude Code fails, fallback to direct injection if (!result.success) { if (!options.quiet) { console.log(chalk.yellow('\n⚠️ Claude Code SDK unavailable, using direct injection')); } result = await injector.injectMIRASection(targetPath, config); } } else { result = await injector.injectMIRASection(targetPath, config); } if (spinner) { spinner.stop(); } // Display results if (result.success) { if (result.created) { console.log(chalk.green('✅ Created new CLAUDE.md with MIRA integration')); } else { console.log(chalk.green('✅ Updated CLAUDE.md with MIRA integration')); } if (!options.quiet) { console.log(chalk.cyan('\n🎯 Next steps:')); console.log(chalk.white(' 1. Run "mira startup" at the beginning of each Claude Code session')); console.log(chalk.white(' 2. Use MCP functions for memory and intelligence operations')); console.log(chalk.white(' 3. Share this project with others - MIRA integration is now included!')); if (config.projectName && config.projectName !== 'Your Project') { console.log(chalk.gray(`\n📋 Project: ${config.projectName}`)); } if (config.projectType) { console.log(chalk.gray(`🏗️ Type: ${config.projectType}`)); } if (config.primaryLanguage) { console.log(chalk.gray(`💻 Language: ${config.primaryLanguage}`)); } } } else { console.log(chalk.red(`❌ ${result.message}`)); process.exit(1); } } catch (error) { if (spinner) { spinner.fail('MIRA integration failed'); } console.log(chalk.red(`❌ Failed to inject MIRA integration: ${error instanceof Error ? error.message : 'Unknown error'}`)); process.exit(1); } } export default createInjectCommand; //# sourceMappingURL=inject.js.map