{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/CodeAnalysis\/CodeScanner.php",
"offset": 180,
"limit": 70
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/CodeAnalysis\/CodeScanner.php",
"content": " * @return array<string, mixed>\n *\/\n private function analyzeFile(string $filePath, string $triggeredBy): array\n {\n $extension = pathinfo($filePath, PATHINFO_EXTENSION);\n $parsed = $this->getParserForExtension($extension)->parse($filePath);\n $stat = stat($filePath);\n $fileContent = @file_get_contents($filePath) ?: '';\n\n return [\n 'file_path' => $filePath,\n 'file_name' => basename($filePath),\n 'extension' => pathinfo($filePath, PATHINFO_EXTENSION),\n 'directory' => dirname($filePath),\n 'file_size' => $stat ? $stat['size'] : 0,\n 'line_count' => $this->countLines($filePath),\n 'file_content' => $fileContent,\n 'modified_at' => $stat ? date('Y-m-d H:i:s', $stat['mtime']) : date('Y-m-d H:i:s'),\n 'namespace' => $parsed['namespace'],\n 'classes' => $parsed['classes'],\n 'functions' => $parsed['functions'],\n 'uses' => $parsed['uses'],\n 'extends_class' => $parsed['extends_class'],\n 'implements_interfaces' => $parsed['implements_interfaces'],\n 'traits_used' => $parsed['traits_used'],\n 'constructor_deps' => $parsed['constructor_deps'],\n 'parse_error' => $parsed['error'],\n 'triggered_by' => $triggeredBy,\n ];\n }\n\n \/**\n * Wählt den passenden Parser für die Dateiendung.\n *\/\n private function getParserForExtension(string $extension): PhpFileParser|PythonFileParser|JsFileParser\n {\n return match ($extension) {\n 'py' => $this->pythonParser,\n 'js' => $this->jsParser,\n default => $this->phpParser,\n };\n }\n\n private function countLines(string $filePath): int\n {\n $handle = fopen($filePath, 'r');\n if ($handle === false) {\n return 0;\n }\n\n $count = 0;\n while (!feof($handle)) {\n fgets($handle);\n $count++;\n }\n fclose($handle);\n\n return $count;\n }\n\n private function generateUuid(): string\n {\n return sprintf(\n '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',\n random_int(0, 0xffff),\n random_int(0, 0xffff),\n random_int(0, 0xffff),\n random_int(0, 0x0fff) | 0x4000,\n random_int(0, 0x3fff) | 0x8000,\n random_int(0, 0xffff),",
"numLines": 70,
"startLine": 180,
"totalLines": 290
}
}
}