feat: {response,mood} output contract + router removal, TTS piper plan

Daemon side of Decision B: parse {"response","mood"} across the 4 consumers
(replier, nudges, reminders, chat), fall back to legacy formats. Drop the
LLM router — the classifier handles routing; replier/phraser share one
llm.Client (timeout 20s->60s). llm.Client reads reasoning_content when
content is empty (thinking models).

Docs: TTS piper-student plan (OmniVoice teacher -> piper student, from
scratch, phoneme-first). CLAUDE.md training guide.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
kami
2026-07-11 22:51:50 +04:00
parent 22b43c07a9
commit 6a5121657a
13 changed files with 952 additions and 51 deletions
+2
View File
@@ -37,6 +37,7 @@ type PhrasedNudge struct {
Candidate loop.Candidate
Body string
Summary string
Mood string
}
// PhrasedReminder — the phraser's output for a reminder.
@@ -44,6 +45,7 @@ type PhrasedReminder struct {
Decision loop.ReminderDecision
Body string
Summary string
Mood string
}
// Dispatch — record of one successful send. returned to the daemon for