{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/scripts\/pipeline\/extract.py",
"offset": 150,
"limit": 60
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/scripts\/pipeline\/extract.py",
"content": " db.log(\"ERROR\", f\"Extraction failed: {file_path}\", str(e))\n return {\"file_path\": file_path, \"file_type\": ext, \"error\": str(e), \"success\": False}\n\n\ndef get_full_text(extraction_result):\n \"\"\"Get plain text from extraction result.\"\"\"\n if not extraction_result[\"success\"]:\n return \"\"\n\n content = extraction_result[\"content\"]\n file_type = extraction_result[\"file_type\"]\n\n if file_type == \".pdf\":\n return \"\\n\\n\".join(p[\"text\"] for p in content if p[\"text\"])\n\n elif file_type == \".pptx\":\n parts = []\n for slide in content:\n if slide[\"text\"]:\n parts.append(slide[\"text\"])\n if slide[\"notes\"]:\n parts.append(f\"[Notes: {slide['notes']}]\")\n return \"\\n\\n\".join(parts)\n\n elif file_type == \".docx\":\n return \"\\n\".join(p[\"text\"] for p in content)\n\n elif file_type == \".md\":\n parts = []\n for section in content[\"sections\"]:\n if section[\"heading\"]:\n parts.append(f\"{'#' * section['level']} {section['heading']}\")\n parts.extend(section[\"content\"])\n return \"\\n\".join(parts)\n\n elif file_type == \".txt\":\n return content[\"text\"]\n\n return \"\"\n\n\nif __name__ == \"__main__\":\n import sys\n\n if len(sys.argv) > 1:\n result = extract(sys.argv[1])\n if result[\"success\"]:\n print(get_full_text(result))\n else:\n print(f\"Error: {result['error']}\")\n",
"numLines": 51,
"startLine": 150,
"totalLines": 200
}
}
}