Initial commit — nexus v2.0

This commit is contained in:
2026-03-09 09:01:33 +00:00
commit 6cd701d673
12 changed files with 798 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
"""
Gestion des rapports quotidiens agrégés de tous les agents.
"""
import logging
from datetime import datetime, timezone
from typing import Optional
logger = logging.getLogger(__name__)
class DailyReportManager:
def __init__(self):
# {agent_id: {"received_at": ..., "content": ...}}
self._reports: dict[str, dict] = {}
def add_report(self, agent_id: str, content: str):
self._reports[agent_id] = {
"received_at": datetime.now(timezone.utc).isoformat(),
"content": content,
}
logger.info(f"[DailyReport] Rapport reçu de {agent_id}")
def get_report(self, agent_id: Optional[str] = None) -> str:
if agent_id:
r = self._reports.get(agent_id)
if not r:
return f"Aucun rapport reçu de {agent_id} aujourd'hui."
return f"── Rapport {agent_id} ({r['received_at'][:16]}) ──\n{r['content']}"
if not self._reports:
return "Aucun rapport reçu aujourd'hui."
lines = [f"── Rapport quotidien ({datetime.now().strftime('%d/%m/%Y')}) ──"]
for aid, r in self._reports.items():
lines.append(f"\n[{aid}] reçu à {r['received_at'][11:16]}")
lines.append(r["content"])
return "\n".join(lines)
def clear(self):
self._reports.clear()