VETO

Execution control layer for Cursor / VS Code.
VETO prevents AI from modifying your code until you explicitly approve a plan.

Estructura del proyecto
VETO/
├── src/ # Extensión (VS Code/Cursor)
│ ├── extension.ts # Punto de entrada, watchers, comandos
│ ├── panel.ts # Chat en el sidebar
│ ├── api.ts # Cliente HTTP (chat + analyze)
│ ├── store.ts # Estado y preferencias
│ └── ...
├── backend/ # API (Node + Express + OpenAI)
│ ├── src/
│ │ ├── server.ts # Arranque
│ │ ├── app.ts # Express, rutas
│ │ ├── routes/ # /v1/chat, /v1/analyze
│ │ └── services/ # OpenAI, DB
│ ├── railway.toml # Config deploy Railway
│ └── README.md # Cómo correr y hacer deploy del backend
├── package.json # De la extensión (build, package, publish)
├── LICENSE # Proprietary
└── README.md # Este archivo
- Extensión: todo lo de la raíz (
src/, package.json, tsconfig.json). Se compila con npm run compile, se empaqueta con npm run package, se publica con npm run publish:marketplace.
- Backend: todo lo que está en
backend/. Se despliega en Railway. Ver backend/README.md.
Cómo funciona VETO
- Abrís el panel de VETO en el sidebar. Pegás las reglas en Cursor y avisás cuando estás listo.
- Decís qué querés que Cursor haga. VETO puede hacerte preguntas de contexto y, cuando tenga claro, te da un prompt para Cursor (copiado al portapapeles).
- Pegás ese prompt en Cursor. Cursor responde con su plan.
- Pegás la respuesta de Cursor en VETO. VETO la analiza y te dice si aprobar o refinar.
- Podés seguir preguntando en el chat (estilo ChatGPT) y VETO te responde, da más prompts o analiza de nuevo.
Extensión: desarrollo y publicación
| Acción |
Comando |
| Compilar |
npm run compile |
| Probar (ventana de desarrollo) |
F5 en VS Code/Cursor |
| Empaquetar .vsix |
npm run package |
| Publicar en Marketplace |
npm run publish:marketplace (antes: npx vsce login abrilmarangoni) |
Instalar el .vsix: Extensiones → ⋯ → Install from VSIX… → elegir veto-0.0.1.vsix.
Backend: correr y deploy
Ver backend/README.md para:
- Variables de entorno (
.env)
- Correr en local (
npm run dev)
- Deploy en Railway (
npx railway up)
URL de producción: https://veto-production.up.railway.app (configurada en la extensión).
Comandos de la extensión
| Comando |
Descripción |
| VETO: Activate |
Activar bloqueo de ejecución |
| VETO: Deactivate |
Desactivar bloqueo |
| VETO: Approve Execution |
Aprobar para que Cursor ejecute |
| VETO: Send Intent |
Enviar intención por cuadro de texto |
Licencia
Proprietary — All rights reserved © 2025 Abril Marangoni.
- Los derechos de autor son exclusivamente de Abril Marangoni.
- Podés usar el plugin, pero no copiarlo, modificarlo, redistribuirlo ni venderlo.
- No hay garantía de ningún tipo. Lo usás bajo tu propia responsabilidad.
- Nadie se hace cargo de nada que pase por usar este software.
El texto completo está en LICENSE.