From fcf1633cd1df07af88bfe618ed0da179d1082336 Mon Sep 17 00:00:00 2001 From: sylvain Date: Mon, 9 Mar 2026 18:30:15 +0000 Subject: [PATCH] docs: enrichissement TODO avec suggestions --- TODO.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 11 deletions(-) diff --git a/TODO.md b/TODO.md index 2948055..c5b1fc0 100644 --- a/TODO.md +++ b/TODO.md @@ -21,6 +21,11 @@ | Topics MQTT structurés : inbox, status, capabilities, broadcast | [x] | | LWT (Last Will Testament) MQTT → statut offline automatique | [x] | | Reconnexion automatique MQTT | [x] | +| Reconnexion automatique XMPP (backoff exponentiel) | [x] | +| Dispatch XMPP handler en thread (évite blocage asyncio) | [x] | +| Protection contre appels LLM concurrents (`_llm_lock`) | [x] | +| Switch LLM global via MQTT retained (`/llm local/cloud`) | [x] | +| Reset historique LLM automatique lors d'un switch | [x] | --- @@ -38,8 +43,15 @@ | Délégation directe `@agent message` | [x] | | Broadcast `@all message` | [x] | | Mise à jour agent `/update ` (envoi MQTT) | [x] | +| Commandes `/llm`, `/llm local/cloud`, `/llm list`, `/llm set` | [x] | +| Réponses nexus dans le MUC quand commande vient du MUC | [x] | +| Routage LLM dynamique (capacités agents injectées automatiquement) | [x] | | **Vérification `work_hours` avant délégation** (delegate skill) | [ ] | | **Blackout global** (plage horaire où aucune tâche n'est envoyée) | [ ] | +| **Commandes `/claude` et `/mammouth`** (appels one-shot API externes) | [ ] | +| **Skill `notify`** — envoyer une notification proactive à l'utilisateur | [ ] | +| **Historique des conversations** (persistance SQLite, `/history`) | [ ] | +| **Confirmation avant exécution** pour les actions destructives | [ ] | | Commande `/status` détaillée (uptime, nb tâches, LLM actif…) | [~] | | Skill `web_search` (DuckDuckGo) | [x] | | Skill `web_read` (BeautifulSoup) | [x] | @@ -59,7 +71,10 @@ | Skill `shell` (commandes arbitraires) | [x] | | Monitoring proactif disque (>85%) → alerte MQTT | [x] | | Monitoring proactif RAM (>90%) → alerte MQTT | [x] | -| **Venv + service systemd installés et testés** | [ ] | +| **Seuils de monitoring configurables** dans config.json | [ ] | +| **Skill `backup`** — sauvegarde fichiers/bases vers destination | [ ] | +| **Skill `firewall`** — gestion ufw/iptables | [ ] | +| **Skill `logwatch`** — analyse automatique des logs suspects | [ ] | | **Tests end-to-end des skills depuis Nexus** | [ ] | --- @@ -74,6 +89,8 @@ | Skill `galaxy` | [x] | | Skill `vault` | [x] | | `ansible.cfg` optimisé (pipelining, fact cache, 10 forks) | [x] | +| **Résultats long playbook** envoyés en streaming MQTT | [ ] | +| **Skill `template`** — générer des fichiers de config depuis Jinja2 | [ ] | | **Venv + service systemd installés et testés** | [ ] | --- @@ -87,8 +104,9 @@ | Skill `deploy` avec progress MQTT temps réel | [x] | | Skill `ssh` (commande distante + SCP) | [x] | | Skill `catalog` (list/show/add/remove) | [x] | -| **Venv + service systemd installés et testés** | [ ] | | **Déployer agent_debian sur machine distante (test réel)** | [ ] | +| **Vérification post-déploiement** (agent en ligne sur MQTT ?) | [ ] | +| **Rollback automatique** si déploiement échoue | [ ] | --- @@ -104,7 +122,23 @@ --- -## 7. Sécurité / chiffrement +## 7. LLM — améliorations + +| Item | État | +|------|------| +| Timeout LLM configurable (300s par défaut) | [x] | +| Switch global local/cloud via `/llm` | [x] | +| Profils `llm_profiles` par agent | [x] | +| **Commandes `/claude` et `/mammouth`** (one-shot API externes) | [ ] | +| **Support multi-backends** dans `llm_client.py` (Anthropic, OpenAI) | [ ] | +| **Désactiver le thinking mode** de qwen3 (`/no_think`) | [ ] | +| **Timeout par étape** dans `_llm_loop` (pas seulement global) | [ ] | +| **Limiter `max_steps`** configurable selon l'agent | [ ] | +| **Streaming des réponses LLM** vers XMPP (réponse progressive) | [ ] | + +--- + +## 8. Sécurité / chiffrement | Item | État | |------|------| @@ -114,10 +148,39 @@ | **OpenPGP alternative** (si OMEMO trop complexe) | [ ] | | Authentification MQTT (username/password) | [~] | | TLS MQTT | [~] | +| **Rotation des mots de passe** XMPP via commande | [ ] | +| **Rate limiting** — limiter le nombre de requêtes par minute | [ ] | --- -## 8. Script d'installation (`install.sh`) +## 9. Observabilité / monitoring + +| Item | État | +|------|------| +| Logs systemd par agent | [x] | +| Statut online/offline temps réel (MQTT retained) | [x] | +| **Dashboard web simple** — statut de tous les agents en temps réel | [ ] | +| **Métriques** — nb tâches/jour, temps moyen, taux d'erreur | [ ] | +| **Alertes** — notifier si un agent est offline depuis X minutes | [ ] | +| **Agrégation des logs** vers un topic MQTT centralisé | [ ] | + +--- + +## 10. Nouveaux agents (idées) + +| Agent | Rôle | État | +|-------|------|------| +| `agent_claude` | LLM Anthropic — tâches complexes, raisonnement | [ ] | +| `agent_mammouth` | LLM Mammouth AI — alternative FR | [ ] | +| `agent_docker` | Gestion Docker avancée (compose, registry, build) | [ ] | +| `agent_git` | Gestion dépôts Git, PR, issues Gitea/GitHub | [ ] | +| `agent_monitor` | Supervision réseau (ping, ports, services) | [ ] | +| `agent_mail` | Envoi/lecture emails, notifications | [ ] | +| `agent_homeassistant` | Domotique via HA API | [ ] | + +--- + +## 11. Script d'installation (`install.sh`) | Item | État | |------|------| @@ -129,15 +192,18 @@ | Mode `--update` et `--uninstall` | [x] | | **Test complet end-to-end de install.sh** | [ ] | | **Documenter les prérequis (compte XMPP, Ollama…)** | [ ] | +| **Ajout `llm_profiles` automatique dans install.sh** | [ ] | --- -## 9. Ordre de priorité suggéré +## 12. Ordre de priorité suggéré -1. **Implémenter `/update` dans BaseAgent** (git pull + restart) — fonctionnalité clé -2. **Installer et tester agent_debian** sur cette machine -3. **Persistance des admins** (réécriture config.json à chaud) -4. **Vérification `work_hours` dans delegate.py** +1. **Implémenter `/update` dans BaseAgent** — git pull + restart (fonctionnalité clé) +2. **Persistance `/admins add`** — réécriture config.json +3. **Vérification `work_hours` dans delegate.py** +4. **Seuils monitoring configurables** dans agent_debian 5. **Test install.sh complet** sur machine vierge -6. **OMEMO** (si slixmpp-omemo disponible) -7. **Blackout global** dans Nexus +6. **Commandes `/claude` et `/mammouth`** (quand clés API dispo) +7. **Support multi-backends LLM** dans llm_client.py +8. **Dashboard web** statut agents +9. **OMEMO** chiffrement XMPP