import { ToolArgs } from "./types" export function getSearchAndReplaceDescription(args: ToolArgs): string { return `## search_and_replace Description: Request to perform search and replace operations on a file. Each operation can specify a search pattern (string or regex) and replacement text, with optional line range restrictions and regex flags. Shows a diff preview before applying changes. Useful for revising terminology, correcting errors, or updating references throughout a document. Parameters: - path: (required) The path of the file to modify (relative to the current working directory ${args.cwd.toPosix()}) - operations: (required) A JSON array of search/replace operations. Each operation is an object with: * search: (required) The text or pattern to search for * replace: (required) The text to replace matches with. If multiple lines need to be replaced, use "\n" for newlines * start_line: (optional) Starting line number for restricted replacement * end_line: (optional) Ending line number for restricted replacement * use_regex: (optional) Whether to treat search as a regex pattern * ignore_case: (optional) Whether to ignore case when matching * regex_flags: (optional) Additional regex flags when use_regex is true Usage: File path here [ { "search": "text to find", "replace": "replacement text", "start_line": 1, "end_line": 10 } ] Example: Replace "climate change" with "climate crisis" in lines 1-10 of an essay essays/environmental-impact.md [ { "search": "climate change", "replace": "climate crisis", "start_line": 1, "end_line": 10 } ] Example: Update citation format throughout a document using regex research-paper.md [ { "search": "\\(([A-Za-z]+), (\\d{4})\\)", "replace": "($1 et al., $2)", "use_regex": true, "ignore_case": false } ] ` }