ollama-code-mistral
Version:
Un assistant IA en ligne de commande utilisant Ollama et le modèle Mistral-Small-3.1 pour aider au développement, avec des capacités MCP avancées pour la manipulation de fichiers
83 lines (68 loc) • 2.89 kB
JavaScript
/**
* Point d'entrée du CLI Ollama Code Mistral en mode interactif simplifié
* Optimisé pour les connexions à distance avec des latences élevées
* Utilise le modèle Mistral-Small-3.1 avec capacités d'agent et manipulation de fichiers
*/
import { Command } from 'commander';
import chalk from 'chalk';
import { OllamaService } from '../src/services/ollama-service.js';
import { ContextManager } from '../src/services/context-manager.js';
import { Config } from '../src/utils/config.js';
import { SimpleInteractiveMode } from '../src/ui/simple-interactive.js';
/**
* Affiche l'en-tête de l'application
*/
function displayHeader() {
console.clear();
console.log('\n' + chalk.bgMagenta(' Ollama Code Mistral ') + ' - ' + chalk.yellow('Mode Interactif Simplifié') + '\n');
// Afficher la version et le modèle
const config = new Config();
const version = '1.0.1';
const model = config.get('defaultModel');
const host = config.get('ollamaHost');
console.log(`Version: ${chalk.yellow(version)} | Modèle: ${chalk.yellow(model)} | Serveur: ${chalk.yellow(host)}\n`);
}
/**
* Fonction principale du CLI
*/
async function main() {
// Initialiser la configuration
const config = new Config();
// Créer le programme CLI
const program = new Command();
program
.name('ollama-code-mistral-simple')
.description('Agent IA avec Mistral en mode interactif simplifié pour les connexions lentes')
.version('1.0.1')
.option('-m, --model <model>', 'Modèle Ollama à utiliser', config.get('defaultModel'))
.option('-h, --host <host>', 'URL du serveur Ollama', config.get('ollamaHost'))
.action(async (options) => {
try {
// Initialiser les services
const ollamaService = new OllamaService(options.model, options.host);
const contextManager = new ContextManager(process.cwd(), { config });
// Afficher l'en-tête
displayHeader();
// Vérifier si Ollama est en cours d'exécution
const isServerRunning = await ollamaService.checkServer();
if (!isServerRunning) {
console.error(chalk.red('Erreur: Serveur Ollama non disponible.'));
console.error(chalk.yellow(`Assurez-vous que Ollama est installé et en cours d'exécution à l'adresse ${ollamaService.host}.`));
process.exit(1);
}
// Démarrer le mode interactif simplifié
const simpleInteractive = new SimpleInteractiveMode(ollamaService, contextManager);
await simpleInteractive.start();
} catch (error) {
console.error(chalk.red(`Erreur: ${error.message}`));
process.exit(1);
}
});
program.parse(process.argv);
}
// Démarrer l'application
main().catch(error => {
console.error(chalk.red(`Erreur fatale: ${error.message}`));
process.exit(1);
});