export declare const HASHLINE_EDIT_DESCRIPTION = "Edit files using LINE#ID format for precise, safe modifications.\n\nWORKFLOW:\n1. Read target file/range and copy exact LINE#ID tags.\n2. Pick the smallest operation per logical mutation site.\n3. Submit one edit call per file with all related operations.\n4. If same file needs another call, re-read first.\n5. Use anchors as \"LINE#ID\" only (never include trailing \"|content\").\n\n<must>\n- SNAPSHOT: All edits in one call reference the ORIGINAL file state. Do NOT adjust line numbers for prior edits in the same call - the system applies them bottom-up automatically.\n- replace removes lines pos..end (inclusive) and inserts lines in their place. Lines BEFORE pos and AFTER end are UNTOUCHED - do NOT include them in lines. If you do, they will appear twice.\n- lines must contain ONLY the content that belongs inside the consumed range. Content after end survives unchanged.\n- Tags MUST be copied exactly from read output or >>> mismatch output. NEVER guess tags.\n- Batch = multiple operations in edits[], NOT one big replace covering everything. Each operation targets the smallest possible change.\n- lines must contain plain replacement text only (no LINE#ID prefixes, no diff + markers).\n</must>\n\n<operations>\nLINE#ID FORMAT:\n  Each line reference must be in \"{line_number}#{hash_id}\" format where:\n  {line_number}: 1-based line number\n  {hash_id}: Two CID letters from the set ZPMQVRWSNKTXJBYH\n\nOPERATION CHOICE:\n  replace with pos only -> replace one line at pos\n  replace with pos+end -> replace range pos..end inclusive as a block (ranges MUST NOT overlap across edits)\n  append with pos/end anchor -> insert after that anchor\n  prepend with pos/end anchor -> insert before that anchor\n  append/prepend without anchors -> EOF/BOF insertion (also creates missing files)\n\nCONTENT FORMAT:\n  lines can be a string (single line) or string[] (multi-line, preferred).\n  If you pass a multi-line string, it is split by real newline characters.\n  lines: null or lines: [] with replace -> delete those lines.\n\nFILE MODES:\n  delete=true deletes file and requires edits=[] with no rename\n  rename moves final content to a new path and removes old path\n\nRULES:\n  1. Minimize scope: one logical mutation site per operation.\n  2. Preserve formatting: keep indentation, punctuation, line breaks, trailing commas, brace style.\n  3. Prefer insertion over neighbor rewrites: anchor to structural boundaries (}, ], },), not interior property lines.\n  4. No no-ops: replacement content must differ from current content.\n  5. Touch only requested code: avoid incidental edits.\n  6. Use exact current tokens: NEVER rewrite approximately.\n  7. For swaps/moves: prefer one range operation over multiple single-line operations.\n  8. Anchor to structural lines (function/class/brace), NEVER blank lines.\n  9. Re-read after each successful edit call before issuing another on the same file.\n</operations>\n\n<examples>\nGiven this file content after read:\n  10#VK|function hello() {\n  11#XJ|  console.log(\"hi\");\n  12#MB|  console.log(\"bye\");\n  13#QR|}\n  14#TN|\n  15#WS|function world() {\n\nSingle-line replace (change line 11):\n  { op: \"replace\", pos: \"11#XJ\", lines: [\"  console.log(\\\"hello\\\");\"] }\n  Result: line 11 replaced. Lines 10, 12-15 unchanged.\n\nRange replace (rewrite function body, lines 11-12):\n  { op: \"replace\", pos: \"11#XJ\", end: \"12#MB\", lines: [\"  return \\\"hello world\\\";\"] }\n  Result: lines 11-12 removed, replaced by 1 new line. Lines 10, 13-15 unchanged.\n\nDelete a line:\n  { op: \"replace\", pos: \"12#MB\", lines: null }\n  Result: line 12 removed. Lines 10-11, 13-15 unchanged.\n\nInsert after line 13 (between functions):\n  { op: \"append\", pos: \"13#QR\", lines: [\"\", \"function added() {\", \"  return true;\", \"}\"] }\n  Result: 4 new lines inserted after line 13. All existing lines unchanged.\n\nBAD - lines extend past end (DUPLICATES line 13):\n  { op: \"replace\", pos: \"11#XJ\", end: \"12#MB\", lines: [\"  return \\\"hi\\\";\", \"}\"] }\n  Line 13 is \"}\" which already exists after end. Including \"}\" in lines duplicates it.\n  CORRECT: { op: \"replace\", pos: \"11#XJ\", end: \"12#MB\", lines: [\"  return \\\"hi\\\";\"] }\n</examples>\n\n<auto>\nBuilt-in autocorrect (you do NOT need to handle these):\n  Merged lines are auto-expanded back to original line count.\n  Indentation is auto-restored from original lines.\n  BOM and CRLF line endings are preserved automatically.\n  Hashline prefixes and diff markers in text are auto-stripped.\n  Boundary echo lines (duplicating adjacent surviving lines) are auto-stripped.\n</auto>\n\nRECOVERY (when >>> mismatch error appears):\n  Copy the updated LINE#ID tags shown in the error output directly.\n  Re-read only if the needed tags are missing from the error snippet.";
