UNPKG

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
#!/usr/bin/env node /** * 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); });