{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/scripts\/pipeline\/generators\/persistence.py",
"old_string": "\"\"\"\nPersistence Functions - Save content versions and sources to database.\n\"\"\"\n\nimport json\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\n\nfrom db import db\n\n\ndef save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:\n \"\"\"Save content version to database.\"\"\"\n content_json = json.dumps({\"text\": content, \"format\": output_format})",
"new_string": "\"\"\"\nPersistence Functions - Save content versions and sources to database.\n\"\"\"\n\nimport json\nimport re\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\n\nfrom db import db\n\n\ndef strip_markdown(text: str) -> str:\n \"\"\"Remove markdown formatting from text for plain text output.\"\"\"\n # Remove bold **text** and __text__\n text = re.sub(r\"\\*\\*(.+?)\\*\\*\", r\"\\1\", text)\n text = re.sub(r\"__(.+?)__\", r\"\\1\", text)\n # Remove italic *text* and _text_ (single)\n text = re.sub(r\"(?<!\\*)\\*([^*]+?)\\*(?!\\*)\", r\"\\1\", text)\n text = re.sub(r\"(?<!_)_([^_]+?)_(?!_)\", r\"\\1\", text)\n # Remove headers # ## ###\n text = re.sub(r\"^#{1,6}\\s+\", \"\", text, flags=re.MULTILINE)\n # Remove inline code `text`\n text = re.sub(r\"`([^`]+?)`\", r\"\\1\", text)\n return text\n\n\ndef save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:\n \"\"\"Save content version to database.\"\"\"\n # Strip markdown for plain text format\n if output_format == \"reiner Text\":\n content = strip_markdown(content)\n\n content_json = json.dumps({\"text\": content, \"format\": output_format})"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/scripts\/pipeline\/generators\/persistence.py",
"oldString": "\"\"\"\nPersistence Functions - Save content versions and sources to database.\n\"\"\"\n\nimport json\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\n\nfrom db import db\n\n\ndef save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:\n \"\"\"Save content version to database.\"\"\"\n content_json = json.dumps({\"text\": content, \"format\": output_format})",
"newString": "\"\"\"\nPersistence Functions - Save content versions and sources to database.\n\"\"\"\n\nimport json\nimport re\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\n\nfrom db import db\n\n\ndef strip_markdown(text: str) -> str:\n \"\"\"Remove markdown formatting from text for plain text output.\"\"\"\n # Remove bold **text** and __text__\n text = re.sub(r\"\\*\\*(.+?)\\*\\*\", r\"\\1\", text)\n text = re.sub(r\"__(.+?)__\", r\"\\1\", text)\n # Remove italic *text* and _text_ (single)\n text = re.sub(r\"(?<!\\*)\\*([^*]+?)\\*(?!\\*)\", r\"\\1\", text)\n text = re.sub(r\"(?<!_)_([^_]+?)_(?!_)\", r\"\\1\", text)\n # Remove headers # ## ###\n text = re.sub(r\"^#{1,6}\\s+\", \"\", text, flags=re.MULTILINE)\n # Remove inline code `text`\n text = re.sub(r\"`([^`]+?)`\", r\"\\1\", text)\n return text\n\n\ndef save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:\n \"\"\"Save content version to database.\"\"\"\n # Strip markdown for plain text format\n if output_format == \"reiner Text\":\n content = strip_markdown(content)\n\n content_json = json.dumps({\"text\": content, \"format\": output_format})",
"originalFile": "\"\"\"\nPersistence Functions - Save content versions and sources to database.\n\"\"\"\n\nimport json\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\n\nfrom db import db\n\n\ndef save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:\n \"\"\"Save content version to database.\"\"\"\n content_json = json.dumps({\"text\": content, \"format\": output_format})\n\n cursor = db.execute(\n \"\"\"INSERT INTO content_versions (order_id, version_number, content)\n VALUES (%s, %s, %s)\"\"\",\n (order_id, version_number, content_json),\n )\n db.commit()\n version_id = cursor.lastrowid\n cursor.close()\n return version_id\n\n\ndef save_sources(order_id: int, context: list[dict]) -> None:\n \"\"\"Save RAG sources to content_sources.\"\"\"\n for ctx in context:\n # Try to find chunk_id by content match\n cursor = db.execute(\"SELECT id FROM chunks WHERE content LIKE %s LIMIT 1\", (ctx[\"content\"][:100] + \"%\",))\n chunk = cursor.fetchone()\n cursor.close()\n\n if chunk:\n cursor = db.execute(\n \"\"\"INSERT IGNORE INTO content_sources (order_id, chunk_id, relevance_score)\n VALUES (%s, %s, %s)\"\"\",\n (order_id, chunk[\"id\"], ctx[\"score\"]),\n )\n db.commit()\n cursor.close()\n\n\ndef update_order_status(order_id: int, status: str) -> None:\n \"\"\"Update order status.\"\"\"\n cursor = db.execute(\"UPDATE content_orders SET status = %s, updated_at = NOW() WHERE id = %s\", (status, order_id))\n db.commit()\n cursor.close()\n",
"structuredPatch": [
{
"oldStart": 3,
"oldLines": 6,
"newStart": 3,
"newLines": 7,
"lines": [
" \"\"\"",
" ",
" import json",
"+import re",
" import sys",
" ",
" sys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")"
]
},
{
"oldStart": 10,
"oldLines": 8,
"newStart": 11,
"newLines": 27,
"lines": [
" from db import db",
" ",
" ",
"+def strip_markdown(text: str) -> str:",
"+ \"\"\"Remove markdown formatting from text for plain text output.\"\"\"",
"+ # Remove bold **text** and __text__",
"+ text = re.sub(r\"\\*\\*(.+?)\\*\\*\", r\"\\1\", text)",
"+ text = re.sub(r\"__(.+?)__\", r\"\\1\", text)",
"+ # Remove italic *text* and _text_ (single)",
"+ text = re.sub(r\"(?<!\\*)\\*([^*]+?)\\*(?!\\*)\", r\"\\1\", text)",
"+ text = re.sub(r\"(?<!_)_([^_]+?)_(?!_)\", r\"\\1\", text)",
"+ # Remove headers # ## ###",
"+ text = re.sub(r\"^#{1,6}\\s+\", \"\", text, flags=re.MULTILINE)",
"+ # Remove inline code `text`",
"+ text = re.sub(r\"`([^`]+?)`\", r\"\\1\", text)",
"+ return text",
"+",
"+",
" def save_version(order_id: int, content: str, version_number: int = 1, output_format: str = \"markdown\") -> int:",
" \"\"\"Save content version to database.\"\"\"",
"+ # Strip markdown for plain text format",
"+ if output_format == \"reiner Text\":",
"+ content = strip_markdown(content)",
"+",
" content_json = json.dumps({\"text\": content, \"format\": output_format})",
" ",
" cursor = db.execute("
]
}
],
"userModified": false,
"replaceAll": false
}
}