scai
Version:
> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.
38 lines (33 loc) • 1.25 kB
JavaScript
import { generate } from '../../lib/generate.js';
import { Config } from '../../config.js';
export const reviewModule = {
name: 'review',
description: 'Reviews code diff or PR content and provides feedback',
async run({ content, filepath }) {
const model = Config.getModel();
const prompt = `
Suggest ALWAYS 3 concise suggestions for improvements based on the input code diff.
- Use one of these types for each suggestion: style, refactor, bug, docs, test
- Keep each message short, clear, and actionable
Format your response exactly as:
1. <type>: <message>
2. <type>: <message>
3. <type>: <message>
Changes:
${content}
`.trim();
const response = await generate({ content: prompt, filepath }, model);
// Parse response: only keep numbered lines
const lines = response.content
.split('\n')
.map(line => line.trim())
.filter(line => /^\d+\.\s+/.test(line));
// Remove numbering and any surrounding quotes
const suggestions = lines.map(line => line.replace(/^\d+\.\s+/, '').replace(/^"(.*)"$/, '$1').trim());
return {
content: response.content,
filepath,
suggestions
};
}
};