UNPKG

scai

Version:

> **AI-powered CLI for local code analysis, commit message suggestions, and natural-language queries.** 100% local, private, GDPR-friendly, made in Denmark/EU with ❤️.

48 lines (43 loc) 1.73 kB
// File: src/pipeline/modules/reviewModule.ts import { generate } from '../../lib/generate.js'; export const reviewModule = { name: 'review', description: 'Reviews code diff or PR content and provides actionable suggestions', run: async (input) => { const query = input.query ?? ''; const codeDiff = typeof input.content === 'string' ? input.content : ''; if (!codeDiff) { throw new Error('⚠️ No code diff provided for review.'); } 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: ${codeDiff} `.trim(); const response = await generate({ query, content: prompt, }); // Ensure content is string const responseText = typeof response.content === 'string' ? response.content : JSON.stringify(response.content ?? '', null, 2); // Parse response: only keep numbered lines const lines = responseText .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()); const output = { query, content: responseText, // raw model output data: { suggestions }, // structured suggestions }; return output; }, };