Riscrittura in Python dell'assistente Avatar con interfaccia HUD (derivata da Mark LIV, CC BY-NC 4.0, vedi NOTICE.md). Tre motori (Claude API, server locale OpenAI-compatibile, Claude Code), voce Kokoro/macOS, Whisper MLX, avatar 3D con sincronizzazione labiale, memoria per categorie, allegati con OCR, monitor con avvisi, plugin per Calendario, Mail, Promemoria, Note, Musica, app, Mac, timer, meteo, contatti, Messaggi, file, Comandi Rapidi, browser, Telegram, WhatsApp (archivio e tempo reale). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
34 lines
1.5 KiB
Python
34 lines
1.5 KiB
Python
"""Riepilogo della giornata: calendario, promemoria, email non lette e meteo in un colpo solo."""
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
|
|
def riepilogo(params: dict, ctx: dict) -> str:
|
|
from avatar.plugins import registry
|
|
citta = str(params.get("citta", "")).strip() or "Roma"
|
|
parts = []
|
|
for label, name, args in (
|
|
("Calendario", "calendario_eventi", {"da": "oggi", "a": "domani"}),
|
|
("Promemoria", "promemoria_elenca", {"quando": "oggi"}),
|
|
("Email", "mail_non_lette", {"limite": 5}),
|
|
("Meteo", "meteo", {"citta": citta, "giorni": 1}),
|
|
):
|
|
if not registry.has(name):
|
|
continue
|
|
try:
|
|
parts.append(f"## {label}\n{registry.run(name, args)}")
|
|
except Exception as err:
|
|
parts.append(f"## {label}\nnon disponibile ({err})")
|
|
return ("\n\n".join(parts) + "\n\nFai un riepilogo parlato breve e naturale: prima gli impegni, poi i promemoria, "
|
|
"poi le email importanti (solo mittente e oggetto), infine il meteo in una frase.")
|
|
|
|
|
|
TOOLS = [
|
|
{"name": "buongiorno", "description": "Riepilogo della giornata: impegni di oggi e domani, promemoria, email non lette e meteo. Usalo per 'buongiorno', 'come si presenta la giornata', 'riepilogo'.",
|
|
"parameters": {"type": "object", "properties": {"citta": {"type": "string", "description": "Città per il meteo (default Roma)."}}}, "run": riepilogo},
|
|
]
|