Opentrons Labworks Inc
Opentrons Flex와 OT‑2용 프로토콜 작성 및 실행 소프트웨어
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Kolo Família — estratégia personalizada para o dia a dia da família atípica. PWA + Ayla (WhatsApp).
저장소 README에서 가져옴
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.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 |