Aplicação para estudo construtivo modular, pré-orçamento assistido e revisão de quantitativos a partir de planta baixa, medidas manuais ou projeto exemplo.
O produto não começa pelo método construtivo. O fluxo principal é:
- enviar planta baixa;
- revisar dados extraídos ou preencher medidas simples;
- escolher ou confirmar o método construtivo;
- gerar quantitativos;
- vincular base de preços importada;
- revisar orçamento preliminar;
- exportar JSON, XLSX, CSV e PDF.
A experiência atual ainda mantém o fluxo A-frame completo como baseline de regressão técnica. Isso significa que criação de estudo A-frame, modelo 3D, geometria, materiais, estrutura, orçamento preliminar e exportações existentes não devem quebrar durante a evolução do produto.
npm install
npm run devAbra http://localhost:3000.
Copie .env.example para .env.local no desenvolvimento local. Em produção ou preview Vercel, configure as mesmas variáveis em Project Settings > Environment Variables e faça redeploy quando alterar valores usados no servidor.
Variáveis comuns:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYNEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-inNEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-upNEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL=/startNEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL=/startGITHUB_FEEDBACK_TOKENGITHUB_FEEDBACK_REPO=lspassos1/aframe-kingspan-local
Para IA assistiva de planta baixa, o modo gratuito usa as envs já cadastradas para Gemini, OpenRouter e providers textuais. OpenAI fica em standby para modo pago explícito.
AI_PLAN_EXTRACT_ENABLED=true
AI_MODE=free-cloud
AI_PAID_FALLBACK_ENABLED=false
AI_PLAN_PRIMARY_PROVIDER=gemini
AI_PLAN_REVIEW_PROVIDER=openrouter
AI_TEXT_PROVIDER=groq
AI_TEXT_FALLBACK_PROVIDER=cerebras
GEMINI_API_KEY=...
GEMINI_MODEL=gemini-2.5-flash
GEMINI_FREE_TIER_NOTICE=true
OPENROUTER_API_KEY=...
OPENROUTER_PLAN_REVIEW_MODEL=openrouter/free
GROQ_API_KEY=...
GROQ_TEXT_MODEL=llama-3.1-8b-instant
CEREBRAS_API_KEY=...
CEREBRAS_TEXT_MODEL=...
SAMBANOVA_API_KEY=...
SAMBANOVA_TEXT_MODEL=...
AI_PLAN_EXTRACT_DAILY_LIMIT_PER_USER=3
AI_PLAN_EXTRACT_DAILY_LIMIT_PER_IP=5
AI_PLAN_EXTRACT_GLOBAL_DAILY_LIMIT=50
AI_PLAN_EXTRACT_MAX_FILE_MB=8
AI_PLAN_EXTRACT_CACHE_TTL_HOURS=24
AI_RATE_LIMIT_SALT=valor_secreto_fortePara modo Pro/OpenAI:
AI_MODE=paid
OPENAI_API_KEY=...
AI_OPENAI_MODEL=gpt-4o-mini
AI_OPENAI_MODEL_PREMIUM=gpt-5.4-miniQuando AI_OPENAI_MODEL_PREMIUM está configurado, o Modo Pro explícito usa esse modelo para extração de planta; caso contrário usa AI_OPENAI_MODEL. Chaves de IA são server-side. Nunca crie NEXT_PUBLIC_OPENAI_API_KEY nem NEXT_PUBLIC_*_API_KEY para providers privados, e nunca exponha chave no frontend, em logs ou respostas de API.
Não crie novas variações de env de modelo/provider. Veja docs/free-cloud-ai-routing.md e docs/setup-ai-and-sinapi.md para setup completo de IA, Vercel, limites diários e SINAPI.
Use /lucas-review in Slack to create a Lucas Review comment on a GitHub PR.
See docs/slack-github-review-bridge.md.
- inicia estudos por planta baixa, medidas manuais ou exemplo;
- mantém revisão humana antes de aplicar dados extraídos por IA;
- calcula geometria, áreas, materiais, painéis e estrutura do fluxo A-frame existente;
- suporta métodos modulares adicionais em modo preliminar;
- importa bases de preço controladas, incluindo SINAPI ou base normalizada equivalente;
- sugere vínculos entre quantitativos e composições existentes sem inventar preço;
- gera orçamento preliminar revisável com fonte, data-base, unidade, confiança e pendências;
- salva no LocalStorage e permite importar/exportar JSON.
A IA é opcional, sob demanda e limitada por cota diária. Ela pode ler planta baixa em PDF/imagem quando o provider configurado suportar visão/documento, extrair campos preliminares e sugerir pendências.
A IA nunca deve:
- inventar preço;
- criar composição SINAPI;
- inventar H/H, consumo, perda ou BDI;
- aprovar orçamento;
- aplicar método construtivo incerto automaticamente;
- substituir revisão humana.
O banco central de preços definido para o produto é Supabase, com leitura pública segura, RLS, candidatos revisáveis e sync administrativo fora do runtime da Vercel.
O repositório já contém:
- schema/RLS em
supabase/migrations/20260512215000_price_database_schema.sql; - resolver e adapter de candidatos remotos em
src/lib/pricing; - busca de candidatos centrais no Budget Assistant;
- workflows de dry-run/write sync em GitHub Actions;
- runbook operacional em docs/product-launch-runbook.md.
O estado operacional correto é:
- app lê apenas
NEXT_PUBLIC_SUPABASE_URLeNEXT_PUBLIC_SUPABASE_ANON_KEY; SUPABASE_SERVICE_ROLE_KEYfica somente em GitHub Actions/admin sync, nunca no app Vercel ou no client;- preços centrais entram como candidatos pendentes de revisão, nunca como preço aprovado automático;
- importação local e preenchimento manual continuam disponíveis quando a base central não estiver configurada, vazia, stale ou com sync falho.
A carga inicial aprovada e a rotina semestral de atualização da base central são rastreadas separadamente na stack de prontidão Supabase. Arquivos SINAPI não devem ser gravados no filesystem runtime da Vercel/serverless.
Preço 0, vazio ou ausente nunca entra como preço válido revisado.
- docs/product-experience.md: direção de produto e experiência.
- docs/onboarding-ux.md: fluxo guiado de entrada.
- docs/setup-ai-and-sinapi.md: variáveis locais, Vercel, OpenAI API e SINAPI.
- docs/free-cloud-ai-routing.md: modo free-cloud, providers gratuitos e OpenAI em standby.
- docs/sinapi-integration.md: regras da base SINAPI controlada.
- docs/pricing-database-architecture.md: arquitetura Supabase da base central de preços.
- docs/pricing-database-schema.md: schema/RLS e camada de leitura pública segura.
- docs/pricing-database-operations.md: setup mínimo, stale data, sync failure e diagnóstico seguro.
- docs/AI_PLAN_EXTRACT.md: contrato técnico da extração de planta por IA.
- docs/budget-assistant.md: Assistente de orçamento e revisão humana.
Este repositório está licenciado sob a GNU Affero General Public License v3.0 only, identificado como AGPL-3.0-only.
Leia também:
- LICENSING.md: escopo da licença, declaração de autoria/manutenção, revisões MIT anteriores e observação de que o conteúdo não é aconselhamento jurídico.
- THIRD_PARTY_NOTICES.md: dependências, marcas, nomes de terceiros e regra de atribuição para materiais futuros.
Código de terceiros e dependências mantêm suas próprias licenças.
Esta ferramenta gera estudo e orçamento preliminar. Não substitui projeto estrutural, projeto arquitetônico, ART/RRT, aprovação municipal, sondagem, cálculo de fundações, verificação de vento, ligações metálicas, orçamento formal ou validação técnica de fornecedor.
npm run lint
npm run test
npm run build