Initial commit — nexus v2.0
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user