UNPKG

scai

Version:

> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.

37 lines (32 loc) 1.33 kB
import { generate } from '../../lib/generate.js'; import { Config } from '../../config.js'; export const commitSuggesterModule = { name: 'commitSuggester', description: 'Suggests conventional commit messages from Git diff', async run({ content }) { const model = Config.getModel(); const prompt = ` Suggest ALWAYS 3 concise, conventional Git commit messages based on the input code diff. - Follow the Conventional Commits specification for prefixes (e.g., feat:, fix:, refactor:, docs:, style:, test:, chore:). - Choose the most appropriate prefix for each message based on the changes in the diff. - Do NOT repeat the same prefix unless it is clearly the most appropriate. - Keep each message short, clear, and action-oriented. Format your response exactly as: 1. <type>: <message> 2. <type>: <message> 3. <type>: <message> Here is the diff: ${content} `.trim(); const response = await generate({ content: prompt }, model); const lines = response.content .split('\n') .map(line => line.trim()) .filter(line => /^\d+\.\s+/.test(line)); const suggestions = lines.map(line => line.replace(/^\d+\.\s+/, '').replace(/^"(.*)"$/, '$1').trim()); return { content, suggestions }; } };