Guardrails para o Devin Desktop, feitos com as tuas próprias regras.
As regras da tua empresa chegam ao Devin Desktop, o antigo Windsurf, antes de cada escrita num ficheiro. O código que as viola nunca chega a ser escrito.
npx -y @cybedefend/vibedefend@latest installDevin Desktop está a escrever
billing/refund.ts
export async function refund(req: Request) { const { id, amount } = await req.json(); const invoice = await db.invoices.find({ id, tenant: req.tenant, }); if (amount > 500) await approvals.second(invoice); return payments.refund(invoice, amount); }
Cada consulta fica limitada ao tenant.
rules/data-access.mdReembolsos acima de 500 € precisam de um segundo aprovador.
Aprovada uma vez por Sofia M.Verificado antes do commit: limpo
Pronto em quatro passos.
- Executa um comandoEm qualquer terminal, no macOS, Linux ou Windows. Node 18.17 ou mais recente.
- Escolhe a região e inicia sessãoUE ou EUA. O teu browser abre-se para iniciares sessão, sem chave para colar.
- Seleciona o Devin DesktopO instalador encontra os agentes no teu computador e seleciona-os por ti.
- Programa como sempreAbre o Devin Desktop: o VibeDefend corre ao lado dele.
O que o VibeDefend acrescenta ao Devin Desktop.
Regras servidas
Só escritas de ficheirosSó escritas de ficheiros: pre_write_code é o momento que os hooks do Windsurf expõem.
Devin Desktop está a escrever
src/billing/cart-checkout.ts
const total = new Decimal128(cart.sum); const rows = await db.query( "SELECT * FROM carts WHERE id = $1", [id] );
Os montantes usam Decimal128, nunca Number.
Extraída de src/billing.ts:14Qualquer consulta que misture dados do utilizador é parametrizada.
OWASP Top 10Servidas antes da edição
Proteção de segredos
As leituras diretas de segredos são recusadas; o Devin Desktop recebe a referência gerida.
Devin Desktop
webhooks.ts
cat .env | grep STRIPEBloqueado: leitura direta de um segredo
Em vez disso
process.env.STRIPE_WEBHOOK_SECRETnpm test -- webhooksOs testes passam
Registado para a equipa
Controlo de ações
Comandos destrutivos, eliminações de esquema e caminhos protegidos são travados antes de correrem.
Devin Desktop
rm -rf dist/Permitido: saída do build
rm -rf .cache/Permitido: cache
rm -rf ./storage/uploadsBloqueado: caminho protegido, ficheiros dos utilizadores
Registado para a equipa
Descobertas em direto
As descobertas de SAST, SCA, segredos, IaC e CI/CD, em direto na sessão.
Devin Desktop
SAST
src/db/users.repo.ts:42SQL injection
SCA
package.jsonlodash 4.17.20, CVE-2021-23337
Secrets
config/prod.ymlAWS access key
IaC
infra/main.tfS3 bucket public-read
CI/CD
.github/workflows/deploy.ymlpull_request_target
No contexto do agente, em direto
Limites no Devin Desktop
- Ferramentas MCP e pedidos webPelo .windsurfrules
As tuas perguntas.
O VibeDefend altera a minha configuração do Devin Desktop?
~/.codeium/windsurf/hooks.json, ~/.codeium/windsurf/mcp_config.json, .windsurfrules. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.O que é que sai da minha máquina?
De que versão do Devin Desktop preciso?
Tenho de associar cada repositório?
vibedefend link uma vez. O comando escreve .cybedefend/config.json com o ID do projeto.Como é que o desinstalo?
vibedefend uninstall: remove todos os ficheiros que o VibeDefend instalou. Se instalaste o pacote globalmente, corre depois npm uninstall -g @cybedefend/vibedefend.Até onde vão os Action Guards no Devin Desktop?
pre_write_code, pre_read_code e pre_run_command permitem ao VibeDefend bloquear mesmo as escritas e leituras de ficheiros e os comandos shell. Estes hooks não têm evento para pedidos web e não filtram as chamadas a ferramentas MCP: para esses, o VibeDefend acrescenta ao .windsurfrules um excerto que pede ao agente que chame primeiro o cybe_guards_check através do MCP. Funciona quando o modelo segue o seu ficheiro de regras.Detalhes técnicos para o Devin Desktop
- Servidor MCP
- Disponível
~/.codeium/windsurf/mcp_config.json - Regras antes de cada alteração
- Só escritas de ficheiros
pre_write_codeSó escritas de ficheiros: pre_write_code é o momento que os hooks do Windsurf expõem. - Ações perigosas bloqueadas
- Escritas, leituras, shell
pre_write_codepre_read_codepre_run_commandAs escritas e leituras de ficheiros e os comandos shell são mesmo bloqueados. Para ferramentas MCP e pedidos web, um excerto no .windsurfrules pede ao agente que chame primeiro o cybe_guards_check: funciona quando o modelo segue o seu ficheiro de regras. - Regras carregadas no arranque
- A cada prompt
pre_user_promptOs hooks do Windsurf não têm evento de início de sessão. O VibeDefend usa o pre_user_prompt, que dispara a cada turno; a verificação é leve e responde de imediato quando não há nada pendente. - Revisão no fim da sessão
- Disponível
post_cascade_responseCorre no fim de cada resposta, assim que se ultrapassa o limiar de alterações. - Revisão das sessões longas
- IndisponívelSem equivalenteOs hooks do Windsurf não têm evento antes da compactação.
- Lembrete a cada prompt
- IndisponívelSem equivalenteNão disponível no Devin Desktop.
O que escreve para o Devin Desktop
~/.codeium/windsurf/hooks.json~/.codeium/windsurf/mcp_config.json.windsurfrules
E o runner dos hooks em ~/.cybedefend/. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.
Corre o instalador na raiz do teu repositório: o excerto do .windsurfrules é escrito na pasta a partir da qual o corres.
Os hooks do Windsurf expõem menos momentos do que os outros agentes. As escritas e leituras de ficheiros e os comandos shell são mesmo bloqueados; as ferramentas MCP e os pedidos web dependem de o agente seguir o .windsurfrules.
Algo não bate certo? O vibedefend status dá um relatório só de leitura, e o vibedefend doctor repara o que conseguir.