{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/opt\/scripts\/pipeline\/generate.py",
"offset": 680,
"limit": 100
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/opt\/scripts\/pipeline\/generate.py",
"content": "\n except Exception as e:\n return {\"error\": str(e)}\n finally:\n db.disconnect()\n\n\ndef revise_content(version_id, model=\"anthropic\"):\n \"\"\"\n Create a revision based on critique feedback.\n\n Returns:\n dict with new version info\n \"\"\"\n db.connect()\n\n try:\n # Get version and critiques\n cursor = db.execute(\n \"\"\"SELECT cv.*, co.id as order_id, co.briefing, co.current_critique_round,\n ap.content as profile_config\n FROM content_versions cv\n JOIN content_orders co ON cv.order_id = co.id\n LEFT JOIN content_config ap ON co.author_profile_id = ap.id AND ap.type = 'author_profile'\n WHERE cv.id = %s\"\"\",\n (version_id,),\n )\n version = cursor.fetchone()\n cursor.close()\n\n if not version:\n return {\"error\": \"Version not found\"}\n\n content_data = json.loads(version[\"content\"]) if isinstance(version[\"content\"], str) else version[\"content\"]\n content_text = content_data.get(\"text\", \"\")\n\n # Get latest critiques\n cursor = db.execute(\n \"\"\"SELECT c.name, cc.feedback\n FROM content_critiques cc\n JOIN critics c ON cc.critic_id = c.id\n WHERE cc.version_id = %s AND cc.round = %s\"\"\",\n (version_id, version[\"current_critique_round\"]),\n )\n critiques = cursor.fetchall()\n cursor.close()\n\n # Build revision prompt\n feedback_text = \"\"\n for critique in critiques:\n fb = json.loads(critique[\"feedback\"]) if isinstance(critique[\"feedback\"], str) else critique[\"feedback\"]\n feedback_text += f\"\\n### {critique['name']}:\\n\"\n feedback_text += f\"- Bewertung: {fb.get('rating', 'N\/A')}\/10\\n\"\n feedback_text += f\"- Probleme: {', '.join(fb.get('issues', []))}\\n\"\n feedback_text += f\"- Vorschläge: {', '.join(fb.get('suggestions', []))}\\n\"\n\n prompt = f\"\"\"Du bist ein professioneller Content-Editor. Überarbeite den folgenden Text basierend auf dem Feedback der Kritiker.\n\n## Originaler Text:\n{content_text}\n\n## Feedback der Kritiker:\n{feedback_text}\n\n## Anweisungen:\n1. Behebe alle genannten Probleme\n2. Setze die Verbesserungsvorschläge um\n3. Behalte den Grundton und Stil bei\n4. Achte auf eine kohärente Überarbeitung\n\nErstelle nun die überarbeitete Version:\"\"\"\n\n # Generate revision\n update_order_status(version[\"order_id\"], \"generating\")\n revised_content = call_llm(prompt, model, client_name=\"content-studio-revise\")\n\n # Save new version\n new_version_number = version[\"version_number\"] + 1\n new_version_id = save_version(version[\"order_id\"], revised_content, new_version_number)\n\n # Update status\n update_order_status(version[\"order_id\"], \"critique\")\n\n return {\n \"success\": True,\n \"order_id\": version[\"order_id\"],\n \"version_id\": new_version_id,\n \"version_number\": new_version_number,\n \"content\": revised_content,\n }\n\n except Exception as e:\n return {\"error\": str(e)}\n finally:\n db.disconnect()\n\n\nif __name__ == \"__main__\":\n import sys\n",
"numLines": 100,
"startLine": 680,
"totalLines": 800
}
}
}