feat(vida): jeito de gente e console com o porquê de cada decisão

Console (console.py + tela Console no painel):
- cada parte registra o que fez e o motivo: modo vida (com necessidades
  e humor), sentidos, celular (ordens e o que o rosto fez), IA local,
  aprendizado e ideias do dia; últimas 400 linhas, ao vivo pelo SSE;
- tela com o "agora" (humor, necessidades, o que está fazendo, próxima
  decisão, última decisão, jeito), filtros, detalhes, pausa e busca.

Jeito de gente:
- saudade: a festa cresce com o tempo fora (aceno, "Oi! Você voltou!",
  "Senti sua falta!"); bom dia lembrando de ontem;
- pedidos com motivo ("Brinca comigo?", "Me faz um carinho?", mostrar a
  figurinha nova), no máximo 1 a cada 20 min;
- larga atividade no meio quando fica chato; personalidade (curiosidade,
  brincadeira, timidez) que pesa nos gestos e amadurece com o convívio;
- no rosto: acordar grogue, sonhar com algo do dia (balão no motor),
  hesitar antes de gestos, errar na atividade e ficar sem graça, olhar
  nos olhos e desviar, sorrir de volta (FaceLandmarker no rastreador do
  painel) e reagir à luz (sensor de luz no app 0.10.0);
- ordem "dizer" com legenda e voz de robô.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
julio
2026-10-11 03:37:07 -03:00
co-authored by Claude Opus 5.5
parent a99aa897c4
commit 2933407b9e
27 changed files with 1248 additions and 33 deletions
+4
View File
@@ -90,6 +90,7 @@ class Inspiracao:
self.madrugada = lambda agora: False
self.pode_gemini = lambda: False
self.baixar = _baixar # trocado nos testes
self.console = lambda origem, texto, motivo='', nivel='info', agora=None: None
self.ocupado = False
self.config = json.loads(json.dumps(PADRAO))
self.hoje = self._dia_vazio('')
@@ -326,11 +327,13 @@ class Inspiracao:
item = self.criacao.item(ident)
if item:
self.anotar('ideia', 'Teve uma ideia nova: %s %s (%s)' % (item['emoji'], item['nome'], item['motivo']), agora)
self.console('ideias', 'Criou a atividade %s %s' % (item['emoji'], item['nome']), item['motivo'], agora=agora)
try:
self.criacao.avisar() # a grade do estúdio mostra as novidades
except Exception:
pass
except Exception as e:
self.console('ideias', 'Não conseguiu criar as ideias do dia', str(e)[:200], agora=agora)
with self.lock:
self.hoje['erro'] = str(e)[:200]
if not manual:
@@ -404,6 +407,7 @@ class Inspiracao:
chave = str(item['id'])
self.hoje['contadas'][chave] = self.hoje['contadas'].get(chave, 0) + 1
self.anotar('aprendi', 'Contou o que aprendeu: ' + item['aprendi'], agora)
self.console('ideias', 'Contou o que aprendeu', item['aprendi'], agora=agora)
self.salvar()
return dict(ok=True)