scai
Version:
> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.
30 lines (29 loc) • 906 B
JavaScript
// File: lib/generate.ts
import { Spinner } from './spinner.js';
export async function generate(input, model) {
const spinner = new Spinner(`🧠 Thinking with ${model}...`);
spinner.start();
try {
const res = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model,
prompt: input.content,
stream: false,
}),
});
const data = await res.json();
spinner.succeed('Model response received.');
process.stdout.write('\n');
return {
content: data.response?.trim() ?? '',
filepath: input.filepath,
};
}
catch (err) {
spinner.fail('Model request failed.');
process.stdout.write('\n');
throw err;
}
}