review.fixIds.apply
Apply ID-fix plans to Re:VIEW manuscript files, creating backups while correcting duplicate and empty identifiers to maintain document integrity.
Instructions
Apply a previously calculated ID-fix plan; creates .bak backups.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| fixes | Yes |
Implementation Reference
- src/index.ts:218-237 (handler)Core handler function that applies the provided fixes: groups by file, reads file content, replaces lines in reverse order to preserve positions, creates .bak backup, writes updated content, and returns count of applied fixes.async function applyFixes(cwd: string, fixes: any[]) { const byFile = new Map<string, any[]>(); for (const f of fixes) { if (!byFile.has(f.file)) byFile.set(f.file, []); byFile.get(f.file)!.push(f); } let applied = 0; for (const [file, list] of byFile) { const full = path.join(cwd, file); const txt = await fs.readFile(full, "utf-8"); const lines = txt.split(/\r?\n/); for (const f of list.sort((a,b)=>b.lineStart-a.lineStart)) { lines[f.lineStart-1] = f.after; applied++; } await fs.copyFile(full, full + ".bak"); await fs.writeFile(full, lines.join("\n"), "utf-8"); } return applied; }
- src/index.ts:294-300 (schema)Tool input schema definition specifying cwd (string) and fixes (array of objects), along with name and description for registration.name: "review.fixIds.apply", description: "Apply a previously calculated ID-fix plan; creates .bak backups.", inputSchema: { type: "object", properties: { cwd: { type: "string" }, fixes: { type: "array", items: { type: "object" } } }, required: ["cwd","fixes"] }
- src/index.ts:509-518 (handler)Dispatch handler in CallToolRequestSchema switch that extracts arguments, calls applyFixes, and formats response as MCP text content.case "review.fixIds.apply": { const applied = await applyFixes(args.cwd as string, args.fixes as any[]); return { content: [ { type: "text", text: JSON.stringify({ applied }) } ] };
- src/index.ts:425-428 (registration)Registers all tools including review.fixIds.apply by returning the tools array in ListToolsRequestSchema handler.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: tools };