Protokoll #7229

ID7229
Zeitstempel2025-12-23 07:56:25.754667
Clientroot
IP
Warning: Undefined array key "request_ip" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens1,390 (Input: 0, Output: 0)
Dauer190 ms
Request-Zeit
Warning: Undefined array key "request_timestamp" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 18
Response-Zeit-

Warning: Undefined array key "error_message" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 22

Request

{
    "event": "PreToolUse",
    "tool_name": "Edit",
    "tool_input": {
        "file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Pipeline\/PipelineRunStatusUseCase.php",
        "old_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\nuse Infrastructure\\Persistence\\PipelineRepository;\n\n\/**\n * PipelineRunStatusUseCase - Get detailed pipeline run status.\n *\n * Calculates progress, elapsed time, ETA, and detects stalled runs.\n *\/\nclass PipelineRunStatusUseCase",
        "new_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\n\/\/ @responsibility: Ermittelt Pipeline-Status mit Fortschritt und ETA\n\nuse Infrastructure\\Persistence\\PipelineRepository;\n\nclass PipelineRunStatusUseCase"
    }
}

Response

{
    "tool_response": {
        "filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Pipeline\/PipelineRunStatusUseCase.php",
        "oldString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\nuse Infrastructure\\Persistence\\PipelineRepository;\n\n\/**\n * PipelineRunStatusUseCase - Get detailed pipeline run status.\n *\n * Calculates progress, elapsed time, ETA, and detects stalled runs.\n *\/\nclass PipelineRunStatusUseCase",
        "newString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\n\/\/ @responsibility: Ermittelt Pipeline-Status mit Fortschritt und ETA\n\nuse Infrastructure\\Persistence\\PipelineRepository;\n\nclass PipelineRunStatusUseCase",
        "originalFile": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\nuse Infrastructure\\Persistence\\PipelineRepository;\n\n\/**\n * PipelineRunStatusUseCase - Get detailed pipeline run status.\n *\n * Calculates progress, elapsed time, ETA, and detects stalled runs.\n *\/\nclass PipelineRunStatusUseCase\n{\n    private PipelineRepository $repository;\n\n    public function __construct(?PipelineRepository $repository = null)\n    {\n        $this->repository = $repository ?? new PipelineRepository();\n    }\n\n    \/**\n     * Get detailed run status with progress calculations.\n     *\n     * @param int $pipelineId Pipeline ID\n     * @param int $runId Run ID\n     * @return array{success: bool, error?: string, data?: array}\n     *\/\n    public function execute(int $pipelineId, int $runId): array\n    {\n        $run = $this->repository->findRunById($runId);\n\n        if ($run === null || (int) $run['pipeline_id'] !== $pipelineId) {\n            return ['success' => false, 'error' => 'Run nicht gefunden'];\n        }\n\n        return [\n            'success' => true,\n            'data' => $this->buildStatusData($run),\n        ];\n    }\n\n    \/**\n     * Build comprehensive status data from run record.\n     *\/\n    private function buildStatusData(array $run): array\n    {\n        $startedAt = strtotime($run['started_at'] ?? 'now');\n        $elapsed = time() - $startedAt;\n\n        $total = (int) ($run['documents_total'] ?? 0);\n        $processed = (int) ($run['documents_processed'] ?? 0);\n        $progress = $total > 0 ? min(100, round(($processed \/ $total) * 100)) : 0;\n\n        \/\/ Cap processed display to not exceed total\n        $processedDisplay = min($processed, $total);\n\n        $estimatedRemaining = $this->calculateEta($elapsed, $processed, $total);\n\n        $lastUpdate = strtotime($run['last_update_at'] ?? $run['started_at'] ?? 'now');\n        $isStalled = (time() - $lastUpdate) > 60 && $run['status'] === 'running';\n\n        $isTerminal = in_array($run['status'], ['completed', 'failed', 'cancelled'], true);\n\n        return [\n            'status' => $run['status'],\n            'current_step' => $run['current_step'],\n            'current_document' => $run['current_document'],\n            'documents_total' => $total,\n            'documents_processed' => $processedDisplay,\n            'documents_failed' => (int) ($run['documents_failed'] ?? 0),\n            'chunks_created' => (int) ($run['chunks_created'] ?? 0),\n            'embeddings_created' => (int) ($run['embeddings_created'] ?? 0),\n            'progress' => $progress,\n            'elapsed' => $elapsed,\n            'elapsed_formatted' => gmdate('i:s', $elapsed),\n            'estimated_remaining' => $estimatedRemaining,\n            'estimated_formatted' => $estimatedRemaining !== null ? gmdate('i:s', $estimatedRemaining) : null,\n            'log_tail' => $run['log_tail'] ?? '',\n            'is_stalled' => $isStalled,\n            'is_terminal' => $isTerminal,\n            'completed_at' => $run['completed_at'],\n            'error_log' => $run['error_log'],\n        ];\n    }\n\n    \/**\n     * Calculate estimated time remaining.\n     *\/\n    private function calculateEta(int $elapsed, int $processed, int $total): ?int\n    {\n        if ($processed <= 0 || $total <= $processed) {\n            return null;\n        }\n\n        $avgTimePerDoc = $elapsed \/ $processed;\n        $remaining = $total - $processed;\n\n        return (int) ($avgTimePerDoc * $remaining);\n    }\n}\n",
        "structuredPatch": [
            {
                "oldStart": 4,
                "oldLines": 13,
                "newStart": 4,
                "newLines": 10,
                "lines": [
                    " ",
                    " namespace UseCases\\Pipeline;",
                    " ",
                    "+\/\/ @responsibility: Ermittelt Pipeline-Status mit Fortschritt und ETA",
                    "+",
                    " use Infrastructure\\Persistence\\PipelineRepository;",
                    " ",
                    "-\/**",
                    "- * PipelineRunStatusUseCase - Get detailed pipeline run status.",
                    "- *",
                    "- * Calculates progress, elapsed time, ETA, and detects stalled runs.",
                    "- *\/",
                    " class PipelineRunStatusUseCase",
                    " {",
                    "     private PipelineRepository $repository;"
                ]
            }
        ],
        "userModified": false,
        "replaceAll": false
    }
}
← Vorheriger Zur Liste Nächster →