Opentrons Labworks Inc
Software for writing protocols and running them on the Opentrons Flex and Opentrons OT-2
Estratégia personalizada pro dia a dia da família atípica. Acolhimento e orientação no WhatsApp + app PWA.
Translation pending
HealthTypeScript · HTMLGitHub @sergiokoloszukOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Kolo Família — estratégia personalizada para o dia a dia da família atípica. PWA + Ayla (WhatsApp).
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Estratégia personalizada pro dia a dia da família atípica. Acolhimento e orientação no WhatsApp + app PWA com conteúdo personalizado + relatórios para terapeutas e escola.Read the full README ↗
Estratégia personalizada pro dia a dia da família atípica. Acolhimento e orientação no WhatsApp + app PWA com conteúdo personalizado + relatórios para terapeutas e escola.
eventos_app + /admin/observabilidade.
├── apps/web/ # Next.js 16 — todo o produto
├── packages/shared/ # Tipos/schemas comuns (ainda enxuto)
├── supabase/migrations/ # 0001 → 0009 (idempotentes)
└── docs/ # PRD + Roadmap + Explicações + Prompt Chrome
# 1. Dependências (raiz)
npm install
# 2. Variáveis de ambiente
cp .env.example apps/web/.env.local
# Preencher conforme tabela abaixo. Sem ANTHROPIC/STRIPE/ZAPI dá pra
# subir o app, mas as features dependentes ficam off.
# 3. Dev server
npm run dev
App em http://localhost:3000. Login: /login (precisa migrações
aplicadas no Supabase + primeiro admin via /admin/setup).
Windows + caminho com
í: os scripts já usamnext dev --webpackenext build --webpackporque o Turbopack crasha em paths com caracteres não-ASCII. Não trocar.
Em apps/web/.env.local:
| Variável | Onde usa | Obrigatória? |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Cliente + servidor Supabase | sim |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Cliente Supabase | sim |
SUPABASE_SERVICE_ROLE_KEY | Webhooks, cron, gate Beta | sim |
NEXT_PUBLIC_APP_URL | Sitemap, Open Graph, redirects | sim |
ANTHROPIC_API_KEY | Skills + Ayla parser + curadoria | sim em prod |
OPENAI_API_KEY | Geração de imagem (DALL-E 3) | só pra galeria |
STRIPE_SECRET_KEY | Stripe SDK | só pra Stripe |
STRIPE_WEBHOOK_SECRET | Verifica assinatura do webhook | só pra Stripe |
STRIPE_PRICE_ID_MENSAL | Preço mensal | só pra Stripe |
STRIPE_PRICE_ID_ANUAL | Preço anual | só pra Stripe |
ZAPI_INSTANCE_ID | URL Z-API | só pra Ayla |
ZAPI_TOKEN | Token Z-API | só pra Ayla |
ZAPI_CLIENT_TOKEN | Token de cliente Z-API | só pra Ayla |
AYLA_WEBHOOK_SECRET | Header x-ayla-secret no webhook | só pra Ayla |
AYLA_APROFUNDAMENTO_WHATSAPP | on ativa aprofundamentos contextuais para todas as conversas elegíveis; off é rollback global | não |
KOLO_GERACAO_SECRET | Header x-ayla-secret da chamada interna que gera os cartões da rotina | obrigatório — sem ele nenhum cartão sai |
CRON_SECRET | Authorization: Bearer em /api/ayla/cron | só pra cron |
ROSANGELA_FISCAL_WHATSAPP_E164 | Destino dos links de emissão de nota, em E.164 | obrigatório para operação fiscal |
Aplicadas em ordem 0001 → 0009 via Supabase Studio. Todas idempotentes.
Resumo:
| # | Arquivo | O que faz |
|---|---|---|
| 0001 | 0001_init.sql | 44 tabelas + índices + triggers |
| 0002 | 0002_rls.sql | Row Level Security + is_admin() + current_family_account_id() |
| 0003 | 0003_seed.sql | 7 output_types + 7 skills + 3 boas práticas + configs |
| 0004 | 0004_auth_trigger_and_onboarding.sql | trigger on_auth_user_created |
| 0005 | 0005_storage_imagens.sql | bucket imagens |
| 0006 | 0006_eventos_app.sql | observabilidade + RLS |
| 0007 | 0007_rules_engine.sql | regras + alertas + adaptações |
| 0008 | 0008_beta.sql | convites Beta + NPS + RPC increment_invite_uses |
| 0009 | 0009_termos_aceite.sql | colunas de aceite LGPD em family_accounts |
Total esperado: 50 tabelas em public.
Aplicar: ver docs/migracoes-chrome-prompt.md
ou colar manualmente no Studio em ordem. Após aplicar, criar conta em
/signup e visitar /admin/setup (primeiro usuário vira superadmin).
STRIPE_PRICE_ID_MENSAL e STRIPE_PRICE_ID_ANUAL.https://<seu-dominio>/api/stripe/webhook. Eventos:
checkout.session.completedcheckout.session.async_payment_succeededcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_succeededinvoice.payment_failedSTRIPE_WEBHOOK_SECRET.Em dev: stripe listen --forward-to localhost:3000/api/stripe/webhook.
Instance ID + Token + Client-Token.https://<seu-dominio>/api/ayla/webhook.x-ayla-secret: <AYLA_WEBHOOK_SECRET>.Scheduler (n8n / Vercel Cron / GitHub Actions) chama POST em
/api/ayla/cron?tipo=... com Authorization: Bearer $CRON_SECRET:
| Tipo | Cadência | O que faz |
|---|---|---|
rotina | a cada 30min | pergunta diária da Ayla na janela horária da família |
inatividade | 1×/dia | engajamento 2/5 dias |
comercial | 1×/dia | trial D-3 e D-0 |
emocional | 1×/dia | streak 7 dias |
insights | 1×/semana | detecção de padrões + envia próximo pendente |
campanhas | 1×/hora | drena destinatários pendentes |
regras | 1×/dia | Rules Engine |
cleanup | 1×/dia | purga eventos antigos, links vivos expirados, etc. |
Roadmap fechado da fase 1 à fase 14. Fase 15 (migração WhatsApp Cloud API) não vai acontecer — mantemos Z-API.
Lacunas conhecidas (não bloqueiam o produto):
lib/ayla/). Fronteira rígida com lib/ia/.dev/build
usam --webpack.zod pinned para ^3.25.76 via override na raiz por causa de
conflito transitivo com eslint-config-next@16.BETA_GATE_ENABLED | true exige convite no signup | opcional |
NEXT_PUBLIC_BETA_GATE_ENABLED | Mesmo valor, exposto ao client | opcional |