{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/system-explorer\/suche.php",
"old_string": "<span class=\"search-result__score\"><?= number_format($r['relevance_score'] * 100, 1) ?>%<\/span>",
"new_string": "<span class=\"search-result__score\"><?= number_format($r['relevance_score'] * \\Domain\\Constants::PERCENT_FULL, 1) ?>%<\/span>"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/system-explorer\/suche.php",
"oldString": "<span class=\"search-result__score\"><?= number_format($r['relevance_score'] * 100, 1) ?>%<\/span>",
"newString": "<span class=\"search-result__score\"><?= number_format($r['relevance_score'] * \\Domain\\Constants::PERCENT_FULL, 1) ?>%<\/span>",
"originalFile": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/\">Home<\/a> » <a href=\"\/explorer\">Explorer<\/a> » <a href=\"\/system-explorer\">System Explorer<\/a> » Suche\n<\/nav>\n\n<h1>Dokumentation durchsuchen<\/h1>\n<p>Hybride Suche: Vektor-Ähnlichkeit (Qdrant) + SQL-Filter.<\/p>\n\n<form method=\"get\" class=\"search-form\">\n <div class=\"form-group\">\n <input type=\"text\" name=\"q\" value=\"<?= htmlspecialchars($query) ?>\" placeholder=\"Suchbegriff eingeben...\" class=\"search-input\" autofocus>\n <\/div>\n <div class=\"form-row\">\n <select name=\"category\">\n <option value=\"\">Alle Kategorien<\/option>\n <?php foreach ($categories as $cat): ?>\n <option value=\"<?= htmlspecialchars($cat) ?>\" <?= $currentCategory === $cat ? 'selected' : '' ?>><?= htmlspecialchars($cat) ?><\/option>\n <?php endforeach; ?>\n <\/select>\n <select name=\"limit\">\n <option value=\"5\" <?= $limit === 5 ? 'selected' : '' ?>>5 Ergebnisse<\/option>\n <option value=\"10\" <?= $limit === 10 ? 'selected' : '' ?>>10 Ergebnisse<\/option>\n <option value=\"20\" <?= $limit === 20 ? 'selected' : '' ?>>20 Ergebnisse<\/option>\n <\/select>\n <button type=\"submit\" class=\"btn btn--primary\">Suchen<\/button>\n <\/div>\n<\/form>\n\n<?php if ($query !== '' && !empty($results)): ?>\n<h2>Ergebnisse für \"<?= htmlspecialchars($query) ?>\"<\/h2>\n<p><?= count($results) ?> Treffer gefunden.<\/p>\n\n<div class=\"search-results\">\n <?php foreach ($results as $i => $r): ?>\n <div class=\"search-result\">\n <div class=\"search-result__header\">\n <span class=\"search-result__rank\"><?= $i + 1 ?>.<\/span>\n <span class=\"search-result__score\"><?= number_format($r['relevance_score'] * 100, 1) ?>%<\/span>\n <a href=\"\/docs\/<?= htmlspecialchars($r['path']) ?>\" class=\"search-result__title\"><?= htmlspecialchars($r['title']) ?><\/a>\n <\/div>\n <div class=\"search-result__meta\">\n <span class=\"badge\"><?= htmlspecialchars(implode(' > ', $r['taxonomy'])) ?><\/span>\n <code><?= htmlspecialchars($r['path']) ?><\/code>\n <\/div>\n <div class=\"search-result__content\">\n <?= htmlspecialchars(substr($r['content'], 0, 200)) ?>...\n <\/div>\n <?php if (!empty($r['keywords'])): ?>\n <div class=\"search-result__keywords\">\n <?php foreach (array_slice($r['keywords'], 0, 5) as $kw): ?>\n <span class=\"badge badge--small\"><?= htmlspecialchars($kw) ?><\/span>\n <?php endforeach; ?>\n <\/div>\n <?php endif; ?>\n <\/div>\n <?php endforeach; ?>\n<\/div>\n\n<?php if (!empty($suggestions)): ?>\n<h3>Verwandte Suchen<\/h3>\n<div class=\"suggestions\">\n <?php foreach ($suggestions as $s): ?>\n <a href=\"?q=<?= urlencode($s) ?>&category=<?= urlencode($currentCategory) ?>\" class=\"btn btn--small\"><?= htmlspecialchars($s) ?><\/a>\n <?php endforeach; ?>\n<\/div>\n<?php endif; ?>\n\n<?php elseif ($query !== ''): ?>\n<p>Keine Ergebnisse für \"<?= htmlspecialchars($query) ?>\" gefunden.<\/p>\n<?php endif; ?>\n\n<style>\n.search-form { margin-bottom: 2rem; }\n.search-input { width: 100%; padding: 1rem; font-size: 1.2rem; border: 2px solid var(--color-border); border-radius: 4px; }\n.form-row { display: flex; gap: 1rem; margin-top: 1rem; }\n.search-results { display: flex; flex-direction: column; gap: 1.5rem; }\n.search-result { padding: 1rem; border: 1px solid var(--color-border); border-radius: 4px; background: var(--color-bg-alt); }\n.search-result__header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }\n.search-result__rank { font-weight: bold; color: var(--color-primary); }\n.search-result__score { background: var(--color-success); color: white; padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.8rem; }\n.search-result__title { font-weight: bold; font-size: 1.1rem; }\n.search-result__meta { font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 0.5rem; }\n.search-result__content { margin-bottom: 0.5rem; }\n.search-result__keywords { display: flex; gap: 0.3rem; flex-wrap: wrap; }\n.suggestions { display: flex; gap: 0.5rem; flex-wrap: wrap; }\n<\/style>\n\n<p class=\"links-bar\">\n <a href=\"\/system-explorer\">Zurück zum Explorer<\/a> |\n <code>php cli\/doc2vector.php search \"query\"<\/code>\n<\/p>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"structuredPatch": [
{
"oldStart": 36,
"oldLines": 7,
"newStart": 36,
"newLines": 7,
"lines": [
" <div class=\"search-result\">",
" <div class=\"search-result__header\">",
" <span class=\"search-result__rank\"><?= $i + 1 ?>.<\/span>",
"- <span class=\"search-result__score\"><?= number_format($r['relevance_score'] * 100, 1) ?>%<\/span>",
"+ <span class=\"search-result__score\"><?= number_format($r['relevance_score'] * \\Domain\\Constants::PERCENT_FULL, 1) ?>%<\/span>",
" <a href=\"\/docs\/<?= htmlspecialchars($r['path']) ?>\" class=\"search-result__title\"><?= htmlspecialchars($r['title']) ?><\/a>",
" <\/div>",
" <div class=\"search-result__meta\">"
]
}
],
"userModified": false,
"replaceAll": false
}
}