Protokoll #16377

ID16377
Zeitstempel2025-12-25 17:02:54.681487
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuspending
Tokens5,460 (Input: 5,460, Output: 0)
Dauer-
Request-Zeit2025-12-25 17:02:54.681487
Response-Zeit-

Request

{
    "event": "PostToolUse",
    "tool_name": "TaskOutput",
    "tool_response": {
        "retrieval_status": "success",
        "task": {
            "task_id": "a8c81d0",
            "task_type": "local_agent",
            "status": "completed",
            "description": "Refactor TaskResult Entity slim",
            "output": "[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResult.php\"}\n[Tool: mcp__mcp-code__code_class] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: mcp__mcp-code__code_dependents] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: mcp__mcp-code__code_dependents] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/ExecuteAITaskUseCase.php\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/SaveTaskResultUseCase.php\"}\n[Tool: Glob] {\"pattern\":\"**\/ValueObject\/*.php\",\"path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/TokenCount.php\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/TokenCount.php\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ExecutionDuration.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Immutables Value Object für Ausführungsdauer mit Zeitstempeln\\n\\nuse InvalidArgumentException;\\n\\nfinal class ExecutionDuration\\n{\\n    private \\\\DateTimeImmutable $requestedAt;\\n    private ?\\\\DateTimeImmutable $respondedAt;\\n\\n    private function __construct(\\\\DateTimeImmutable $requestedAt, ?\\\\DateTimeImmutable $respondedAt)\\n    {\\n        if ($respondedAt !== null && $respondedAt < $requestedAt) {\\n            throw new InvalidArgumentException('Response timestamp cannot be before request timestamp');\\n        }\\n\\n        $this->requestedAt = $requestedAt;\\n        $this->respondedAt = $respondedAt;\\n    }\\n\\n    public static function start(\\\\DateTimeImmutable $requestedAt): self\\n    {\\n        return new self($requestedAt, null);\\n    }\\n\\n    public static function completed(\\\\DateTimeImmutable $requestedAt, \\\\DateTimeImmutable $respondedAt): self\\n    {\\n        return new self($requestedAt, $respondedAt);\\n    }\\n\\n    public static function now(): self\\n    {\\n        return new self(new \\\\DateTimeImmutable(), null);\\n    }\\n\\n    public function complete(\\\\DateTimeImmutable $respondedAt): self\\n    {\\n        return new self($this->requestedAt, $respondedAt);\\n    }\\n\\n    public function completeNow(): self\\n    {\\n        return new self($this->requestedAt, new \\\\DateTimeImmutable());\\n    }\\n\\n    public function requestedAt(): \\\\DateTimeImmutable\\n    {\\n        return $this->requestedAt;\\n    }\\n\\n    public function respondedAt(): ?\\\\DateTimeImmutable\\n    {\\n        return $this->respondedAt;\\n    }\\n\\n    public function durationMs(): ?int\\n    {\\n        if ($this->respondedAt === null) {\\n            return null;\\n        }\\n\\n        $diff = $this->respondedAt->getTimestamp() - $this->requestedAt->getTimestamp();\\n\\n        return $diff * 1000;\\n    }\\n\\n    public function isCompleted(): bool\\n    {\\n        return $this->respondedAt !== null;\\n    }\\n\\n    public function format(): string\\n    {\\n        $duration = $this->durationMs();\\n\\n        if ($duration === null) {\\n            return 'In progress';\\n        }\\n\\n        if ($duration < 1000) {\\n            return \\\"{$duration}ms\\\";\\n        }\\n\\n        return sprintf('%.2fs', $duration \/ 1000);\\n    }\\n\\n    public function toArray(): array\\n    {\\n        return [\\n            'requested_at' => $this->requestedAt->format('Y-m-d H:i:s.u'),\\n            'responded_at' => $this->respondedAt?->format('Y-m-d H:i:s.u'),\\n            'duration_ms' => $this->durationMs(),\\n        ];\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ExecutionMetrics.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Immutables Value Object für Ausführungs-Metriken (Tokens + Kosten + Dauer)\\n\\nfinal class ExecutionMetrics\\n{\\n    private function __construct(\\n        private TokenCount $tokens,\\n        private ?float $costUsd,\\n        private ?int $durationMs\\n    ) {\\n    }\\n\\n    public static function create(TokenCount $tokens, ?float $costUsd = null, ?int $durationMs = null): self\\n    {\\n        return new self($tokens, $costUsd, $durationMs);\\n    }\\n\\n    public static function zero(): self\\n    {\\n        return new self(TokenCount::zero(), null, null);\\n    }\\n\\n    public static function fromEstimation(string $request, string $response): self\\n    {\\n        $inputTokens = max(1, (int) (strlen($request) \/ 4));\\n        $outputTokens = max(1, (int) (strlen($response) \/ 4));\\n\\n        return new self(TokenCount::create($inputTokens, $outputTokens), null, null);\\n    }\\n\\n    public function tokens(): TokenCount\\n    {\\n        return $this->tokens;\\n    }\\n\\n    public function costUsd(): ?float\\n    {\\n        return $this->costUsd;\\n    }\\n\\n    public function durationMs(): ?int\\n    {\\n        return $this->durationMs;\\n    }\\n\\n    public function withCost(float $costUsd): self\\n    {\\n        return new self($this->tokens, $costUsd, $this->durationMs);\\n    }\\n\\n    public function withDuration(int $durationMs): self\\n    {\\n        return new self($this->tokens, $this->costUsd, $durationMs);\\n    }\\n\\n    public function withTokens(TokenCount $tokens): self\\n    {\\n        return new self($tokens, $this->costUsd, $this->durationMs);\\n    }\\n\\n    public function hasCost(): bool\\n    {\\n        return $this->costUsd !== null;\\n    }\\n\\n    public function hasDuration(): bool\\n    {\\n        return $this->durationMs !== null;\\n    }\\n\\n    public function format(): string\\n    {\\n        $parts = [$this->tokens->format()];\\n\\n        if ($this->costUsd !== null) {\\n            $parts[] = sprintf('$%.4f', $this->costUsd);\\n        }\\n\\n        if ($this->durationMs !== null) {\\n            if ($this->durationMs < 1000) {\\n                $parts[] = \\\"{$this->durationMs}ms\\\";\\n            } else {\\n                $parts[] = sprintf('%.2fs', $this->durationMs \/ 1000);\\n            }\\n        }\\n\\n        return implode(' | ', $parts);\\n    }\\n\\n    public function toArray(): array\\n    {\\n        return [\\n            'tokens_input' => $this->tokens->input(),\\n            'tokens_output' => $this->tokens->output(),\\n            'tokens_total' => $this->tokens->total(),\\n            'cost_usd' => $this->costUsd,\\n            'duration_ms' => $this->durationMs,\\n        ];\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ResultStatus.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Enum für Task-Result Status\\n\\nenum ResultStatus: string\\n{\\n    case SUCCESS = 'success';\\n    case ERROR = 'error';\\n    case PARTIAL = 'partial';\\n\\n    public function isSuccess(): bool\\n    {\\n        return $this === self::SUCCESS;\\n    }\\n\\n    public function isError(): bool\\n    {\\n        return $this === self::ERROR;\\n    }\\n\\n    public function label(): string\\n    {\\n        return match ($this) {\\n            self::SUCCESS => 'Erfolgreich',\\n            self::ERROR => 'Fehler',\\n            self::PARTIAL => 'Teilweise',\\n        };\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ResultStatus.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Enum für Task-Result Status\\n\\nenum ResultStatus: string\\n{\\n    case SUCCESS = 'success';\\n    case ERROR = 'error';\\n    case PARTIAL = 'partial';\\n\\n    public function isSuccess(): bool\\n    {\\n        return $this === self::SUCCESS;\\n    }\\n\\n    public function isError(): bool\\n    {\\n        return $this === self::ERROR;\\n    }\\n\\n    public function label(): string\\n    {\\n        return match ($this) {\\n            self::SUCCESS => 'Erfolgreich',\\n            self::ERROR => 'Fehler',\\n            self::PARTIAL => 'Teilweise',\\n        };\\n    }\\n}\\n\"}\n[Tool: Write] {\"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 = $... [TRUNCATED-ec364d2efb278e79]",
            "prompt": "Lese \/var\/www\/CLAUDE.md für Projektkontext.\n\n**Task #364: TaskResult.php Entity - Anemic Domain Model beheben**\n\nArbeitsverzeichnis: \/var\/www\/dev.campus.systemische-tools.de\n\n1. Analysiere `src\/Domain\/Entity\/TaskResult.php` (376 LOC)\n2. Minimiere Getter\/Setter\n3. Erstelle Value Objects für komplexe Felder (z.B. TokenUsage, CostInfo)\n4. Nutze Builder-Pattern falls viele optionale Felder\n5. Führe `\/var\/www\/scripts\/php-check.sh` aus\n\nMax 150 LOC für Entity. Value Objects für Metriken.",
            "result": "[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Entity\/TaskResult.php\"}\n[Tool: mcp__mcp-code__code_class] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: mcp__mcp-code__code_dependents] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: mcp__mcp-code__code_dependents] {\"fqcn\":\"Domain\\\\Entity\\\\TaskResult\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/ExecuteAITaskUseCase.php\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Task\/SaveTaskResultUseCase.php\"}\n[Tool: Glob] {\"pattern\":\"**\/ValueObject\/*.php\",\"path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/TokenCount.php\"}\n[Tool: Read] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/TokenCount.php\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ExecutionDuration.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Immutables Value Object für Ausführungsdauer mit Zeitstempeln\\n\\nuse InvalidArgumentException;\\n\\nfinal class ExecutionDuration\\n{\\n    private \\\\DateTimeImmutable $requestedAt;\\n    private ?\\\\DateTimeImmutable $respondedAt;\\n\\n    private function __construct(\\\\DateTimeImmutable $requestedAt, ?\\\\DateTimeImmutable $respondedAt)\\n    {\\n        if ($respondedAt !== null && $respondedAt < $requestedAt) {\\n            throw new InvalidArgumentException('Response timestamp cannot be before request timestamp');\\n        }\\n\\n        $this->requestedAt = $requestedAt;\\n        $this->respondedAt = $respondedAt;\\n    }\\n\\n    public static function start(\\\\DateTimeImmutable $requestedAt): self\\n    {\\n        return new self($requestedAt, null);\\n    }\\n\\n    public static function completed(\\\\DateTimeImmutable $requestedAt, \\\\DateTimeImmutable $respondedAt): self\\n    {\\n        return new self($requestedAt, $respondedAt);\\n    }\\n\\n    public static function now(): self\\n    {\\n        return new self(new \\\\DateTimeImmutable(), null);\\n    }\\n\\n    public function complete(\\\\DateTimeImmutable $respondedAt): self\\n    {\\n        return new self($this->requestedAt, $respondedAt);\\n    }\\n\\n    public function completeNow(): self\\n    {\\n        return new self($this->requestedAt, new \\\\DateTimeImmutable());\\n    }\\n\\n    public function requestedAt(): \\\\DateTimeImmutable\\n    {\\n        return $this->requestedAt;\\n    }\\n\\n    public function respondedAt(): ?\\\\DateTimeImmutable\\n    {\\n        return $this->respondedAt;\\n    }\\n\\n    public function durationMs(): ?int\\n    {\\n        if ($this->respondedAt === null) {\\n            return null;\\n        }\\n\\n        $diff = $this->respondedAt->getTimestamp() - $this->requestedAt->getTimestamp();\\n\\n        return $diff * 1000;\\n    }\\n\\n    public function isCompleted(): bool\\n    {\\n        return $this->respondedAt !== null;\\n    }\\n\\n    public function format(): string\\n    {\\n        $duration = $this->durationMs();\\n\\n        if ($duration === null) {\\n            return 'In progress';\\n        }\\n\\n        if ($duration < 1000) {\\n            return \\\"{$duration}ms\\\";\\n        }\\n\\n        return sprintf('%.2fs', $duration \/ 1000);\\n    }\\n\\n    public function toArray(): array\\n    {\\n        return [\\n            'requested_at' => $this->requestedAt->format('Y-m-d H:i:s.u'),\\n            'responded_at' => $this->respondedAt?->format('Y-m-d H:i:s.u'),\\n            'duration_ms' => $this->durationMs(),\\n        ];\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ExecutionMetrics.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Immutables Value Object für Ausführungs-Metriken (Tokens + Kosten + Dauer)\\n\\nfinal class ExecutionMetrics\\n{\\n    private function __construct(\\n        private TokenCount $tokens,\\n        private ?float $costUsd,\\n        private ?int $durationMs\\n    ) {\\n    }\\n\\n    public static function create(TokenCount $tokens, ?float $costUsd = null, ?int $durationMs = null): self\\n    {\\n        return new self($tokens, $costUsd, $durationMs);\\n    }\\n\\n    public static function zero(): self\\n    {\\n        return new self(TokenCount::zero(), null, null);\\n    }\\n\\n    public static function fromEstimation(string $request, string $response): self\\n    {\\n        $inputTokens = max(1, (int) (strlen($request) \/ 4));\\n        $outputTokens = max(1, (int) (strlen($response) \/ 4));\\n\\n        return new self(TokenCount::create($inputTokens, $outputTokens), null, null);\\n    }\\n\\n    public function tokens(): TokenCount\\n    {\\n        return $this->tokens;\\n    }\\n\\n    public function costUsd(): ?float\\n    {\\n        return $this->costUsd;\\n    }\\n\\n    public function durationMs(): ?int\\n    {\\n        return $this->durationMs;\\n    }\\n\\n    public function withCost(float $costUsd): self\\n    {\\n        return new self($this->tokens, $costUsd, $this->durationMs);\\n    }\\n\\n    public function withDuration(int $durationMs): self\\n    {\\n        return new self($this->tokens, $this->costUsd, $durationMs);\\n    }\\n\\n    public function withTokens(TokenCount $tokens): self\\n    {\\n        return new self($tokens, $this->costUsd, $this->durationMs);\\n    }\\n\\n    public function hasCost(): bool\\n    {\\n        return $this->costUsd !== null;\\n    }\\n\\n    public function hasDuration(): bool\\n    {\\n        return $this->durationMs !== null;\\n    }\\n\\n    public function format(): string\\n    {\\n        $parts = [$this->tokens->format()];\\n\\n        if ($this->costUsd !== null) {\\n            $parts[] = sprintf('$%.4f', $this->costUsd);\\n        }\\n\\n        if ($this->durationMs !== null) {\\n            if ($this->durationMs < 1000) {\\n                $parts[] = \\\"{$this->durationMs}ms\\\";\\n            } else {\\n                $parts[] = sprintf('%.2fs', $this->durationMs \/ 1000);\\n            }\\n        }\\n\\n        return implode(' | ', $parts);\\n    }\\n\\n    public function toArray(): array\\n    {\\n        return [\\n            'tokens_input' => $this->tokens->input(),\\n            'tokens_output' => $this->tokens->output(),\\n            'tokens_total' => $this->tokens->total(),\\n            'cost_usd' => $this->costUsd,\\n            'duration_ms' => $this->durationMs,\\n        ];\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ResultStatus.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Enum für Task-Result Status\\n\\nenum ResultStatus: string\\n{\\n    case SUCCESS = 'success';\\n    case ERROR = 'error';\\n    case PARTIAL = 'partial';\\n\\n    public function isSuccess(): bool\\n    {\\n        return $this === self::SUCCESS;\\n    }\\n\\n    public function isError(): bool\\n    {\\n        return $this === self::ERROR;\\n    }\\n\\n    public function label(): string\\n    {\\n        return match ($this) {\\n            self::SUCCESS => 'Erfolgreich',\\n            self::ERROR => 'Fehler',\\n            self::PARTIAL => 'Teilweise',\\n        };\\n    }\\n}\\n\"}\n[Tool: Write] {\"file_path\":\"\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/ValueObject\/ResultStatus.php\",\"content\":\"<?php\\n\\ndeclare(strict_types=1);\\n\\nnamespace Domain\\\\ValueObject;\\n\\n\/\/ @responsibility: Enum für Task-Result Status\\n\\nenum ResultStatus: string\\n{\\n    case SUCCESS = 'success';\\n    case ERROR = 'error';\\n    case PARTIAL = 'partial';\\n\\n    public function isSuccess(): bool\\n    {\\n        return $this === self::SUCCESS;\\n    }\\n\\n    public function isError(): bool\\n    {\\n        return $this === self::ERROR;\\n    }\\n\\n    public function label(): string\\n    {\\n        return match ($this) {\\n            self::SUCCESS => 'Erfolgreich',\\n            self::ERROR => 'Fehler',\\n            self::PARTIAL => 'Teilweise',\\n        };\\n    }\\n}\\n\"}\n[Tool: Write] {\"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 = $... [TRUNCATED-ec364d2efb278e79]"
        }
    }
}

Response

-
← Vorheriger Zur Liste Nächster →