{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Controller\/ChatController.php",
"offset": 200,
"limit": 80
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Controller\/ChatController.php",
"content": " }\n }\n\n $qualityCheck = isset($_POST['quality_check']) && $_POST['quality_check'] === '1';\n\n \/\/ Setup SSE headers\n header('Content-Type: text\/event-stream');\n header('Cache-Control: no-cache');\n header('Connection: keep-alive');\n header('X-Accel-Buffering: no');\n\n \/\/ Disable output buffering\n while (ob_get_level()) {\n ob_end_flush();\n }\n\n \/\/ Set progress callback\n $this->streamingUseCase->setProgressCallback(function (string $step, string $message, ?int $durationMs) {\n $timestamp = (new \\DateTime())->format('H:i:s.v');\n $data = [\n 'ts' => $timestamp,\n 'step' => $step,\n 'msg' => $message,\n 'ms' => $durationMs,\n ];\n echo \"event: progress\\n\";\n echo 'data: ' . json_encode($data, JSON_UNESCAPED_UNICODE) . \"\\n\\n\";\n flush();\n });\n\n \/\/ Execute with streaming\n $response = $this->streamingUseCase->execute(\n sessionUuid: $uuid,\n message: $question,\n model: $model,\n collections: $collections,\n contextLimit: $contextLimit,\n authorProfileId: $authorProfileId,\n systemPromptId: $systemPromptId,\n temperature: $temperature,\n maxTokens: $maxTokens,\n structureId: $structureId,\n qualityCheck: $qualityCheck\n );\n\n \/\/ Send final result\n if ($response->hasError()) {\n $errorData = ['error' => $response->getError()];\n echo \"event: error\\n\";\n echo 'data: ' . json_encode($errorData, JSON_UNESCAPED_UNICODE) . \"\\n\\n\";\n } else {\n $result = $response->toArray();\n $formattedAnswer = $this->formatter->formatAnswer($result['answer'] ?? '');\n\n \/\/ Render the response partial to HTML\n ob_start();\n $this->view('chat.partials.response', [\n 'question' => $question,\n 'result' => $result,\n 'model' => $model,\n 'formattedAnswer' => $formattedAnswer,\n ]);\n $html = ob_get_clean();\n\n $doneData = ['html' => $html];\n echo \"event: done\\n\";\n echo 'data: ' . json_encode($doneData, JSON_UNESCAPED_UNICODE) . \"\\n\\n\";\n }\n\n flush();\n }\n\n private function sseError(string $message): void\n {\n header('Content-Type: text\/event-stream');\n header('Cache-Control: no-cache');\n $errorData = ['error' => $message];\n echo \"event: error\\n\";\n echo 'data: ' . json_encode($errorData, JSON_UNESCAPED_UNICODE) . \"\\n\\n\";\n flush();",
"numLines": 80,
"startLine": 200,
"totalLines": 363
}
}
}