Files
agenticSystem/mcp-server/tools/records/index.js
Jordan Diaz 5198afedaa 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.
2026-08-21 18:05:47 +00:00

44 lines
1.8 KiB
JavaScript

import { registerListTableRecordsTool } from './list.js';
import { registerGetRecordTool } from './getRecord.js';
import { registerCreateOrUpdateRecordTool } from './createUpdate.js';
import { registerDeleteTableRecordsTool } from './delete.js';
import { registerAddModuleToRecordTool } from './addModuleToRecord.js';
import { registerRemoveModuleFromRecordTool } from './removeModuleFromRecord.js';
import { registerListPageModulesTool } from './listPageModules.js';
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);
if (canWriteContent) {
registerCreateOrUpdateRecordTool(server);
registerDeleteTableRecordsTool(server);
registerAddModuleToRecordTool(server);
registerRemoveModuleFromRecordTool(server);
}
registerListPageModulesTool(server);
if (canWriteContent) {
registerReorderModuleTool(server);
registerToggleModuleVisibilityTool(server);
registerSetModuleConfigVarsTool(server);
}
registerGetModuleConfigVarsTool(server);
}