{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-graph-global.php",
"offset": 1,
"limit": 100
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-graph-global.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\n\/\/ @responsibility: View für globalen Projekt-Dependency-Graph\n\nob_start();\n?>\n<link rel=\"stylesheet\" href=\"\/css\/graph.css\">\n\n<nav class=\"breadcrumb\">\n <a href=\"\/docs\/code\">Code-Analyse<\/a> »\n <span>Projekt-Graph<\/span>\n<\/nav>\n\n<h1>Projekt Dependency Graph<\/h1>\n<p class=\"graph-stats\">Alle Dependency-Beziehungen im Projekt (nur interne Klassen)<\/p>\n\n<div class=\"graph-controls\">\n <div class=\"graph-legend\">\n <span class=\"graph-legend-item\"><span class=\"graph-legend-node graph-node-class\"><\/span> Class<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-node graph-node-interface\"><\/span> Interface<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-node graph-node-trait\"><\/span> Trait<\/span>\n <span class=\"graph-legend-item graph-legend-separator\"><span class=\"graph-legend-link graph-link-extends\"><\/span> extends<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-link graph-link-implements\"><\/span> implements<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-link graph-link-constructor\"><\/span> constructor<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-link graph-link-use\"><\/span> use<\/span>\n <span class=\"graph-legend-item\"><span class=\"graph-legend-link graph-link-trait\"><\/span> trait<\/span>\n <\/div>\n <div class=\"graph-filters\">\n <label for=\"dep-type-filter\" class=\"graph-filter-label\">Typ:<\/label>\n <select id=\"dep-type-filter\" class=\"graph-filter-select\">\n <option value=\"\">Alle<\/option>\n <option value=\"extends\">extends<\/option>\n <option value=\"implements\">implements<\/option>\n <option value=\"constructor\">constructor<\/option>\n <option value=\"use\">use<\/option>\n <option value=\"trait\">trait<\/option>\n <\/select>\n <label for=\"namespace-filter\" class=\"graph-filter-label\">Namespace:<\/label>\n <select id=\"namespace-filter\" class=\"graph-filter-select\">\n <option value=\"\">Alle<\/option>\n <\/select>\n <button id=\"reset-zoom\" class=\"btn btn--secondary graph-reset-btn\">Reset Zoom<\/button>\n <\/div>\n<\/div>\n\n<div id=\"graph-stats\" class=\"graph-stats\"><\/div>\n\n<div id=\"graph-container\" class=\"graph-container\"><\/div>\n\n<div class=\"graph-back-link\">\n <a href=\"\/docs\/code\" class=\"btn btn--secondary\">← Zurück zur Übersicht<\/a>\n<\/div>\n\n<script src=\"https:\/\/d3js.org\/d3.v7.min.js\"><\/script>\n<script>\n(function() {\n const container = document.getElementById('graph-container');\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n const colors = {\n class: '#6366f1',\n interface: '#f59e0b',\n trait: '#10b981'\n };\n\n const linkColors = {\n extends: '#f59e0b',\n implements: '#3b82f6',\n constructor: '#8b5cf6',\n use: '#94a3b8',\n trait: '#14b8a6'\n };\n\n container.innerHTML = '<div class=\"graph-loading\">Lade Graph-Daten...<\/div>';\n\n fetch('\/docs\/code\/graph-data')\n .then(r => r.json())\n .then(data => {\n container.innerHTML = '';\n\n document.getElementById('graph-stats').textContent =\n `${data.stats.nodes} Klassen | ${data.stats.links} Beziehungen | ${data.stats.namespaces} Namespaces`;\n\n const namespaces = [...new Set(data.nodes.map(n => n.namespace))].sort();\n const filter = document.getElementById('namespace-filter');\n namespaces.forEach(ns => {\n const opt = document.createElement('option');\n opt.value = ns;\n opt.textContent = ns;\n filter.appendChild(opt);\n });\n\n const namespaceGroups = {};\n data.nodes.forEach((node, i) => {\n const ns = node.namespace || 'global';\n if (!namespaceGroups[ns]) namespaceGroups[ns] = [];\n namespaceGroups[ns].push(node);",
"numLines": 100,
"startLine": 1,
"totalLines": 298
}
}
}