# Portabilität: UNIVERSAL
# Version: 1.0.0
# Zuletzt validiert: 2026-03-04

DAILY AGENT - Autonomer Tagesagent mit persistenter Session
============================================================

BESCHREIBUNG
------------
Der Daily Agent ist ein BACH Handler, der einen persisenten Claude Code Agent
mit --continue startet und die tägliche Task-Queue abarbeitet. Der Agent kann
Morgen-Briefings mit modularen Komponenten generieren und Session-Summaries
speichern. Die Agent-Instanz wird überwacht (PID-Tracking) und kann gezielt
beendet werden. Briefing-Module können ein-/ausgeschaltet werden.


OPERATIONEN
-----------
  bach daily-agent start                Agent starten (Claude Code --continue)
  bach daily-agent stop                 Agent stoppen + Session-Summary
  bach daily-agent status               PID und Laufzeit-Info anzeigen
  bach daily-agent briefing             Morgen-Briefing (aktive Module)
  bach daily-agent summary              Abend-Zusammenfassung generieren
  bach daily-agent config               Briefing-Module listen
  bach daily-agent modules              Alias für config
  bach daily-agent toggle <modul>       Modul ein-/ausschalten

Briefing-Module (toggle):
  task_briefing                         Offene Tasks (Standard: AN)
  message_briefing                      Ungelesene Nachrichten (AN)
  news_briefing                         News-Überblick (AN)
  session_briefing                      Letzte Session (AN)
  weather_briefing                      Wetter (Standard: AUS)
  calendar_briefing                     Kalender-Termine (AUS)


BEISPIELE
---------
  bach daily-agent start                Startet Agent mit Modell 'sonnet'
  bach daily-agent start --model=opus   Startet mit Modell 'opus'
  bach daily-agent status               Zeigt PID und Start-Zeit
  bach daily-agent briefing             Generiert Briefing mit aktiven Modulen
  bach daily-agent toggle news_briefing Deaktiviert News-Modul
  bach daily-agent summary              Zeigt heute erledigte Tasks
  bach daily-agent stop                 Stoppt Agent + speichert Summary


DATEIEN
-------
  Handler:     hub/daily_agent.py
  PID-Datei:   data/daily_agent.pid (JSON mit PID, Start-Zeit, Modell)
  DB:          data/bach.db (briefing_config, tasks, memory_working, ...)
  Briefs:      Generierte Briefings in stdout/Logs


MODUL-DETAILS
-------------
task_briefing:      Top 10 pending Tasks (Titel gekuerzt), ggf. recurring Jobs
message_briefing:   Zaehler ungelesener Nachrichten (status='unread')
news_briefing:      Ungelesene News aus news_items (Top-Kategorien + 3 Titel)
session_briefing:   Letzter memory_sessions.summary (gekuerzt auf 120 Zeichen)
weather_briefing:   Versucht weather_service (Koordinaten hardcodiert auf 0,0)
calendar_briefing:  Heutige Termine aus calendar_events (5 nächste Events)


FEHLERBEHANDLUNG
----------------
- Agent wird im Hintergrund gestartet (stdout/stderr unterdrückt)
- PID-File muss manuell gelöscht werden, falls Prozess crashed
- Briefing-Module ignorieren stille DB-Fehler (z.B. wenn news_items nicht existiert)
- stop speichert Summary AUCH wenn Agent bereits tot ist


SIEHE AUCH
----------
  bach --help
  bach scheduler              (periodische Tasks)
  hub/base.py                 (BaseHandler)
  docs/help/memory.txt
