scai
Version:
> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.
32 lines (31 loc) • 1.12 kB
JavaScript
import { readFileSync } from 'fs';
import { getModuleByName } from '../pipeline/registry/moduleRegistry.js';
import { runModulePipeline } from '../pipeline/runModulePipeline.js';
export async function runModulePipelineFromCLI(file, options) {
if (!options.modules) {
console.error('❌ No modules specified. Use --modules or -m.');
process.exit(1);
}
const moduleNames = options.modules.split(',').map((m) => m.trim());
// Read file content
let fileContent = '';
try {
fileContent = readFileSync(file, 'utf-8');
}
catch (err) {
console.error(`❌ Could not read file: ${file}`);
process.exit(1);
}
const input = { content: fileContent, filepath: file };
// Retrieve modules from the registry
const resolvedModules = moduleNames.map((name) => {
const module = getModuleByName(name);
if (!module) {
console.error(`❌ Failed to load module: ${name}`);
process.exit(1);
}
return module;
});
// Run the module pipeline
await runModulePipeline(resolvedModules, input);
}