organ-ai-zer
Version:
AI-powered file organizer CLI tool
40 lines ⢠1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.preview = preview;
const file_scanner_1 = require("../services/file-scanner");
const ai_organizer_1 = require("../services/ai-organizer");
const config_service_1 = require("../services/config-service");
async function preview(directory, options) {
try {
console.log(`Previewing organization for: ${directory}`);
// Initialize config service
const configService = config_service_1.ConfigService.getInstance(options.config);
// Validate API key
const hasValidKey = await configService.validateApiKey();
if (!hasValidKey) {
console.log('š” Run "organ-ai-zer init" to set up your configuration');
process.exit(1);
}
const scanner = new file_scanner_1.FileScanner();
const files = await scanner.scanDirectory(directory, options.recursive || false);
console.log(`š Found ${files.length} files to analyze`);
const aiOrganizer = new ai_organizer_1.AIOrganizer(configService);
const useCache = !options.noCache;
const suggestions = await aiOrganizer.generateSuggestions(files, useCache);
console.log(`\nš¤ Organization Preview (${suggestions.length} suggestions):`);
console.log('ā'.repeat(60));
suggestions.forEach((suggestion, index) => {
console.log(`\n${index + 1}. ${suggestion.file.name}`);
console.log(` From: ${suggestion.file.path}`);
console.log(` To: ${suggestion.suggestedPath}`);
console.log(` Reason: ${suggestion.reason}`);
console.log(` Confidence: ${Math.round(suggestion.confidence * 100)}%`);
});
console.log('\nš” Use the "organize" command to apply these changes');
}
catch (error) {
console.error('ā Error during preview:', error);
process.exit(1);
}
}
//# sourceMappingURL=preview.js.map