mirror of
https://github.com/domfelipe/mika-agent-assist.git
synced 2026-08-07 07:36:41 +00:00
Mirror of domfelipe/mika-agent-assist
X-Lovable-Edit-ID: edt-f220de50-faff-44c3-87db-89969e0ea0b9 Co-authored-by: domfelipe <53182096+domfelipe@users.noreply.github.com> |
||
|---|---|---|
| eslint-rules | ||
| public | ||
| src | ||
| supabase | ||
| .env | ||
| .env.development | ||
| .env.production | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| bun.lockb | ||
| bunfig.toml | ||
| components.json | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| wrangler.jsonc | ||
Mika
Plataforma de agentes pessoais de IA com integração nativa ao Telegram.
Stack
- Frontend: React 19 + TanStack Start (Vite 7) + Tailwind v4
- Backend: Lovable Cloud (Supabase) — Postgres, Auth, Vault, Edge Functions, Realtime
- Pagamentos: Paddle (sandbox + live)
- Deploy SSR: Cloudflare Workers (via Wrangler)
Variáveis de ambiente
Já configuradas via .env (gerado automaticamente pelo Lovable Cloud):
VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEYVITE_SUPABASE_PROJECT_IDVITE_PADDLE_ENVIRONMENT(sandboxouproduction)VITE_PADDLE_CLIENT_TOKEN
Secrets do backend (configurados via UI do Lovable Cloud)
PADDLE_API_KEY/PADDLE_WEBHOOK_SECRETSUPABASE_SERVICE_ROLE_KEY- (opcional, Fase 5) credenciais SSH para Hermes
Fase 3 — Telegram Onboarding (✅ entregue)
O que foi entregue
- Wizard guiado de 6 passos (
TelegramOnboardingWizard) com Framer Motion - Validação de token via Edge Function
validate-telegram-bot(armazenamento em Supabase Vault) - Configuração automática de webhook (
configure-telegram-webhook) com secret de 32 bytes - Webhook público
telegram-webhookcom 3 camadas de segurança:- Validação do
uuid_tenantna URL - Verificação do header
X-Telegram-Bot-Api-Secret-Token - Rate limit de 30 req/min por agente
- Validação do
- Detecção da primeira mensagem em tempo real via Supabase Realtime, com fallback de polling (5s) após 10s de espera
- Banners contextuais no painel:
- Agente suspenso → vermelho com link para Faturamento
- Token revogado → vermelho com link para Meu Agente
- Onboarding pendente → amber com CTA "Conectar agora"
- Onboarding parcial → primary com CTA "Continuar configuração"
- Card de status no
/painel/agentecom ações (Abrir bot, Desconectar) - Auto-abertura do wizard ao retornar do checkout com
?status=success
Etapas pós-deploy (uma única vez)
- Verificar Vault — confirme que a extensão
vaultestá ativa e que os RPCsvault_create_secret,vault_decrypt_secret,vault_delete_secretestão restritos aoservice_role. - Realtime — a tabela
telegram_messages_logfoi adicionada à publicaçãosupabase_realtimevia migration. Confirme em Database → Replication que ela está listada. - Edge Functions públicas — a função
telegram-webhookdeve estar comverify_jwt = falseemsupabase/config.toml(já configurado). - URL pública do webhook — a Edge Function gera automaticamente:
https://<project-ref>.supabase.co/functions/v1/telegram-webhook/<uuid_tenant>Ouuid_tenanté gerado por agente ao provisionar. - Teste manual end-to-end:
- Crie um bot no @BotFather
- No painel, abra o wizard e cole o token
- Aguarde a tela "Mande qualquer mensagem para seu Mika agora"
- Envie "oi" no chat do bot — a tela deve mudar para o estado de sucesso em até 2s
Observações de segurança
- Tokens dos bots nunca trafegam para o frontend após validação. Ficam apenas em
vault.secrets, referenciados portelegram_bot_token_vault_id. - Apenas o
service_role(Edge Functions) consegue gravar/atualizar/deletar emagent_instancesvia RPCs Vault. - A tabela
telegram_messages_logtem RLS: usuário só vê seus próprios chats; INSERT é restrito aoservice_role.
O que não está nesta fase
- ❌ Resposta real via Hermes (Fase 5 — proxy SSH/API)
- ❌ Outros canais (Slack, WhatsApp)
- ❌ Comandos customizados / menus
- ❌ Mensagens de voz/imagem processadas por IA
- ❌ Suporte a grupos do Telegram
A Edge Function telegram-webhook hoje responde com um placeholder. O TODO Fase 5 está marcado no código.
Comandos úteis
bun dev # dev server (porta 8080)
bun run build # build de produção
bun run typecheck