{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/tmp\/check_content_config.py",
"content": "#!\/usr\/bin\/env python3\n\"\"\"Check content_config table contents.\"\"\"\nimport sys\nsys.path.insert(0, \"\/opt\/scripts\/pipeline\")\nfrom config import DB_CONFIG\nimport mysql.connector\n\n# Override database to ki_content\nconfig = DB_CONFIG.copy()\nconfig[\"database\"] = \"ki_content\"\n\nconn = mysql.connector.connect(**config)\ncursor = conn.cursor(dictionary=True)\n\nprint(\"=\" * 80)\nprint(\"CONTENT_CONFIG TABLE\")\nprint(\"=\" * 80)\ncursor.execute('SELECT id, type, name, slug, status FROM content_config ORDER BY type, name')\nfor row in cursor.fetchall():\n print(f'{row[\"id\"]:3} | {row[\"type\"]:15} | {row[\"name\"][:35]:35} | {row[\"status\"]}')\n\nprint(\"\\n\" + \"=\" * 80)\nprint(\"PROMPTS TABLE\")\nprint(\"=\" * 80)\ncursor.execute('SELECT id, name, version, is_active FROM prompts ORDER BY name')\nrows = cursor.fetchall()\nif rows:\n for row in rows:\n print(f'{row[\"id\"]:3} | {row[\"name\"]:30} | v{row[\"version\"]} | active={row[\"is_active\"]}')\nelse:\n print(\"(EMPTY - No prompts in database!)\")\n\nprint(\"\\n\" + \"=\" * 80)\nprint(\"CRITICS TABLE (with prompt references)\")\nprint(\"=\" * 80)\ncursor.execute('''\n SELECT c.id, c.name, c.fokus, c.prompt_id, p.name as prompt_name\n FROM critics c\n LEFT JOIN prompts p ON c.prompt_id = p.id\n WHERE c.is_active = 1\n ORDER BY c.sort_order\n''')\nfor row in cursor.fetchall():\n prompt_status = row[\"prompt_name\"] if row[\"prompt_name\"] else f\"MISSING (id={row['prompt_id']})\"\n print(f'{row[\"id\"]:3} | {row[\"name\"]:20} | Prompt: {prompt_status}')\n\ncursor.close()\nconn.close()\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/tmp\/check_content_config.py",
"content": "#!\/usr\/bin\/env python3\n\"\"\"Check content_config table contents.\"\"\"\nimport sys\nsys.path.insert(0, \"\/opt\/scripts\/pipeline\")\nfrom config import DB_CONFIG\nimport mysql.connector\n\n# Override database to ki_content\nconfig = DB_CONFIG.copy()\nconfig[\"database\"] = \"ki_content\"\n\nconn = mysql.connector.connect(**config)\ncursor = conn.cursor(dictionary=True)\n\nprint(\"=\" * 80)\nprint(\"CONTENT_CONFIG TABLE\")\nprint(\"=\" * 80)\ncursor.execute('SELECT id, type, name, slug, status FROM content_config ORDER BY type, name')\nfor row in cursor.fetchall():\n print(f'{row[\"id\"]:3} | {row[\"type\"]:15} | {row[\"name\"][:35]:35} | {row[\"status\"]}')\n\nprint(\"\\n\" + \"=\" * 80)\nprint(\"PROMPTS TABLE\")\nprint(\"=\" * 80)\ncursor.execute('SELECT id, name, version, is_active FROM prompts ORDER BY name')\nrows = cursor.fetchall()\nif rows:\n for row in rows:\n print(f'{row[\"id\"]:3} | {row[\"name\"]:30} | v{row[\"version\"]} | active={row[\"is_active\"]}')\nelse:\n print(\"(EMPTY - No prompts in database!)\")\n\nprint(\"\\n\" + \"=\" * 80)\nprint(\"CRITICS TABLE (with prompt references)\")\nprint(\"=\" * 80)\ncursor.execute('''\n SELECT c.id, c.name, c.fokus, c.prompt_id, p.name as prompt_name\n FROM critics c\n LEFT JOIN prompts p ON c.prompt_id = p.id\n WHERE c.is_active = 1\n ORDER BY c.sort_order\n''')\nfor row in cursor.fetchall():\n prompt_status = row[\"prompt_name\"] if row[\"prompt_name\"] else f\"MISSING (id={row['prompt_id']})\"\n print(f'{row[\"id\"]:3} | {row[\"name\"]:20} | Prompt: {prompt_status}')\n\ncursor.close()\nconn.close()\n",
"structuredPatch": [],
"originalFile": null
}
}