{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Infrastructure\/AI\/ModelConfig.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/content-pipeline\/show.php",
"content": "<?php ob_start(); ?>\n\n<h1>Pipeline: <?= htmlspecialchars($pipeline['name']) ?><\/h1>\n\n<?php if ($pipeline['is_default']): ?>\n<span class=\"badge badge--success\">Standard-Pipeline<\/span>\n<?php endif; ?>\n\n<div class=\"page-actions\">\n <a href=\"\/content-pipeline\/<?= $pipeline['id'] ?>\/edit\" class=\"btn btn--secondary\">Bearbeiten<\/a>\n <form action=\"\/content-pipeline\/<?= $pipeline['id'] ?>\/run\" method=\"POST\" style=\"display:inline;\">\n <input type=\"hidden\" name=\"_csrf_token\" value=\"<?= htmlspecialchars($_SESSION['_csrf_token'] ?? '') ?>\">\n <button type=\"submit\" class=\"btn btn--primary\">Pipeline starten<\/button>\n <\/form>\n<\/div>\n\n<ul class=\"config-list\">\n <li class=\"config-list__item\">\n <span class=\"config-list__label\">Quelle:<\/span>\n <span class=\"config-list__value editable\" data-field=\"source_path\" data-pipeline-id=\"<?= $pipeline['id'] ?>\"><?= htmlspecialchars($pipeline['source_path']) ?><\/span>\n <\/li>\n <li class=\"config-list__item\">\n <span class=\"config-list__label\">Dateitypen:<\/span>\n <span class=\"config-list__value editable\" data-field=\"extensions\" data-pipeline-id=\"<?= $pipeline['id'] ?>\"><?= implode(', ', $pipeline['extensions'] ?? []) ?><\/span>\n <\/li>\n<\/ul>\n\n<h2>Pipeline-Schritte<\/h2>\n\n<table>\n <thead>\n <tr>\n <th>#<\/th>\n <th>Schritt<\/th>\n <th>Phase<\/th>\n <th>Modell<\/th>\n <th>Zielspeicher<\/th>\n <th>Konfiguration<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($pipeline['steps'] as $step): ?>\n <?php\n $meta = $stepTypes[$step['step_type']] ?? ['label' => $step['step_type'], 'description' => '', 'phase' => '-', 'storage' => null];\n $config = $step['config'] ?? [];\n\n \/\/ Aktuelles Modell ermitteln (mit ollama: Prefix für Dropdown)\n $currentModel = null;\n $usesVision = $meta['uses_vision'] ?? false;\n $usesLlm = $meta['uses_llm'] ?? false;\n\n if (!empty($config['model'])) {\n $isAnthropic = str_contains($config['model'], 'claude') || ($config['provider'] ?? '') === 'anthropic';\n $currentModel = $isAnthropic ? $config['model'] : 'ollama:' . $config['model'];\n }\n\n \/\/ Config ohne model\/provider für kompaktere Anzeige\n $displayConfig = array_filter($config, fn ($k) => !in_array($k, ['provider', 'model']), ARRAY_FILTER_USE_KEY);\n\n \/\/ Zielspeicher mit dynamischen Werten ersetzen\n $storage = $meta['storage'] ?? null;\n if ($storage !== null && isset($config['collection'])) {\n $storage = str_replace('{collection}', $config['collection'], $storage);\n }\n ?>\n <tr data-step-id=\"<?= $step['id'] ?>\">\n <td><?= $step['sort_order'] ?><\/td>\n <td>\n <strong><?= $meta['label'] ?><\/strong>\n <br>\n <small><?= $meta['description'] ?><\/small>\n <\/td>\n <td><?= $meta['phase'] ?><\/td>\n <td class=\"model-cell\">\n <?php if (!empty($meta['fixed_model'])): ?>\n <span class=\"fixed-model\"><?= htmlspecialchars($meta['fixed_model']) ?><\/span>\n <?php elseif ($currentModel !== null || $usesVision || $usesLlm): ?>\n <?php\n $selected = $currentModel ?? ($usesVision ? \\Infrastructure\\AI\\ModelConfig::DEFAULT_VISION_MODEL : \\Infrastructure\\AI\\ModelConfig::DEFAULT_MODEL);\n $models = $usesVision ? \\Infrastructure\\AI\\ModelConfig::VISION_MODELS : \\Infrastructure\\AI\\ModelConfig::getAll();\n $name = 'model';\n $variant = 'compact';\n $id = 'model-step-' . $step['id'];\n $saveToLocalStorage = false;\n include VIEW_PATH . '\/partials\/form\/model-select.php';\n ?>\n <?php else: ?>\n <span class=\"text-muted\">-<\/span>\n <?php endif; ?>\n <\/td>\n <td class=\"storage-cell\">\n <?php if (!empty($meta['has_collection'])): ?>\n <span class=\"storage-prefix\">Qdrant:<\/span>\n <select class=\"collection-select\" data-step-id=\"<?= $step['id'] ?>\">\n <?php foreach ($collections as $collKey => $collLabel): ?>\n <option value=\"<?= htmlspecialchars($collKey) ?>\" <?= ($config['collection'] ?? 'documents') === $collKey ? 'selected' : '' ?>>\n <?= htmlspecialchars($collKey) ?>\n <\/option>\n <?php endforeach; ?>\n <\/select>\n <?php elseif ($storage): ?>\n <code class=\"storage-code\"><?= htmlspecialchars($storage) ?><\/code>\n <?php else: ?>\n <span class=\"text-muted\">-<\/span>\n <?php endif; ?>\n <\/td>\n <td>\n <?php if ($displayConfig): ?>\n <code class=\"config-code\"><?= htmlspecialchars(json_encode($displayConfig, JSON_UNESCAPED_UNICODE)) ?><\/code>\n <?php else: ?>\n <span class=\"text-muted\">-<\/span>\n <?php endif; ?>\n <\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n\n<h2>Ausführungen<\/h2>\n",
"numLines": 120,
"startLine": 1,
"totalLines": 432
}
}
}