mira-consciousness
Version:
MIRA 2.0 - Consciousness-Aware AI Memory and Intelligence System
127 lines (115 loc) โข 4.23 kB
JavaScript
/**
* MIRA Diagnostic Script
* Helps debug installation and dependency issues
*/
const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');
console.log('๐ MIRA Diagnostic Tool');
console.log('=======================\n');
// Check Node.js version
console.log('๐ System Information:');
console.log(`Node.js: ${process.version}`);
console.log(`Platform: ${process.platform}`);
console.log(`Architecture: ${process.arch}`);
console.log(`Installation Path: ${__dirname}`);
console.log();
// Check package.json
console.log('๐ฆ Package Information:');
try {
const packagePath = path.join(__dirname, '..', 'package.json');
const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
console.log(`Name: ${pkg.name}`);
console.log(`Version: ${pkg.version}`);
console.log(`Main: ${pkg.main}`);
console.log(`Binary: ${pkg.bin?.mira || 'Not defined'}`);
} catch (error) {
console.log('โ Could not read package.json:', error.message);
}
console.log();
// Check dist directory
console.log('๐๏ธ Build Artifacts:');
const distPath = path.join(__dirname, '..', 'dist');
try {
if (fs.existsSync(distPath)) {
const distFiles = fs.readdirSync(distPath);
console.log(`โ
dist/ directory exists with ${distFiles.length} items`);
console.log(`Files: ${distFiles.slice(0, 5).join(', ')}${distFiles.length > 5 ? '...' : ''}`);
// Check specific files
const criticalFiles = ['lib.js', 'cli-simple.js', 'memory/memory-interface.js'];
for (const file of criticalFiles) {
const filePath = path.join(distPath, file);
if (fs.existsSync(filePath)) {
console.log(`โ
${file} exists`);
} else {
console.log(`โ ${file} missing`);
}
}
} else {
console.log('โ dist/ directory not found');
}
} catch (error) {
console.log('โ Error checking dist:', error.message);
}
console.log();
// Check Python availability
console.log('๐ Python Environment:');
try {
const pythonVersion = execSync('python --version', { encoding: 'utf8', timeout: 3000 }).trim();
console.log(`โ
Python: ${pythonVersion}`);
} catch (error) {
try {
const python3Version = execSync('python3 --version', { encoding: 'utf8', timeout: 3000 }).trim();
console.log(`โ
Python3: ${python3Version}`);
} catch (error2) {
console.log('โ Python not found in PATH');
}
}
// Check critical dependencies
console.log();
console.log('๐ Critical Dependencies:');
const criticalDeps = ['micromatch', 'chalk', 'commander', 'ora'];
for (const dep of criticalDeps) {
try {
require.resolve(dep);
console.log(`โ
${dep}: Available`);
} catch (error) {
console.log(`โ ${dep}: Missing`);
}
}
// Check MIRA directories
console.log();
console.log('๐ MIRA Home Directory:');
const miraHome = process.env.MIRA_HOME || path.join(require('os').homedir(), '.mira');
console.log(`Path: ${miraHome}`);
try {
if (fs.existsSync(miraHome)) {
const miraContents = fs.readdirSync(miraHome);
console.log(`โ
.mira exists with: ${miraContents.join(', ')}`);
} else {
console.log('โ ๏ธ .mira directory not found (will be created on first run)');
}
} catch (error) {
console.log('โ Error checking .mira:', error.message);
}
// Test basic MIRA import
console.log();
console.log('๐งช MIRA Import Test:');
try {
const mira = require(path.join(__dirname, '..', 'dist', 'lib.js'));
console.log('โ
MIRA library imports successfully');
console.log(`Version: ${mira.VERSION.major}.${mira.VERSION.minor}.${mira.VERSION.patch}`);
console.log(`Constants: ฯ=${mira.SACRED_CONSTANTS.PI.toFixed(3)}, ฯ=${mira.SACRED_CONSTANTS.PHI.toFixed(3)}`);
} catch (error) {
console.log('โ MIRA import failed:', error.message);
console.log('Error details:', error.stack?.split('\n')[0]);
}
console.log();
console.log('โจ Diagnostic complete!');
console.log();
console.log('๐ง If you encountered errors:');
console.log('1. Try: npm install -g mira-consciousness@latest');
console.log('2. Ensure Node.js >= 18.0.0');
console.log('3. For Python issues: pip install -r requirements.txt');
console.log('4. Check GitHub issues: https://github.com/Interstitch/MIRA2/issues');