| lib/escalade.py |
Verrou Sécurité |
decider(), eligibilite_decelo(), normaliser() |
Ne peut que dégrader vers l'humain (8h-22h) |
| lib/brain.py |
Cerveau LLM |
rediger(), _brut(), _parser(), bloc_decelo |
Sortie JSON stricte, prompt système stable |
| lib/decelo.py |
Contexte Produit |
contexte(), lire_base(), SCOPES_PROPOSITION |
Lecture seule Supabase, cache 20h |
| lib/decision.py |
Machine à États |
valider(), refuser(), corriger(), annuler() |
Unification Telegram & Établi web |
| lib/queue_store.py |
File d'Attente |
creer(), lister(), modifier(), transition() |
Persistance locale state/queue.json & Supabase Cloud |
| lib/supabase_store.py |
Cloud Storage |
creer_action(), lister_actions(), marquer_fait() |
Persistance PostgREST & Idempotence Cloud |
| lib/telegram_hitl.py |
Interface Humaine |
envoyer(), _rendu(), editer() |
Une action = une carte unique éditée |
| lib/execution.py |
Exécuteur Physique |
executer_action(), _envoyer_canal() |
Contrôle d'idempotence avant envoi |
| lib/jours_feries.py |
Calendrier Fériés |
est_jour_ferie(), prochain_matin_ouvre() |
Replanifie les emails au prochain ouvré à 08h00 |
| hygiene.py |
Boucle d'Hygiène |
signaux(), extraire(), proposer_regles() |
Validation Vamé obligatoire sur Telegram |
| scripts/motifs_refus.py |
Observabilité HITL |
lire(), OU_CORRIGER |
Mesure du taux de refus (~49%) |
| lib/watchdog.py |
Résilience |
verifier(), verifier_etat() |
Pause technique en cas de boucle anormale |