{
"event": "PostToolUse",
"raw_data": {
"session_id": "f0f145c4-ac1d-417a-b15b-271983ae648b",
"transcript_path": "\/root\/.claude\/projects\/-var-www\/f0f145c4-ac1d-417a-b15b-271983ae648b.jsonl",
"cwd": "\/var\/www\/dev.campus.systemische-tools.de",
"permission_mode": "acceptEdits",
"hook_event_name": "PostToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResultBuilder.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace 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\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"
},
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResultBuilder.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace 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\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": [],
"originalFile": null
},
"tool_use_id": "toolu_01RN6o6AHxroBQ6heVtGdWne"
}
}