| name | maternal-chat-helper |
| description | Auxilia desenvolvimento do chat NathIA no projeto Nossa Maternidade. Conhece a arquitetura de agentes IA (MaternalChatAgent, EmotionAnalysisAgent), MCP servers (Supabase, GoogleAI, OpenAI, Anthropic), e prompts. Use ao trabalhar com chat, agentes IA, ou integracao Gemini. |
| allowed-tools | Read, Grep, Glob |
Maternal Chat Helper
Proposito
Auxiliar no desenvolvimento e manutencao do sistema de chat com IA (NathIA) do projeto Nossa Maternidade.
Arquitetura de Alto Nivel
Usuario
↓
ChatScreen.tsx
↓
AgentOrchestrator (src/agents/core/)
↓
┌──────────────────────────────────────┐
│ AGENTES IA (9) │
├──────────────────────────────────────┤
│ • MaternalChatAgent (chat) │
│ • EmotionAnalysisAgent (emocoes) │
│ • NathiaPersonalityAgent (voz) │
│ • ContentRecommendationAgent │
│ • HabitsAnalysisAgent (habitos) │
│ • SleepAnalysisAgent (sono) │
│ • DesignQualityAgent (design) │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ MCP SERVERS (6) │
├──────────────────────────────────────┤
│ • SupabaseMCP (DB + Auth) │
│ • GoogleAIMCP (Gemini) │
│ • OpenAIMCP (GPT) │
│ • AnthropicMCP (Claude) │
│ • AnalyticsMCP (metricas) │
│ • PlaywrightMCP (testes) │
└──────────────────────────────────────┘
Agentes IA Disponiveis
1. MaternalChatAgent
Localizacao: src/agents/maternal/MaternalChatAgent.ts
Funcao: Chat principal com a mae
Tipos exportados: ChatMessage, ChatSession
2. EmotionAnalysisAgent
Localizacao: src/agents/emotion/EmotionAnalysisAgent.ts
Funcao: Analisa emocoes da mae nas mensagens
Tipos: EmotionSnapshot, EmotionPattern, EmotionAnalysisResult
3. NathiaPersonalityAgent
Localizacao: src/agents/nathia/NathiaPersonalityAgent.ts
Funcao: Define a voz e personalidade da NathIA
Tipos: NathiaMessage, NathiaResponse
4. ContentRecommendationAgent
Localizacao: src/agents/content/ContentRecommendationAgent.ts
Funcao: Recomenda conteudo personalizado
Tipos: ContentItem, RecommendationRequest, RecommendationResult
5. HabitsAnalysisAgent
Localizacao: src/agents/habits/HabitsAnalysisAgent.ts
Funcao: Analisa habitos e bem-estar
Tipos: HabitEntry, HabitPattern, WellbeingAnalysis
6. SleepAnalysisAgent
Localizacao: src/agents/sleep/SleepAnalysisAgent.ts
Funcao: Analisa qualidade do sono
Tipos: SleepEntry, SleepPattern, SleepAnalysisResult
7. DesignQualityAgent
Localizacao: src/agents/design/DesignQualityAgent.ts
Funcao: Valida qualidade de design
Tipos: DesignValidationInput, DesignValidationOutput, DesignViolation
MCP Servers
SupabaseMCPServer
Localizacao: src/mcp/servers/SupabaseMCPServer.ts
Funcao: Database, Auth, Storage
Singleton: supabaseMCP
GoogleAIMCPServer
Localizacao: src/mcp/servers/GoogleAIMCPServer.ts
Funcao: Integracao com Gemini
Singleton: googleAIMCP
OpenAIMCPServer
Localizacao: src/mcp/servers/OpenAIMCPServer.ts
Funcao: Integracao com GPT
Singleton: openAIMCP
AnthropicMCPServer
Localizacao: src/mcp/servers/AnthropicMCPServer.ts
Funcao: Integracao com Claude
Singleton: anthropicMCP
AnalyticsMCPServer
Localizacao: src/mcp/servers/AnalyticsMCPServer.ts
Funcao: Metricas e analytics
Singleton: analyticsMCP
Fluxo de Mensagem
// 1. Usuario envia mensagem
const userMessage = 'Estou me sentindo cansada hoje';
// 2. Orchestrator processa
const result = await orchestrator.process({
message: userMessage,
context: { userId, sessionId },
});
// 3. Agentes analisam em paralelo
// - EmotionAnalysisAgent detecta: "cansada" → fadiga
// - NathiaPersonalityAgent define tom acolhedor
// - MaternalChatAgent gera resposta
// 4. MCP Servers executam
// - GoogleAIMCP chama Gemini para gerar resposta
// - SupabaseMCP salva no banco
// - AnalyticsMCP registra interacao
Execucao Paralela
// Chamar multiplos MCP servers em paralelo
const result = await orchestrator.callMCPParallel([
{ server: 'supabase', method: 'db.query', params: {...} },
{ server: 'googleai', method: 'chat.complete', params: {...} },
{ server: 'analytics', method: 'track', params: {...} }
]);
Contexto de Desenvolvimento
Arquivos Principais
src/screens/ChatScreen.tsx- Tela do chatsrc/agents/core/AgentOrchestrator.ts- Orquestradorsrc/agents/core/BaseAgent.ts- Classe basesrc/contexts/AgentsContext.tsx- Context React
Variaveis de Ambiente
EXPO_PUBLIC_GEMINI_API_KEY=
EXPO_PUBLIC_SUPABASE_URL=
EXPO_PUBLIC_SUPABASE_ANON_KEY=
EXPO_PUBLIC_SUPABASE_FUNCTIONS_URL=
Personalidade da NathIA
A NathIA e uma assistente maternal com estas caracteristicas:
- Acolhedora: Tom caloroso e empático
- Nao-julgadora: Nunca critica a mae
- Informativa: Oferece informacoes uteis quando apropriado
- Sensivel: Detecta emocoes e adapta respostas
- Segura: Recomenda ajuda profissional quando necessario
Tipos Importantes
// src/types/chat.ts
interface ChatMessage {
id: string;
content: string;
role: 'user' | 'assistant';
timestamp: Date;
metadata?: {
emotion?: EmotionSnapshot;
context?: Record<string, unknown>;
};
}
// src/agents/maternal/MaternalChatAgent.ts
interface ChatSession {
id: string;
userId: string;
messages: ChatMessage[];
startedAt: Date;
lastMessageAt: Date;
}
Comandos Uteis
# Testar servico de chat
npx jest __tests__/services/chatService.test.ts
# Verificar tipos dos agentes
npm run type-check -- --filter agents
# Logs do chat em dev
# Os logs aparecem no console com prefixo [MaternalChat]