{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/AI\/OllamaClient.php",
"offset": 35,
"limit": 50
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/AI\/OllamaClient.php",
"content": " ];\n\n if (isset($options['system'])) {\n $payload['system'] = $options['system'];\n }\n\n if (isset($options['temperature'])) {\n $payload['options']['temperature'] = $options['temperature'];\n }\n\n curl_setopt_array($ch, [\n CURLOPT_POST => true,\n CURLOPT_POSTFIELDS => json_encode($payload),\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_HTTPHEADER => ['Content-Type: application\/json'],\n CURLOPT_TIMEOUT => $this->timeout,\n ]);\n\n $response = curl_exec($ch);\n $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n $error = curl_error($ch);\n curl_close($ch);\n\n $durationMs = (int) ((microtime(true) - $startTime) * 1000);\n\n if ($error !== '') {\n return AIResponse::error(\"cURL Error: {$error}\", $model);\n }\n\n if ($httpCode !== 200) {\n return AIResponse::error(\"HTTP Error: {$httpCode}\", $model);\n }\n\n $data = json_decode($response, true);\n\n if (!isset($data['response'])) {\n return AIResponse::error('Invalid response format', $model);\n }\n\n $tokensInput = $data['prompt_eval_count'] ?? $this->estimateTokens($prompt);\n $tokensOutput = $data['eval_count'] ?? $this->estimateTokens($data['response']);\n\n return AIResponse::success(\n $data['response'],\n $tokensInput,\n $tokensOutput,\n $durationMs,\n $model,\n [\n 'total_duration' => $data['total_duration'] ?? null,",
"numLines": 50,
"startLine": 35,
"totalLines": 153
}
}
}