feat: rol auditor (solo lectura total) en el MCP + agente soporte
- roleCheck.js: isAuditor()/canEditContent(); canEditCode() tambien excluye auditor. Superficie editor/developer intacta (verificado contra el codigo pre-cambio en el test). - records/tables/media/languages: tools de escritura gateadas con canEditContent(), orden de registro original preservado. - agents/soporte: agente de evaluacion de incidencias en produccion, allowed_tools allowlist namespaceada (23 acai_code + 18 playwright, cero fetch), system.md con formato de informe obligatorio y trato del texto del cliente como dato no confiable. - test/auditor-role.test.js: 22 tests de superficie exacta por rol.
This commit is contained in:
@@ -9,18 +9,35 @@ import { registerReorderModuleTool } from './reorderModule.js';
|
||||
import { registerToggleModuleVisibilityTool } from './toggleModuleVisibility.js';
|
||||
import { registerSetModuleConfigVarsTool } from './setModuleConfigVars.js';
|
||||
import { registerGetModuleConfigVarsTool } from './getModuleConfigVars.js';
|
||||
import { canEditContent } from '../helpers/roleCheck.js';
|
||||
|
||||
/**
|
||||
* Tools de registros del CMS.
|
||||
*
|
||||
* Las de lectura se registran siempre (tambien para el rol "auditor", que es
|
||||
* solo lectura total). Las de escritura van tras canEditContent(): developer
|
||||
* y editor si, auditor no.
|
||||
*
|
||||
* El orden de registro es el mismo que antes del gate para no alterar el
|
||||
* listado de tools que ven los roles existentes.
|
||||
*/
|
||||
export function registerRecordTools(server) {
|
||||
const canWriteContent = canEditContent();
|
||||
|
||||
registerListTableRecordsTool(server);
|
||||
registerGetRecordTool(server);
|
||||
registerCreateOrUpdateRecordTool(server);
|
||||
registerDeleteTableRecordsTool(server);
|
||||
registerAddModuleToRecordTool(server);
|
||||
registerRemoveModuleFromRecordTool(server);
|
||||
if (canWriteContent) {
|
||||
registerCreateOrUpdateRecordTool(server);
|
||||
registerDeleteTableRecordsTool(server);
|
||||
registerAddModuleToRecordTool(server);
|
||||
registerRemoveModuleFromRecordTool(server);
|
||||
}
|
||||
registerListPageModulesTool(server);
|
||||
registerReorderModuleTool(server);
|
||||
registerToggleModuleVisibilityTool(server);
|
||||
registerSetModuleConfigVarsTool(server);
|
||||
if (canWriteContent) {
|
||||
registerReorderModuleTool(server);
|
||||
registerToggleModuleVisibilityTool(server);
|
||||
registerSetModuleConfigVarsTool(server);
|
||||
}
|
||||
registerGetModuleConfigVarsTool(server);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user