{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/semantic-explorer\/index.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/semantic-explorer\/index.php",
"content": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/\">Campus KI<\/a> » Semantic Explorer\n<\/nav>\n\n<h1>Semantic Explorer<\/h1>\n<p>Nutzdaten aus Nextcloud mit Chunking und Vektor-Embeddings.<\/p>\n\n<div class=\"stats-grid\">\n <div class=\"stat-card stat-card--primary\">\n <span class=\"stat-card__value\"><?= number_format($docStats['total'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">Dokumente<\/span>\n <\/div>\n <div class=\"stat-card stat-card--success\">\n <span class=\"stat-card__value\"><?= number_format($docStats['processed'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">Verarbeitet<\/span>\n <\/div>\n <div class=\"stat-card stat-card--warning\">\n <span class=\"stat-card__value\"><?= number_format($docStats['errors'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">Fehler<\/span>\n <\/div>\n <div class=\"stat-card stat-card--info\">\n <span class=\"stat-card__value\"><?= number_format($chunkStats['total'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">Chunks<\/span>\n <\/div>\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= number_format($chunkStats['tokens'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">Tokens<\/span>\n <\/div>\n <div class=\"stat-card stat-card--success\">\n <span class=\"stat-card__value\"><?= number_format($chunkStats['embedded'] ?? 0) ?><\/span>\n <span class=\"stat-card__label\">In Qdrant<\/span>\n <\/div>\n<\/div>\n\n<h2>Bereiche<\/h2>\n<table data-sortable>\n <thead>\n <tr>\n <th data-sort=\"bereich\">Bereich<\/th>\n <th data-sort=\"beschreibung\">Beschreibung<\/th>\n <th data-sort=\"anzahl\">Anzahl<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"\/semantic-explorer\/dokumente\">Dokumente<\/a><\/td>\n <td>PDFs, DOCX, PPTX aus Nextcloud<\/td>\n <td><?= $docStats['total'] ?? 0 ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/chunks\">Chunks<\/a><\/td>\n <td>Semantische Textabschnitte mit Embeddings<\/td>\n <td><?= number_format($chunkStats['total'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/entitaeten\">Entitäten<\/a><\/td>\n <td>Personen, Organisationen, Konzepte<\/td>\n <td><?= number_format($semanticStats['entities'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/relationen\">Relationen<\/a><\/td>\n <td>Beziehungen zwischen Entitäten<\/td>\n <td><?= number_format($semanticStats['relations'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/graph\"><strong>Graph<\/strong><\/a><\/td>\n <td>Visualisierung aller Entitäten und Relationen<\/td>\n <td><?= number_format(($semanticStats['entities'] ?? 0) + ($semanticStats['relations'] ?? 0)) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/taxonomie\">Taxonomie<\/a><\/td>\n <td>Hierarchische Kategorisierung<\/td>\n <td><?= number_format($semanticStats['taxonomy'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/ontologie\">Ontologie<\/a><\/td>\n <td>Konzept-Klassen und Eigenschaften<\/td>\n <td><?= number_format($semanticStats['ontology'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/semantik\">Semantik<\/a><\/td>\n <td>Sentiment, Keywords, Zusammenfassungen<\/td>\n <td><?= number_format($semanticStats['semantics'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/stopwords\">Stopwords<\/a><\/td>\n <td>Filter fuer Entity-Extraction<\/td>\n <td><?= number_format($semanticStats['stopwords'] ?? 0) ?><\/td>\n <\/tr>\n <tr>\n <td><a href=\"\/semantic-explorer\/suche\">Suche<\/a><\/td>\n <td>Semantische Vektor-Suche<\/td>\n <td>-<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n\n<?php if (!empty($documents)): ?>\n<h2>Dokumente<\/h2>\n<table data-sortable>\n <thead>\n <tr>\n <th data-sort=\"filename\">Datei<\/th>\n <th data-sort=\"mime_type\">Typ<\/th>\n <th data-sort=\"status\">Status<\/th>\n <th data-sort=\"chunk_count\">Chunks<\/th>\n <th data-sort=\"imported_at\">Importiert<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($documents as $doc): ?>\n <tr>\n <td><a href=\"\/semantic-explorer\/dokumente\/<?= $doc['id'] ?>\"><?= htmlspecialchars($doc['filename']) ?><\/a><\/td>\n <td><code><?= htmlspecialchars($doc['mime_type'] ?? '-') ?><\/code><\/td>\n <td><span class=\"badge badge--<?= $doc['status'] ?>\"><?= $doc['status'] ?><\/span><\/td>\n <td><?= $doc['chunk_count'] ?><\/td>\n <td><?= date('d.m.Y H:i', strtotime($doc['imported_at'])) ?><\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n<?php endif; ?>\n\n<?php if (!empty($recentChunks)): ?>\n<h2>Neueste Chunks<\/h2>\n<table>\n <thead>\n <tr>\n <th>ID<\/th>\n <th>Dokument<\/th>\n <th>Tokens<\/th>\n <th>Status<\/th>\n <th>Inhalt<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($recentChunks as $c): ?>\n <tr>\n <td><a href=\"\/semantic-explorer\/chunks\/<?= $c['id'] ?>\">#<?= $c['id'] ?><\/a><\/td>\n <td><?= htmlspecialchars($c['filename']) ?><\/td>\n <td><?= $c['token_count'] ?><\/td>\n <td><?php if ($c['qdrant_id']): ?><span class=\"badge badge--success\">synced<\/span><?php else: ?><span class=\"badge\">pending<\/span><?php endif; ?><\/td>\n <td><?= htmlspecialchars(substr($c['content'], 0, 80)) ?>...<\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n<?php endif; ?>\n\n<p class=\"links-bar\">\n <a href=\"\/explorer\">Zurueck zum Explorer<\/a> |\n <a href=\"\/semantic-explorer\/suche\">Semantische Suche<\/a>\n<\/p>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"numLines": 159,
"startLine": 1,
"totalLines": 159
}
}
}