From 71f8ba0d03cad65837aa858082d2d0fcfe16e006 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Sat, 18 Jul 2026 17:15:02 +0200 Subject: [PATCH] feat: toggle skills UI + Node.js dans l'image + docs MCP/skills Co-Authored-By: Claude Opus 4.8 --- Dockerfile | 7 ++++--- README.md | 25 +++++++++++++++++++++++++ frontend/src/api/client.ts | 1 + frontend/src/panels/SettingsView.tsx | 2 ++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 834d151..3168cf3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,12 +16,13 @@ ENV PYTHONUNBUFFERED=1 \ DATA_DIR=/data \ PORT=8717 -# curl pour le HEALTHCHECK ; git pour le moteur code (commits Aider) -RUN apt-get update && apt-get install -y --no-install-recommends curl git \ +# curl pour le HEALTHCHECK ; git pour le moteur code (commits Aider) ; +# nodejs/npm pour les serveurs MCP lancés via npx (Playwright, Context7…) +RUN apt-get update && apt-get install -y --no-install-recommends curl git nodejs npm \ && rm -rf /var/lib/apt/lists/* COPY backend/requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt +RUN pip install --no-cache-dir -r requirements.txt mcp-server-fetch COPY backend/ ./backend/ # Frontend compilé servi en statique par FastAPI diff --git a/README.md b/README.md index 01c3d91..12fc4fc 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,31 @@ un clic. /100 (appel d'outil, code exécutable, consignes, extraction JSON, format) pour comparer objectivement tes modèles installés. +## Serveurs MCP (outils professionnels) + +Configuration → **Serveurs MCP** : catalogue préconfiguré, tout désactivé par +défaut (un serveur inactif ne coûte rien — aucun process, aucun outil dans le +prompt du modèle). + +| Serveur | Apport | +| ------- | ------ | +| Playwright | l'agent pilote un vrai navigateur : teste ses pages, lit la console | +| Context7 | documentation à jour de n'importe quelle librairie | +| Fetch | lecture propre d'URL (markdown) | +| SearxNG | vraie recherche web (URL d'instance requise) | +| Personnalisé | n'importe quel serveur MCP (commande stdio ou URL) | + +Chaque carte a un bouton **Tester** (connexion d'essai + liste des outils +découverts). Un serveur en panne n'interrompt jamais le chat : notice dans le +fil, nouvelle tentative au message suivant. + +## Skills automatiques + +Cinq méthodes expertes (débogage systématique, création web, refactor sûr, +analyse de données, rédaction structurée) sont injectées automatiquement selon +la tâche détectée — sélection lexicale instantanée, une seule à la fois, badge +« 📘 Méthode : … » dans le fil. Désactivable dans Configuration → Intelligence. + ## Tirer le meilleur des petits modèles Loki est conçu pour qu'un modèle local modeste se comporte comme un bon agent : diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index adf5dfd..ea59138 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -265,6 +265,7 @@ export interface AgentConfig { self_review: boolean; rag_enabled: boolean; embed_model: string; + skills_enabled: boolean; keep_alive: string; } diff --git a/frontend/src/panels/SettingsView.tsx b/frontend/src/panels/SettingsView.tsx index 12a6acd..20932e4 100644 --- a/frontend/src/panels/SettingsView.tsx +++ b/frontend/src/panels/SettingsView.tsx @@ -434,6 +434,8 @@ export function SettingsView() { "Relit et révise la réponse avant de la donner"] as const, ["rag_enabled", "Mémoire long-terme (RAG)", "Se souvient des anciennes sessions (modèle d'embedding requis)"] as const, + ["skills_enabled", "Skills automatiques", + "Méthodes expertes injectées selon la tâche (débogage, web, refactor…)"] as const, ].map(([key, label, desc], i) => (