mira-consciousness
Version:
Memory & Intelligence Retention Archive - Preserving The Spark
87 lines • 3.77 kB
JavaScript
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