Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 39 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ MOTEUR_API_KEY=
MCP_TOKEN_KEY=

# [Audit 2026-07-09, #T206] Racine autorisée pour les outils write_file/read_file
# (tools/system.py). Par défaut : dossier PARENT de moteur_agents/ (ex. H:\AuxFilsDesIdees
# (tools/system.py). Par défaut : dossier PARENT de moteur_agents/ (ex. .
# en dev, parent du dossier de déploiement en prod). Ne définir que si cette topologie
# ne correspond pas à votre déploiement (ex. Deck avec une racine de travail différente).
MOTEUR_WORKSPACE_ROOT=

# Origines CORS autorisées (séparées par des virgules). Si vide → CORS ouvert (*)
# SANS credentials. Renseigner pour activer les credentials de façon sûre.
# Ex. : http://192.168.1.x:8000,http://localhost:8000,http://localhost:5173
# Ex. : http://192.168.1.10:8000,http://localhost:8000,http://localhost:5173
MOTEUR_CORS_ORIGINS=

# ── Plugins & Tool-Maker (exécution de code généré — fail-closed) ──
Expand All @@ -39,6 +39,24 @@ MOTEUR_ENABLE_PLUGINS=0
# + validés en sandbox mais JAMAIS persistés. 1 pour autoriser l'auto-écriture.
MOTEUR_ENABLE_TOOL_MAKER=0

# ── Confidentialité (#T337) ──
# Mode « inférence locale uniquement » : quand la valeur est `local_only`, AUCUNE
# requête ne part vers un provider cloud — seuls les modèles servis par un provider
# LOCAL (Ollama, LM Studio, Deck Edge AI) sont retenus. Si aucun modèle local n'est
# disponible dans le tier demandé, l'appel ÉCHOUE explicitement (fail-closed) : le
# moteur ne retombe JAMAIS en silence sur le cloud. Vide (défaut) = comportement
# historique inchangé.
# MOTEUR_PRIVACY_LEVEL=local_only
MOTEUR_PRIVACY_LEVEL=

# ── Concurrence d'exécution (#T344) ──
# Plafond d'exécutions LOURDES simultanées (pipeline complet, Engine partagé).
# Défaut : 3 (IHM + vocal + un DAG de fond). Les chemins légers (discussion,
# commandes HA, small-talk) ne consomment aucun créneau de ce plafond.
# - 1 : une seule exécution lourde à la fois (comportement historique).
# - >3 : réservé aux machines plus puissantes que le Deck.
MOTEUR_EXECUTION_MAX_CONCURRENCY=3

# ── Providers LLM (chaque clé active le provider dans la cascade Elo) ──
# Google Gemini — Free Tier (AI Studio). Jusqu'à 6 clés pour la rotation KeyPool
# (contournement des quotas). Sert AUSSI aux embeddings RAG (gemini-embedding).
Expand Down Expand Up @@ -81,13 +99,13 @@ DASHSCOPE_API_KEY=
# vers une exécution locale).
MOTEUR_TOOLMAKER_PAT=
# Dépôt cible des branches éphémères toolmaker/validate-* (défaut ci-dessous).
MOTEUR_TOOLMAKER_REPO=Axellum/moteur_agents
MOTEUR_TOOLMAKER_REPO=Axellum/vromvrom-engine
# Délai max d'attente du verdict du runner (secondes, défaut 300).
MOTEUR_TOOLMAKER_TIMEOUT_S=300

# ── Home Assistant ──
# URL de l'instance HA (HASS_URL et HA_URL sont tous deux reconnus).
HASS_URL=http://192.168.1.x:8123
HASS_URL=http://192.168.1.10:8123
# Token longue durée HA (profil HA → Jetons d'accès). Requis pour la domotique.
HASS_TOKEN=
# ── TLS Home Assistant (P0-1.5) ──
Expand All @@ -109,3 +127,20 @@ LANGFUSE_HOST=
# ── Divers ──
# Taux de conversion EUR→USD pour l'affichage des coûts GCP (ex: 1.08).
EUR_USD_RATE=

# [#T316] Plafond de sortie par défaut des providers OpenAI-compatibles, utilisé
# quand un modèle est absent du catalogue (models_registry.db) ou à
# `context_output` nul. Sinon, le plafond est dérivé du `context_output` du
# catalogue. Un `max_tokens` fourni par l'appelant n'est JAMAIS écrasé.
# Défaut : 8192. Exemple : MOTEUR_MAX_OUTPUT_TOKENS=16384
MOTEUR_MAX_OUTPUT_TOKENS=8192

# ── Vocal / fast-path (rapidité = chez vous) ──
# Ordre câblé dans services/pipeline_service.py :
# 1. gpt-oss-120b (Cerebras, ~430 ms TTFT) → CEREBRAS_API_KEY
# 2. LLM local (Ollama / llama.cpp OpenAI-compat) si l'hôte décroche
# 3. gemini-3.5-flash-free → GEMINI_API_KEY
# 4. deepseek-chat → DEEPSEEK_API_KEY
# Un provider sans clé ou hors-ligne est sauté (sonde d'hôte ~ms, pas 2,6 s).
# Entité météo Zero-LLM (défaut weather.home). Surcharger si besoin :
HA_WEATHER_ENTITY=weather.home
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AGENTS.md — tab5-engine

Tu travailles **dans ce dépôt**. Le parapluie `H:\AuxFilsDesIdees\contexte_ia\` est le journal d'écosystème (Tab5, HA, sessions). Ici = source de vérité du moteur.
Tu travailles **dans ce dépôt**. Le parapluie `.\contexte_ia\` est le journal d'écosystème (Tab5, HA, sessions). Ici = source de vérité du moteur.

## Lire, dans cet ordre

Expand Down
25 changes: 14 additions & 11 deletions README.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*Construit pour Home Assistant · Fonctionne avec n'importe quel projet*

> ⚠️ **État du projet : En développement actif**
> Ce moteur est un outil personnel pointu partagé avec la communauté. Bien que l'architecture backend (DAG, async, routage Elo) soit robuste et utilisée quotidiennement, **l'interface web (IHM) est actuellement en construction**. Attendez-vous à des aspérités. C'est un projet expérimental destiné aux makers.
> Outil personnel partagé avec la communauté. Le backend (DAG, async, routage Elo) tourne tous les jours. **L'IHM React (`ihm-v2/`) est dans le dépôt** — un `npm run build` et `gui_server.py` la sert sur `/`. Attendez-vous à des aspérités.

🇬🇧 **[English version → README.md](README.md)**  ·  🗺️ **[Quels LLMs utiliser ? → STRATEGIES.fr.md](STRATEGIES.fr.md)**

Expand Down Expand Up @@ -99,8 +99,8 @@ vromvrom-engine/
├── services/ # Logique métier découplée du HTTP
├── plugins/ # Plugins custom (chargement dynamique)
├── workflows/ # Définitions de workflows JSON (graphes)
├── static/ # IHM HTML/JS/CSS (glassmorphism, legacy)
├── ihm-v2/ # Nouvelle IHM React/Vite/TS (en cours, remplacera static/)
├── static/ # IHM HTML/JS (repli si ihm-v2 n'est pas buildée)
├── ihm-v2/ # IHM React/Vite/TS (Chat, HA, catalogue LLM, Prompt Studio…)
├── tests/ # 60 fichiers de tests pytest
└── docs/ # Documentation architecture
```
Expand Down Expand Up @@ -168,8 +168,9 @@ cp config.example.json config.json
# Optionnel : ajuster les modèles par défaut

# 6. Lancer
# (optionnel) IHM React : cd ihm-v2 && npm install && npm run build
python gui_server.py
# → Dashboard disponible sur http://localhost:8000
# → Dashboard sur http://localhost:8000
```

### Configuration minimale (`.env`)
Expand All @@ -192,14 +193,16 @@ Tous les autres providers (DeepSeek, Anthropic, Mistral...) sont **optionnels**

### Via le Dashboard Web

Ouvrir `http://localhost:8000` après `python gui_server.py`.
```bash
cd ihm-v2 && npm install && npm run build # → ihm-v2/dist/
python gui_server.py # http://localhost:8000
```

Sans `ihm-v2/dist`, le moteur retombe sur l'IHM legacy `static/` (aussi sous `/v1`).

Dev avec HMR : `cd ihm-v2 && npm run dev` (Vite `:5173`, proxy `/api` vers `:8000`).

Le dashboard expose :
- **Onglet Chat** : interface conversationnelle avec streaming token-par-token
- **Onglet Workflows** : éditeur visuel des graphes d'exécution
- **Onglet Modèles** : catalogue des LLMs avec scores Elo temps-réel
- **Onglet Supervision** : monitoring des workers Swarm
- **Onglet Données** : exploration des bases SQLite
L'IHM React inclut Chat (SSE + outils), Home Assistant / vocal, catalogue LLM, Prompt Studio, observabilité et configuration.

### Via l'API REST

Expand Down
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*Built for Home Assistant · Works with any project*

> ⚠️ **Project Status: Active Development**
> This engine is a personal tool being shared with the community. While the core backend architecture (DAG, async, Elo routing) is robust and used daily, the **Web Dashboard (HMI) is currently under construction**. Expect rough edges. It is highly experimental and built for makers.
> Personal tool shared with the community. Backend (DAG, async, Elo routing) is used daily. The **React dashboard (`ihm-v2/`)** is included — build it once, then `gui_server.py` serves it at `/`. Expect rough edges.

🇫🇷 **[Version française disponible → README.fr.md](README.fr.md)**  ·  🗺️ **[Which LLMs to use? → STRATEGIES.md](STRATEGIES.md)**

Expand Down Expand Up @@ -102,8 +102,8 @@ vromvrom-engine/
├── services/ # Business logic decoupled from HTTP
├── plugins/ # Custom plugins (dynamic loading)
├── workflows/ # JSON workflow definitions (graphs)
├── static/ # HTML/JS/CSS UI (glassmorphism, legacy dashboard)
├── ihm-v2/ # New React/Vite/TS dashboard (in progress, will replace static/)
├── static/ # HTML/JS/CSS UI (glassmorphism, fallback if ihm-v2 is not built)
├── ihm-v2/ # React/Vite/TS dashboard (Chat, HA, LLM registry, Prompt Studio…)
├── tests/ # 60 pytest files
└── docs/ # Architecture documentation
```
Expand Down Expand Up @@ -171,8 +171,9 @@ cp config.example.json config.json
# Optional: adjust default models

# 6. Launch
# (optional) React UI: cd ihm-v2 && npm install && npm run build
python gui_server.py
# → Dashboard available at http://localhost:8000
# → Dashboard at http://localhost:8000
```

### Minimal configuration (`.env`)
Expand All @@ -195,14 +196,16 @@ All other providers (DeepSeek, Anthropic, Mistral...) are **optional** — the e

### Web Dashboard

Open `http://localhost:8000` after `python gui_server.py`.
```bash
cd ihm-v2 && npm install && npm run build # → ihm-v2/dist/
python gui_server.py # http://localhost:8000
```

If `ihm-v2/dist` is missing, the engine falls back to the legacy UI in `static/` (also under `/v1`).

Dev with HMR: `cd ihm-v2 && npm run dev` (Vite `:5173`, proxies `/api` to `:8000`).

The dashboard exposes:
- **Chat tab**: conversational interface with token-by-token streaming
- **Workflows tab**: visual workflow graph editor
- **Models tab**: LLM catalog with real-time Elo scores
- **Swarm tab**: distributed worker monitoring
- **Data tab**: SQLite database explorer
The React dashboard includes Chat (SSE + tools), Home Assistant / voice, LLM registry, Prompt Studio, observability, and config.

### Via the REST API

Expand Down
Loading
Loading