Phases 5 & 8 : onglet Logs, durcissement Docker et documentation

Phase 5 (fin) :
- PreviewPanel : onglet Logs (journal d'activité des outils de la session,
  compteur dynamique, statuts ✓/✕/⏸/…)

Phase 8 :
- .dockerignore
- Dockerfile : utilisateur non-root (uid 10001), HEALTHCHECK via curl, dossiers
  de runtime détenus par l'utilisateur
- docker-compose : healthcheck, variable SEARX_URL optionnelle
- .env.example : SEARX_URL
- README : sections Utilisation, Outils de l'agent, Sécurité (confinement,
  validation run_shell, non-root) ; feuille de route complète

Validation : config docker compose OK ; build d'image non exécutable ici
(démon Docker absent de l'environnement).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
MichaelandClaude Opus 4.8 committed 2026-06-29 21:12:08 +00:00
1 parent de2befe31e
commit 66be893ea6
6 files changed
+159 -14

No files matched your search

+37 -1
View File
@@ -63,8 +63,44 @@ npm run dev # http://localhost:5173
| `OLLAMA_HOST` | `http://host.docker.internal:11434` | URL de l'instance Ollama |
| `DEFAULT_MODEL` | `llama3.1:8b` | Modèle sélectionné au démarrage |
| `WORKSPACE_DIR` | `/workspace` | Dossier de travail de l'agent |
| `DATA_DIR` | `/data` | Base SQLite (sessions) |
| `DATA_DIR` | `/data` | Base SQLite (sessions + config) |
| `PORT` | `8080` | Port exposé |
| `SEARX_URL` | *(vide)* | Instance SearxNG pour `web_search` (sinon DuckDuckGo) |
## Utilisation
1. Vérifie la pastille **Ollama** (verte = connecté) en haut à droite, et choisis
un modèle qui supporte le *function calling* (ex. `llama3.1:8b`,
`qwen2.5-coder`).
2. Décris une tâche dans le tchat, p. ex. *« Crée une landing page pour un café
nommé Café Lumière, avec menu et horaires »*.
3. L'agent lit/écrit des fichiers dans le **workspace** ; chaque appel d'outil
s'affiche dans le fil, et l'aperçu HTML apparaît à droite (onglets **Aperçu /
Code / Logs**).
4. Règle le comportement dans **Configuration** (modèle, température/top-p/top-k,
jetons max, outils actifs, invite système).
## Outils de l'agent
| Outil | Rôle | Par défaut |
| ------------- | -------------------------------------- | ---------- |
| `read_file` | Lire un fichier du workspace | activé |
| `write_file` | Créer / modifier un fichier | activé |
| `list_dir` | Lister un répertoire | activé |
| `web_search` | Recherche web (DuckDuckGo / SearxNG) | désactivé |
| `run_shell` | Exécuter une commande **(sensible)** | désactivé |
## Sécurité
- **Confinement** : toutes les opérations fichier (`read_file`, `write_file`,
`list_dir`) et `run_shell` sont strictement confinées au `WORKSPACE_DIR`. Toute
tentative de sortie (`../`, chemin absolu) est rejetée.
- **`run_shell`** est désactivé par défaut. Une fois activé, chaque commande
proposée par l'agent demande une **validation explicite** dans l'interface
(option *confirm_shell*, activée par défaut) avant exécution.
- Le conteneur tourne en **utilisateur non-root** et expose un **HEALTHCHECK**.
- Loki est conçu pour un usage **local** : n'expose pas le port publiquement sans
ajouter ta propre couche d'authentification.
## Feuille de route