K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
Global agent instructions
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. But
VPS Hermes — acesso e estrutura
Always Commit Push DeployHermes Voice GeminiHermes VPSKodama Prospects TrackerMEMORYObsidian VaultRoblox Mining Sim
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
vek1 — arquiteturavek1 — autenticaçãovek1 — contextovek1 — regras de copy e marketingvek1 — modelo de dadosvek1 — decisões técnicasvek1 — domínio e modelo de negóciovek1 — featuresvek1 — gaps e riscosvek1 — gotchasvek1 — integrações externasvek1 — pricing design (Stripe sub + topup)vek1 — atividade recentevek1 — roteiro de vendas (SDR → fechamento)vek1 — estado e maturidadevek1 — Migração Evolution API → WhatsApp Cloud API (Meta oficial)
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standups
MOCWelcome
v0.3
K
Kodama Vault
brain / projects / vek1

vek1 — features

Features principais

Billing — Stripe subscription + metered + topup (LIVE)

Sistema completo de cobrança SaaS implementado em Fase 1+2.

Backend (vek1-api PRs #24, #25, #26)

  • routers/billing.py (/internal/billing/*) — plans, summary, subscriptions, setup-intent, topup, settings, invoices
  • routers/stripe_webhook.py (/webhooks/stripe) com signature HMAC validation pros 6 events: customer.subscription.* (created/updated/deleted), invoice.paid, invoice.payment_failed, payment_intent.succeeded
  • services/billing_service.py com check_quota_or_block (state machine 3-day grace) + FIFO topup + bônus 50% primeira recarga + try_charge_overage automático Day 3
  • services/chat_billing.py — helpers resolve_company_id, quota_block_response, record_token_usage (chamados pelo /chat)
  • services/billing_emails.py (Resend) — cota_warning_80, grace_started, grace_expired, charge_succeeded/failed
  • apscheduler in-process cron 5min reportando usage_record pro Stripe Meter vek1.tokens_consumed
  • Endpoint público /billing/plans-public (sem token) — usado pela /pricing pública pra evitar TCP direto Postgres

Frontend (vek1 PRs #74, #78, #79, #80)

  • /settings#billing removido (era seção) → /billing página dedicada com sidebar link
  • BillingSection componente — planos + uso gauge + cap + cartão Stripe Elements + topup + plan switch + invoices Hosted URL
  • AddCardModal (SetupIntent + PaymentElement)
  • TopupModal (PaymentIntent off-session se cartão / Elements se sem)
  • PlanCompareModal (3 tiers com proration on switch)
  • /onboarding/billing wizard 3-step pós-signup (plano → cartão → ativar)
  • apiClient.billing (10 funções tipadas) + app/actions/billing-actions.ts
  • lib/auth-client.ts → signOut exportado

Pricing live (premium positioning)

Plano Mensal Tokens Overage / 1M
Starter R$ 199 1M R$ 39
Pro R$ 599 5M R$ 28
Business R$ 1.499 30M R$ 20

Bônus 50% na primeira recarga avulsa. Stripe Prices versionados _v2 (Prices imutáveis); v1 antigos mantidos pra subs pré-existentes.

Landing page (/) — Industrial Atelier 3D

Redesign completo (PR #75 + #77 + #78):

  • Aesthetic: Industrial Atelier maximalist — Instrument Serif italic display + IBM Plex Mono labels, dark theme, 1 accent terracotta
  • 3D real CSS (sem Three.js): perspective + preserve-3d, hero phone diorama com mouse parallax, 6 floating chips, iso grid floor
  • Sections: Hero phone scene → MarqueeLogos (tipos de negócio: petshops/salões/padarias) → StatsBand (4 stencil stats honestos) → HowItWorks (3 iso cards) → Features (6 cards mouse-tilt) → PricingPreview (3D, Pro elevated) → CTABlock → Footer
  • CTAs aware logged (useSession Better Auth): logged → "Ir pro painel" / anon → "Criar conta"
  • Copy PME: zero referência tech (sem deepseek, RAG, function calling…). Linguagem direta: "sabe o nome do cachorro", "acorda com pedido pronto pra separar", "Conecta com seu sistema (Bling, Tiny, planilha)"

Pricing público (/pricing)

  • Tabela 3 tiers (Starter/Pro/Business com Pro destacado)
  • ComparisonTable — 3 colunas: vek vs chatbot tradicional vs atendente humano (8 features, sem nomear concorrentes diretos)
  • CostCalculator — interactive client component: salário CLT + headcount slider → economia mensal/anual + plano sugerido + CTA preselect
  • Bônus 50% callout
  • Footer com 6 chips discretos linkando pras /pricing/vs/[slug] pages SEO

Páginas comparativas vs concorrentes (/pricing/vs/[slug])

src/lib/competitors.ts + dynamic route com generateStaticParams + generateMetadata. 6 concorrentes pesquisados (campo, fontes públicas 2026):

slug Categoria Entry price
octadesk fluxo predefinido R$ 79
socialhub IA parcial R$ 99
blip (Take Blip) enterprise R$ 1.199
zenvia multicanal fluxo R$ 40 sessões
chatguru multi-user IA parcial sob consulta
wati internacional USD 99/5 users

Cada página: cards side-by-side preço/features + 5 vek advantages + seção "quando faz sentido escolher [X]" (sinal de honestidade) + calculadora reaproveitada + cross-links.

Stores (vector stores / multi-catálogo)

  • Pages: /stores, /stores/create
  • Mutations: thin wrappers sobre apiClient.stores.*
  • Estado: selectedStoreAtom (jotai persistido)

Agents

  • Pages: /agents, /agents/create, /agents/[id]/preview, /agents/[id]/settings
  • API: thin wrappers sobre apiClient.agents.*. Toggle-active centralizado no backend.
  • Componentes: Industrial Linear redesign — agents-client.tsx, create-agent-form.tsx, agent-type-select.tsx, knowledge-base-select.tsx, agent-chat.tsx, agent-settings-client.tsx, whatsapp-tester.tsx

Fluxo end-to-end (criar agente → conversar → fechar pedido)

  1. /agents/create → escolhe tipo, KB, persona, canais
  2. apiClient.agents.create → backend INSERT
  3. Settings: ativa WhatsApp → cria instância Evolution → QR Code → user escaneia
  4. Produção: cliente WhatsApp → webhook /api/webhooks/evolution → processWhatsAppMessage (LID-aware) → ensureLead → /chat → resposta → reply via Evolution. Se mídia + ordem awaiting_proof → attachWhatsAppProofToOrder.

Leads (PR #48)

  • Pages: /leads, /leads/[id]
  • Lib: ensureLead, enqueueExtraction (vek1-api /extract-lead DeepSeek JSON mode), buildLeadProfileSummary
  • API: apiClient.leads.*
  • Industrial Linear redesign #57

Documents (KB)

  • Pages: /documents/[storeId]
  • API: apiClient.documents.*
  • Embeddings via lib/embeddings.ts → POST ${API}/embed (bge-m3 1024 dim)

Products & Upload (CSV wizard)

  • Pages: /products, /products/[id], /upload
  • Wizard 7 steps: upload → rename → edit → duplicates → save → embedding → completed
  • API: apiClient.products.* + upsert-by-product pra documents

Orders (PRs #50, #59, #60, #61)

  • Pages: /orders (SSE realtime), /orders/[id]
  • API: apiClient.orders.*
  • Lifecycle: draft → awaiting_proof → proof_received → confirmed → shipping → fulfilled

Pagamentos suportados

  1. PIX gateway (AbacatePay) — BR Code + QR; webhook /api/webhooks/abacate-pay
  2. PIX manual — comprovante via foto/PDF WhatsApp → attachProof automático
  3. Cash on delivery — skip pagamento

Realtime

  • GET /api/orders/stream?store_id=... (SSE) + Postgres LISTEN/NOTIFY
  • Frontend EventSource atualiza tabela in-place

Function calling

  • sales_assistant tool create_order(items, payment_method, customer_info)
  • Backend valida items vs products (rejeita slugs hallucinated)
  • Lei Crítica no prompt: NUNCA "pedido criado" sem chamar create_order

Settings (PR #51) — Account/Company/Payment/Stock-sync

  • Page: /settings (billing migrado pra /billing dedicada em PR #78)
  • Sections (Section/Field/SaveRow primitives):
    • Account — nome, email, foto MinIO
    • Company — nome, slug, logo
    • Store Payment — AbacatePay key, PIX expires, COD toggle, manual PIX
    • Stock Sync — outbound URL+secret + inbound secret

Stock Sync (PR #62)

  • Bidirectional: order_created → decrement; cancellation → restore; notifica ERP customer via webhook HMAC
  • Inbound: ERP → vek1 via POST /webhooks/stock-sync/{store_id} (HMAC validation)

WhatsApp / Evolution

  • Cliente: src/lib/evolution-instance.ts (fetch direto, sem evolution-manager-library legada)
  • Handler: src/lib/whatsapp-handler.ts — processWhatsAppMessage com LID handling
  • Webhook: POST /api/webhooks/evolution — nunca retorna 500
  • Instance Settings: /instance-settings + tab em /agents/[id]/settings

Auth flows

  • /forgot-password + /reset-password (PR #72) — Resend via vek1-api webhook scope
  • /login e /register — páginas simples sem checagem de sessão (PR #84, removeu redirect/banner over-engineered)

Dashboard / Stats

  • /dashboard — real via apiClient.dashboard.*
  • /client-stats — mock (mantido)
  • /database-stats — real
  • /token-usage — apiClient.tokenUsage.*

SEO

  • Root layout metadata: title template, description PME, keywords BR (agente IA WhatsApp, PIX automático, etc), openGraph, twitter card, robots
  • JSON-LD SoftwareApplication no <body> com AggregateOffer (R$ 199-1.499)
  • /sitemap.xml dinâmico (src/app/sitemap.ts) — home + pricing + 6 vs pages + auth pages
  • /robots.txt dinâmico (src/app/robots.ts) — bloqueia rotas (internal) do crawl
  • Per-page metadata: landing, /pricing, /pricing/vs/[slug] com canonical + openGraph
notas relacionadas
carregando…