Control de modo editor/admin produccion/local

This commit is contained in:
Jordan Diaz
2026-04-10 16:52:00 +00:00
parent 0a8756c308
commit 224ac2dad7
6 changed files with 55 additions and 10 deletions

View File

@@ -0,0 +1,24 @@
/**
* Helper central para determinar el rol efectivo del MCP y bloquear tools
* peligrosas cuando el user es "editor".
*
* El rol se recibe principalmente via env var ACAI_ROLE_OVERRIDE inyectada
* por el backend Python (agentic.py y cronjobs.py). Hay autoderivacion
* defensiva en caso de que alguien lance el MCP sin el override:
* - Si ACAI_MODE(_OVERRIDE) = "production" → rol editor por defecto.
* - Si no → rol developer.
*/
export function getEffectiveRole() {
if (process.env.ACAI_ROLE_OVERRIDE) return process.env.ACAI_ROLE_OVERRIDE;
if (process.env.ACAI_MODE_OVERRIDE === "production") return "editor";
if (process.env.ACAI_MODE === "production") return "editor";
return "developer";
}
/**
* True si el rol efectivo puede editar archivos de codigo.
* Los roles permitidos son todo lo que NO sea "editor".
*/
export function canEditCode() {
return getEffectiveRole() !== "editor";
}