{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResultBuilder.php",
"old_string": "namespace Domain\\Entity;\n\n\/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)\n\nuse Domain\\Entity\\TaskResult;\nuse Domain\\ValueObject\\AssigneeType;\nuse Domain\\ValueObject\\ExecutionDuration;\nuse Domain\\ValueObject\\ExecutionMetrics;\nuse Domain\\ValueObject\\ResultStatus;\nuse Domain\\ValueObject\\TokenCount;\n\nfinal class TaskResultBuilder",
"new_string": "namespace Domain\\Entity;\n\n\/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)\n\nuse Domain\\ValueObject\\AssigneeType;\nuse Domain\\ValueObject\\ExecutionDuration;\nuse Domain\\ValueObject\\ExecutionMetrics;\nuse Domain\\ValueObject\\ResultStatus;\nuse Domain\\ValueObject\\TokenCount;\n\nfinal class TaskResultBuilder"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResultBuilder.php",
"oldString": "namespace Domain\\Entity;\n\n\/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)\n\nuse Domain\\Entity\\TaskResult;\nuse Domain\\ValueObject\\AssigneeType;\nuse Domain\\ValueObject\\ExecutionDuration;\nuse Domain\\ValueObject\\ExecutionMetrics;\nuse Domain\\ValueObject\\ResultStatus;\nuse Domain\\ValueObject\\TokenCount;\n\nfinal class TaskResultBuilder",
"newString": "namespace Domain\\Entity;\n\n\/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)\n\nuse Domain\\ValueObject\\AssigneeType;\nuse Domain\\ValueObject\\ExecutionDuration;\nuse Domain\\ValueObject\\ExecutionMetrics;\nuse Domain\\ValueObject\\ResultStatus;\nuse Domain\\ValueObject\\TokenCount;\n\nfinal class TaskResultBuilder",
"originalFile": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Entity;\n\n\/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)\n\nuse Domain\\Entity\\TaskResult;\nuse Domain\\ValueObject\\AssigneeType;\nuse Domain\\ValueObject\\ExecutionDuration;\nuse Domain\\ValueObject\\ExecutionMetrics;\nuse Domain\\ValueObject\\ResultStatus;\nuse Domain\\ValueObject\\TokenCount;\n\nfinal class TaskResultBuilder\n{\n private int $taskId;\n private ?int $assignmentId = null;\n private string $executor;\n private AssigneeType $executorType;\n private ?string $modelName = null;\n private ?string $request = null;\n private ?string $response = null;\n private ExecutionDuration $duration;\n private ExecutionMetrics $metrics;\n private ResultStatus $status = ResultStatus::SUCCESS;\n private ?string $errorMessage = null;\n\n public function __construct(int $taskId, string $executor, AssigneeType $executorType)\n {\n $this->taskId = $taskId;\n $this->executor = $executor;\n $this->executorType = $executorType;\n $this->duration = ExecutionDuration::now();\n $this->metrics = ExecutionMetrics::zero();\n }\n\n public static function for(int $taskId, string $executor, AssigneeType $executorType): self\n {\n return new self($taskId, $executor, $executorType);\n }\n\n public function withAssignment(int $assignmentId): self\n {\n $this->assignmentId = $assignmentId;\n\n return $this;\n }\n\n public function withModel(string $modelName): self\n {\n $this->modelName = $modelName;\n\n return $this;\n }\n\n public function withRequest(string $request): self\n {\n $this->request = $request;\n\n return $this;\n }\n\n public function withResponse(string $response): self\n {\n $this->response = $response;\n $this->duration = $this->duration->completeNow();\n\n return $this;\n }\n\n public function withDuration(ExecutionDuration $duration): self\n {\n $this->duration = $duration;\n\n return $this;\n }\n\n public function withMetrics(ExecutionMetrics $metrics): self\n {\n $this->metrics = $metrics;\n\n return $this;\n }\n\n public function withTokens(int $input, int $output): self\n {\n $this->metrics = $this->metrics->withTokens(TokenCount::create($input, $output));\n\n return $this;\n }\n\n public function withCost(float $costUsd): self\n {\n $this->metrics = $this->metrics->withCost($costUsd);\n\n return $this;\n }\n\n public function withStatus(ResultStatus $status): self\n {\n $this->status = $status;\n\n return $this;\n }\n\n public function withError(string $errorMessage): self\n {\n $this->errorMessage = $errorMessage;\n $this->status = ResultStatus::ERROR;\n\n return $this;\n }\n\n public function estimateTokens(): self\n {\n if ($this->request !== null && $this->response !== null) {\n $this->metrics = ExecutionMetrics::fromEstimation($this->request, $this->response);\n }\n\n return $this;\n }\n\n public function build(): TaskResult\n {\n return new TaskResult(\n $this->taskId,\n $this->assignmentId,\n $this->executor,\n $this->executorType,\n $this->modelName,\n $this->request,\n $this->response,\n $this->duration,\n $this->metrics,\n $this->status,\n $this->errorMessage\n );\n }\n}\n",
"structuredPatch": [
{
"oldStart": 6,
"oldLines": 7,
"newStart": 6,
"newLines": 6,
"lines": [
" ",
" \/\/ @responsibility: Builder für TaskResult-Entity (optionale Felder, Validierung)",
" ",
"-use Domain\\Entity\\TaskResult;",
" use Domain\\ValueObject\\AssigneeType;",
" use Domain\\ValueObject\\ExecutionDuration;",
" use Domain\\ValueObject\\ExecutionMetrics;"
]
}
],
"userModified": false,
"replaceAll": false
}
}