optivise
Version:
Optivise - The Ultimate Optimizely Development Assistant with AI-powered features, zero-config setup, and comprehensive development support
42 lines • 1.83 kB
JavaScript
import { RuleIntelligenceService } from '../services/rule-intelligence-service.js';
import { createLogger } from '../utils/logger.js';
import * as path from 'path';
async function main() {
const logger = createLogger('error');
const svc = new RuleIntelligenceService(logger);
await svc.initialize();
const [, , sub, projectPathArg, flag] = process.argv;
const projectPath = projectPathArg ? path.resolve(process.cwd(), projectPathArg) : process.cwd();
switch (sub) {
case 'propose': {
const analysis = await svc.analyzeIDERules(projectPath);
const result = {
foundFiles: analysis.foundFiles,
lintWarnings: analysis.lintWarnings,
conflicts: analysis.conflicts,
normalized: analysis.normalizedDirectives,
proposed: analysis.proposedCursorRules,
diff: analysis.proposedCursorRulesDiff
};
console.log(JSON.stringify(result, null, 2));
// Write .cursorrules if --write or --yes present
const shouldWrite = flag === '--write' || flag === '--yes';
if (shouldWrite && analysis.proposedCursorRules) {
const fs = await import('fs/promises');
const target = path.join(projectPath, '.cursorrules');
await fs.writeFile(target, analysis.proposedCursorRules, 'utf-8');
console.log(JSON.stringify({ action: 'write', file: target, ok: true }, null, 2));
}
break;
}
default: {
console.log('Usage: optivise-rules propose [projectPath] [--write|--yes]');
}
}
}
main().catch((err) => {
console.error('Rules CLI failed:', err);
process.exit(1);
});
//# sourceMappingURL=rules-cli.js.map