Protokoll #2007

ID2007
Zeitstempel2025-12-21 03:01:28.867212
Clientroot
IP145.224.96.190
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens8,191 (Input: 2,418, Output: 5,773)
Dauer91 ms
Request-Zeit2025-12-21 03:01:28.867212
Response-Zeit2025-12-21 03:01:28.957875

Request

{
    "event": "PreToolUse",
    "tool_name": "Edit",
    "tool_input": {
        "file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/content\/show.php",
        "old_string": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>\n<\/nav>\n\n<h1><?= htmlspecialchars($order['title']) ?><\/h1>\n\n<table>\n    <tr><th>ID<\/th><td><?= $order['id'] ?><\/td><\/tr>\n    <tr><th>Status<\/th><td><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/td><\/tr>\n    <tr><th>Profil<\/th><td><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Contract<\/th><td><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Struktur<\/th><td><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Erstellt<\/th><td><?= $order['created_at'] ?><\/td><\/tr>\n<\/table>\n\n<h2>Briefing<\/h2>\n<p><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/p>\n\n<h2>Aktionen<\/h2>\n<div class=\"action-bar\">\n    <a href=\"\/content\/<?= $order['id'] ?>\/edit\" class=\"btn\">Bearbeiten<\/a>\n    <?php if (!$latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/generate\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/generate\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <select name=\"collection\" class=\"form-select--inline\">\n            <option value=\"documents\">Documents<\/option>\n            <option value=\"entities\">Entities<\/option>\n        <\/select>\n        <select name=\"context_limit\" class=\"form-select--inline\">\n            <option value=\"5\">5 Quellen<\/option>\n            <option value=\"3\">3 Quellen<\/option>\n            <option value=\"10\">10 Quellen<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>\n    <\/form>\n    <?php endif; ?>\n    <?php if ($latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/critique\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/critique\"\n          hx-target=\"#critique-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>\n    <\/form>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/revise\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/revise\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>\n    <\/form>\n    <?php if (in_array($order['status'], ['validate', 'critique', 'revision'])): ?>\n    <button class=\"btn btn--success\" hx-post=\"\/content\/<?= $order['id'] ?>\/approve\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Genehmigen<\/button>\n    <button class=\"btn btn--danger\" hx-post=\"\/content\/<?= $order['id'] ?>\/decline\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Ablehnen<\/button>\n    <?php endif; ?>\n    <?php endif; ?>\n<\/div>",
        "new_string": "<?php\nob_start();\n$orderModel = $order['model'] ?? 'claude-sonnet-4-20250514';\n$orderCollections = json_decode($order['collections'] ?? '[\"documents\"]', true) ?: ['documents'];\n$orderContextLimit = (int) ($order['context_limit'] ?? 5);\n?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>\n<\/nav>\n\n<h1><?= htmlspecialchars($order['title']) ?><\/h1>\n\n<div class=\"info-grid\">\n    <div class=\"info-card\">\n        <h3>Auftrag<\/h3>\n        <dl class=\"info-list\">\n            <dt>ID<\/dt><dd><?= $order['id'] ?><\/dd>\n            <dt>Status<\/dt><dd><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/dd>\n            <dt>Erstellt<\/dt><dd><?= $order['created_at'] ?><\/dd>\n        <\/dl>\n    <\/div>\n    <div class=\"info-card\">\n        <h3>KI-Einstellungen<\/h3>\n        <dl class=\"info-list\">\n            <dt>Modell<\/dt><dd><?= htmlspecialchars($models[$orderModel] ?? $orderModel) ?><\/dd>\n            <dt>Collections<\/dt><dd><?= htmlspecialchars(implode(', ', $orderCollections)) ?><\/dd>\n            <dt>Quellen<\/dt><dd><?= $orderContextLimit ?><\/dd>\n        <\/dl>\n    <\/div>\n    <div class=\"info-card\">\n        <h3>Content-Config<\/h3>\n        <dl class=\"info-list\">\n            <dt>Profil<\/dt><dd><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/dd>\n            <dt>Contract<\/dt><dd><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/dd>\n            <dt>Struktur<\/dt><dd><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/dd>\n        <\/dl>\n    <\/div>\n<\/div>\n\n<h2>Briefing<\/h2>\n<div class=\"briefing-box\"><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/div>\n\n<h2>Aktionen<\/h2>\n<div class=\"action-bar\">\n    <a href=\"\/content\/<?= $order['id'] ?>\/edit\" class=\"btn\">Bearbeiten<\/a>\n    <?php if (!$latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/generate\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/generate\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <select name=\"collection\" class=\"form-select--inline\">\n            <?php foreach ($availableCollections ?? ['documents'] as $coll): ?>\n            <option value=\"<?= htmlspecialchars($coll) ?>\" <?= in_array($coll, $orderCollections) ? 'selected' : '' ?>><?= htmlspecialchars($coll) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <select name=\"context_limit\" class=\"form-select--inline\">\n            <option value=\"3\" <?= $orderContextLimit === 3 ? 'selected' : '' ?>>3 Quellen<\/option>\n            <option value=\"5\" <?= $orderContextLimit === 5 ? 'selected' : '' ?>>5 Quellen<\/option>\n            <option value=\"10\" <?= $orderContextLimit === 10 ? 'selected' : '' ?>>10 Quellen<\/option>\n            <option value=\"15\" <?= $orderContextLimit === 15 ? 'selected' : '' ?>>15 Quellen<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>\n    <\/form>\n    <?php endif; ?>\n    <?php if ($latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/critique\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/critique\"\n          hx-target=\"#critique-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>\n    <\/form>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/revise\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/revise\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>\n    <\/form>\n    <?php if (in_array($order['status'], ['validate', 'critique', 'revision'])): ?>\n    <button class=\"btn btn--success\" hx-post=\"\/content\/<?= $order['id'] ?>\/approve\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Genehmigen<\/button>\n    <button class=\"btn btn--danger\" hx-post=\"\/content\/<?= $order['id'] ?>\/decline\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Ablehnen<\/button>\n    <?php endif; ?>\n    <?php endif; ?>\n<\/div>"
    }
}

Response

{
    "tool_response": {
        "filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/content\/show.php",
        "oldString": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>\n<\/nav>\n\n<h1><?= htmlspecialchars($order['title']) ?><\/h1>\n\n<table>\n    <tr><th>ID<\/th><td><?= $order['id'] ?><\/td><\/tr>\n    <tr><th>Status<\/th><td><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/td><\/tr>\n    <tr><th>Profil<\/th><td><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Contract<\/th><td><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Struktur<\/th><td><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Erstellt<\/th><td><?= $order['created_at'] ?><\/td><\/tr>\n<\/table>\n\n<h2>Briefing<\/h2>\n<p><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/p>\n\n<h2>Aktionen<\/h2>\n<div class=\"action-bar\">\n    <a href=\"\/content\/<?= $order['id'] ?>\/edit\" class=\"btn\">Bearbeiten<\/a>\n    <?php if (!$latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/generate\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/generate\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <select name=\"collection\" class=\"form-select--inline\">\n            <option value=\"documents\">Documents<\/option>\n            <option value=\"entities\">Entities<\/option>\n        <\/select>\n        <select name=\"context_limit\" class=\"form-select--inline\">\n            <option value=\"5\">5 Quellen<\/option>\n            <option value=\"3\">3 Quellen<\/option>\n            <option value=\"10\">10 Quellen<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>\n    <\/form>\n    <?php endif; ?>\n    <?php if ($latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/critique\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/critique\"\n          hx-target=\"#critique-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>\n    <\/form>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/revise\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/revise\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>\n    <\/form>\n    <?php if (in_array($order['status'], ['validate', 'critique', 'revision'])): ?>\n    <button class=\"btn btn--success\" hx-post=\"\/content\/<?= $order['id'] ?>\/approve\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Genehmigen<\/button>\n    <button class=\"btn btn--danger\" hx-post=\"\/content\/<?= $order['id'] ?>\/decline\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Ablehnen<\/button>\n    <?php endif; ?>\n    <?php endif; ?>\n<\/div>",
        "newString": "<?php\nob_start();\n$orderModel = $order['model'] ?? 'claude-sonnet-4-20250514';\n$orderCollections = json_decode($order['collections'] ?? '[\"documents\"]', true) ?: ['documents'];\n$orderContextLimit = (int) ($order['context_limit'] ?? 5);\n?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>\n<\/nav>\n\n<h1><?= htmlspecialchars($order['title']) ?><\/h1>\n\n<div class=\"info-grid\">\n    <div class=\"info-card\">\n        <h3>Auftrag<\/h3>\n        <dl class=\"info-list\">\n            <dt>ID<\/dt><dd><?= $order['id'] ?><\/dd>\n            <dt>Status<\/dt><dd><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/dd>\n            <dt>Erstellt<\/dt><dd><?= $order['created_at'] ?><\/dd>\n        <\/dl>\n    <\/div>\n    <div class=\"info-card\">\n        <h3>KI-Einstellungen<\/h3>\n        <dl class=\"info-list\">\n            <dt>Modell<\/dt><dd><?= htmlspecialchars($models[$orderModel] ?? $orderModel) ?><\/dd>\n            <dt>Collections<\/dt><dd><?= htmlspecialchars(implode(', ', $orderCollections)) ?><\/dd>\n            <dt>Quellen<\/dt><dd><?= $orderContextLimit ?><\/dd>\n        <\/dl>\n    <\/div>\n    <div class=\"info-card\">\n        <h3>Content-Config<\/h3>\n        <dl class=\"info-list\">\n            <dt>Profil<\/dt><dd><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/dd>\n            <dt>Contract<\/dt><dd><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/dd>\n            <dt>Struktur<\/dt><dd><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/dd>\n        <\/dl>\n    <\/div>\n<\/div>\n\n<h2>Briefing<\/h2>\n<div class=\"briefing-box\"><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/div>\n\n<h2>Aktionen<\/h2>\n<div class=\"action-bar\">\n    <a href=\"\/content\/<?= $order['id'] ?>\/edit\" class=\"btn\">Bearbeiten<\/a>\n    <?php if (!$latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/generate\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/generate\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <select name=\"collection\" class=\"form-select--inline\">\n            <?php foreach ($availableCollections ?? ['documents'] as $coll): ?>\n            <option value=\"<?= htmlspecialchars($coll) ?>\" <?= in_array($coll, $orderCollections) ? 'selected' : '' ?>><?= htmlspecialchars($coll) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <select name=\"context_limit\" class=\"form-select--inline\">\n            <option value=\"3\" <?= $orderContextLimit === 3 ? 'selected' : '' ?>>3 Quellen<\/option>\n            <option value=\"5\" <?= $orderContextLimit === 5 ? 'selected' : '' ?>>5 Quellen<\/option>\n            <option value=\"10\" <?= $orderContextLimit === 10 ? 'selected' : '' ?>>10 Quellen<\/option>\n            <option value=\"15\" <?= $orderContextLimit === 15 ? 'selected' : '' ?>>15 Quellen<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>\n    <\/form>\n    <?php endif; ?>\n    <?php if ($latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/critique\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/critique\"\n          hx-target=\"#critique-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>\n    <\/form>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/revise\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/revise\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <?php foreach ($models ?? [] as $modelId => $modelName): ?>\n            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>\n            <?php endforeach; ?>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>\n    <\/form>\n    <?php if (in_array($order['status'], ['validate', 'critique', 'revision'])): ?>\n    <button class=\"btn btn--success\" hx-post=\"\/content\/<?= $order['id'] ?>\/approve\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Genehmigen<\/button>\n    <button class=\"btn btn--danger\" hx-post=\"\/content\/<?= $order['id'] ?>\/decline\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Ablehnen<\/button>\n    <?php endif; ?>\n    <?php endif; ?>\n<\/div>",
        "originalFile": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>\n<\/nav>\n\n<h1><?= htmlspecialchars($order['title']) ?><\/h1>\n\n<table>\n    <tr><th>ID<\/th><td><?= $order['id'] ?><\/td><\/tr>\n    <tr><th>Status<\/th><td><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/td><\/tr>\n    <tr><th>Profil<\/th><td><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Contract<\/th><td><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Struktur<\/th><td><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/td><\/tr>\n    <tr><th>Erstellt<\/th><td><?= $order['created_at'] ?><\/td><\/tr>\n<\/table>\n\n<h2>Briefing<\/h2>\n<p><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/p>\n\n<h2>Aktionen<\/h2>\n<div class=\"action-bar\">\n    <a href=\"\/content\/<?= $order['id'] ?>\/edit\" class=\"btn\">Bearbeiten<\/a>\n    <?php if (!$latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/generate\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/generate\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <select name=\"collection\" class=\"form-select--inline\">\n            <option value=\"documents\">Documents<\/option>\n            <option value=\"entities\">Entities<\/option>\n        <\/select>\n        <select name=\"context_limit\" class=\"form-select--inline\">\n            <option value=\"5\">5 Quellen<\/option>\n            <option value=\"3\">3 Quellen<\/option>\n            <option value=\"10\">10 Quellen<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>\n    <\/form>\n    <?php endif; ?>\n    <?php if ($latestVersion): ?>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/critique\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/critique\"\n          hx-target=\"#critique-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>\n    <\/form>\n    <form method=\"POST\" action=\"\/content\/<?= $order['id'] ?>\/revise\" class=\"inline-form\"\n          hx-post=\"\/content\/<?= $order['id'] ?>\/revise\"\n          hx-target=\"#content-result\"\n          hx-swap=\"innerHTML\">\n        <?= $csrfField ?>\n        <select name=\"model\" class=\"form-select--inline\">\n            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>\n            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>\n            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>\n        <\/select>\n        <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>\n    <\/form>\n    <?php if (in_array($order['status'], ['validate', 'critique', 'revision'])): ?>\n    <button class=\"btn btn--success\" hx-post=\"\/content\/<?= $order['id'] ?>\/approve\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Genehmigen<\/button>\n    <button class=\"btn btn--danger\" hx-post=\"\/content\/<?= $order['id'] ?>\/decline\" hx-swap=\"none\" hx-on::after-request=\"location.reload()\" hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>Ablehnen<\/button>\n    <?php endif; ?>\n    <?php endif; ?>\n<\/div>\n\n<div id=\"content-result\"><\/div>\n<div id=\"critique-result\"><\/div>\n\n<?php if ($latestVersion):\n    $contentData = json_decode($latestVersion['content'], true);\n    $contentText = is_array($contentData) ? ($contentData['text'] ?? '') : $latestVersion['content'];\n    ?>\n<h2>Content (Version <?= $latestVersion['version_number'] ?>)<\/h2>\n<div class=\"result-box\">\n    <div class=\"result-box__header\">\n        <strong>Version <?= $latestVersion['version_number'] ?><\/strong>\n        <span><?= date('d.m.Y H:i', strtotime($latestVersion['created_at'])) ?><\/span>\n    <\/div>\n    <div class=\"result-box__content\">\n        <pre><?= htmlspecialchars($contentText) ?><\/pre>\n    <\/div>\n<\/div>\n<?php endif; ?>\n\n<?php if (!empty($critiques)): ?>\n<h2>Kritiken<\/h2>\n<table data-sortable>\n    <thead>\n        <tr>\n            <th data-sort=\"round\">Runde<\/th>\n            <th data-sort=\"critic\">Kritiker<\/th>\n            <th data-sort=\"rating\">Bewertung<\/th>\n            <th data-sort=\"status\">Status<\/th>\n            <th data-sort=\"summary\">Zusammenfassung<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <?php foreach ($critiques as $c): ?>\n        <tr>\n            <td><?= $c['round'] ?? '-' ?><\/td>\n            <td><?= htmlspecialchars($c['critic_name'] ?? '-') ?><\/td>\n            <td><?= $c['rating'] ?? '-' ?>\/10<\/td>\n            <td><span class=\"badge badge--<?= ($c['passed'] ?? false) ? 'completed' : 'failed' ?>\"><?= ($c['passed'] ?? false) ? 'Bestanden' : 'Offen' ?><\/span><\/td>\n            <td><?= htmlspecialchars($c['summary'] ?? '-') ?><\/td>\n        <\/tr>\n        <?php endforeach; ?>\n    <\/tbody>\n<\/table>\n<?php endif; ?>\n\n<?php if (!empty($sources)): ?>\n<h2>Quellen (RAG)<\/h2>\n<table data-sortable>\n    <thead>\n        <tr>\n            <th data-sort=\"document\">Dokument<\/th>\n            <th data-sort=\"score\">Relevanz<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <?php foreach ($sources as $s): ?>\n        <tr>\n            <td><?= htmlspecialchars($s['document_name'] ?? 'Unbekannt') ?><\/td>\n            <td><?= round(($s['relevance_score'] ?? 0) * 100) ?>%<\/td>\n        <\/tr>\n        <?php endforeach; ?>\n    <\/tbody>\n<\/table>\n<?php endif; ?>\n\n<?php if (count($versions) > 1): ?>\n<h2>Versionshistorie<\/h2>\n<table data-sortable>\n    <thead>\n        <tr>\n            <th data-sort=\"version\">Version<\/th>\n            <th data-sort=\"created\">Erstellt<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <?php foreach ($versions as $v): ?>\n        <tr>\n            <td>V<?= $v['version_number'] ?><\/td>\n            <td><?= date('d.m.Y H:i', strtotime($v['created_at'])) ?><\/td>\n        <\/tr>\n        <?php endforeach; ?>\n    <\/tbody>\n<\/table>\n<?php endif; ?>\n\n<p style=\"margin-top: 2rem;\"><a href=\"\/content\">&larr; Zurück zur Übersicht<\/a><\/p>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
        "structuredPatch": [
            {
                "oldStart": 1,
                "oldLines": 4,
                "newStart": 1,
                "newLines": 9,
                "lines": [
                    "-<?php ob_start(); ?>",
                    "+<?php",
                    "+ob_start();",
                    "+$orderModel = $order['model'] ?? 'claude-sonnet-4-20250514';",
                    "+$orderCollections = json_decode($order['collections'] ?? '[\"documents\"]', true) ?: ['documents'];",
                    "+$orderContextLimit = (int) ($order['context_limit'] ?? 5);",
                    "+?>",
                    " ",
                    " <nav class=\"breadcrumb\">",
                    "     <a href=\"\/content\">Content Studio<\/a> &raquo; Auftrag #<?= $order['id'] ?>"
                ]
            },
            {
                "oldStart": 6,
                "oldLines": 17,
                "newStart": 11,
                "newLines": 35,
                "lines": [
                    " ",
                    " <h1><?= htmlspecialchars($order['title']) ?><\/h1>",
                    " ",
                    "-<table>",
                    "-    <tr><th>ID<\/th><td><?= $order['id'] ?><\/td><\/tr>",
                    "-    <tr><th>Status<\/th><td><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/td><\/tr>",
                    "-    <tr><th>Profil<\/th><td><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/td><\/tr>",
                    "-    <tr><th>Contract<\/th><td><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/td><\/tr>",
                    "-    <tr><th>Struktur<\/th><td><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/td><\/tr>",
                    "-    <tr><th>Erstellt<\/th><td><?= $order['created_at'] ?><\/td><\/tr>",
                    "-<\/table>",
                    "+<div class=\"info-grid\">",
                    "+    <div class=\"info-card\">",
                    "+        <h3>Auftrag<\/h3>",
                    "+        <dl class=\"info-list\">",
                    "+            <dt>ID<\/dt><dd><?= $order['id'] ?><\/dd>",
                    "+            <dt>Status<\/dt><dd><span class=\"badge badge--<?= $order['status'] ?>\"><?= $order['status'] ?><\/span><\/dd>",
                    "+            <dt>Erstellt<\/dt><dd><?= $order['created_at'] ?><\/dd>",
                    "+        <\/dl>",
                    "+    <\/div>",
                    "+    <div class=\"info-card\">",
                    "+        <h3>KI-Einstellungen<\/h3>",
                    "+        <dl class=\"info-list\">",
                    "+            <dt>Modell<\/dt><dd><?= htmlspecialchars($models[$orderModel] ?? $orderModel) ?><\/dd>",
                    "+            <dt>Collections<\/dt><dd><?= htmlspecialchars(implode(', ', $orderCollections)) ?><\/dd>",
                    "+            <dt>Quellen<\/dt><dd><?= $orderContextLimit ?><\/dd>",
                    "+        <\/dl>",
                    "+    <\/div>",
                    "+    <div class=\"info-card\">",
                    "+        <h3>Content-Config<\/h3>",
                    "+        <dl class=\"info-list\">",
                    "+            <dt>Profil<\/dt><dd><?= htmlspecialchars($order['profile_name'] ?? '-') ?><\/dd>",
                    "+            <dt>Contract<\/dt><dd><?= htmlspecialchars($order['contract_name'] ?? '-') ?><\/dd>",
                    "+            <dt>Struktur<\/dt><dd><?= htmlspecialchars($order['structure_name'] ?? '-') ?><\/dd>",
                    "+        <\/dl>",
                    "+    <\/div>",
                    "+<\/div>",
                    " ",
                    " <h2>Briefing<\/h2>",
                    "-<p><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/p>",
                    "+<div class=\"briefing-box\"><?= nl2br(htmlspecialchars($order['briefing'])) ?><\/div>",
                    " ",
                    " <h2>Aktionen<\/h2>",
                    " <div class=\"action-bar\">"
                ]
            },
            {
                "oldStart": 28,
                "oldLines": 18,
                "newStart": 51,
                "newLines": 20,
                "lines": [
                    "           hx-swap=\"innerHTML\">",
                    "         <?= $csrfField ?>",
                    "         <select name=\"model\" class=\"form-select--inline\">",
                    "-            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>",
                    "-            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>",
                    "-            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>",
                    "+            <?php foreach ($models ?? [] as $modelId => $modelName): ?>",
                    "+            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>",
                    "+            <?php endforeach; ?>",
                    "         <\/select>",
                    "         <select name=\"collection\" class=\"form-select--inline\">",
                    "-            <option value=\"documents\">Documents<\/option>",
                    "-            <option value=\"entities\">Entities<\/option>",
                    "+            <?php foreach ($availableCollections ?? ['documents'] as $coll): ?>",
                    "+            <option value=\"<?= htmlspecialchars($coll) ?>\" <?= in_array($coll, $orderCollections) ? 'selected' : '' ?>><?= htmlspecialchars($coll) ?><\/option>",
                    "+            <?php endforeach; ?>",
                    "         <\/select>",
                    "         <select name=\"context_limit\" class=\"form-select--inline\">",
                    "-            <option value=\"5\">5 Quellen<\/option>",
                    "-            <option value=\"3\">3 Quellen<\/option>",
                    "-            <option value=\"10\">10 Quellen<\/option>",
                    "+            <option value=\"3\" <?= $orderContextLimit === 3 ? 'selected' : '' ?>>3 Quellen<\/option>",
                    "+            <option value=\"5\" <?= $orderContextLimit === 5 ? 'selected' : '' ?>>5 Quellen<\/option>",
                    "+            <option value=\"10\" <?= $orderContextLimit === 10 ? 'selected' : '' ?>>10 Quellen<\/option>",
                    "+            <option value=\"15\" <?= $orderContextLimit === 15 ? 'selected' : '' ?>>15 Quellen<\/option>",
                    "         <\/select>",
                    "         <button type=\"submit\" class=\"btn btn--primary\">Generieren<\/button>",
                    "     <\/form>"
                ]
            },
            {
                "oldStart": 51,
                "oldLines": 9,
                "newStart": 76,
                "newLines": 9,
                "lines": [
                    "           hx-swap=\"innerHTML\">",
                    "         <?= $csrfField ?>",
                    "         <select name=\"model\" class=\"form-select--inline\">",
                    "-            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>",
                    "-            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>",
                    "-            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>",
                    "+            <?php foreach ($models ?? [] as $modelId => $modelName): ?>",
                    "+            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>",
                    "+            <?php endforeach; ?>",
                    "         <\/select>",
                    "         <button type=\"submit\" class=\"btn btn--light\">Kritik-Runde<\/button>",
                    "     <\/form>"
                ]
            },
            {
                "oldStart": 63,
                "oldLines": 9,
                "newStart": 88,
                "newLines": 9,
                "lines": [
                    "           hx-swap=\"innerHTML\">",
                    "         <?= $csrfField ?>",
                    "         <select name=\"model\" class=\"form-select--inline\">",
                    "-            <option value=\"claude-opus-4-5-20251101\">Claude Opus<\/option>",
                    "-            <option value=\"claude-sonnet-4-20250514\">Claude Sonnet<\/option>",
                    "-            <option value=\"ollama:gemma3:4b-it-qat\">Ollama<\/option>",
                    "+            <?php foreach ($models ?? [] as $modelId => $modelName): ?>",
                    "+            <option value=\"<?= $modelId ?>\" <?= $modelId === $orderModel ? 'selected' : '' ?>><?= htmlspecialchars($modelName) ?><\/option>",
                    "+            <?php endforeach; ?>",
                    "         <\/select>",
                    "         <button type=\"submit\" class=\"btn btn--light\">Revision<\/button>",
                    "     <\/form>"
                ]
            }
        ],
        "userModified": false,
        "replaceAll": false
    }
}
← Vorheriger Zur Liste Nächster →