{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/test_taxonomy_search.php",
"old_string": "<?php\n\/**\n * CLI Test for EnhancedSearchUseCase with Taxonomy Filter\n *\/\n\ndeclare(strict_types=1);\n\nrequire_once __DIR__ . '\/src\/services.php';\n\nuse UseCases\\Search\\EnhancedSearchUseCase;\n\n\/\/ Get container\n$container = require __DIR__ . '\/src\/services.php';\n\necho \"=== Taxonomy Search Test ===\\n\\n\";",
"new_string": "<?php\n\/**\n * CLI Test for EnhancedSearchUseCase with Taxonomy Filter\n *\/\n\ndeclare(strict_types=1);\n\n\/\/ Bootstrap like index.php\nrequire_once __DIR__ . '\/vendor\/autoload.php';\n\n$dotenv = Dotenv\\Dotenv::createImmutable(__DIR__);\n$dotenv->load();\n\nrequire_once __DIR__ . '\/config\/config.php';\nrequire_once __DIR__ . '\/config\/database.php';\nrequire_once __DIR__ . '\/config\/autoload.php';\n\n\/\/ Create app and get container\n$app = new Framework\\App();\n$container = $app->container();\n\necho \"=== Taxonomy Search Test ===\\n\\n\";"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/test_taxonomy_search.php",
"oldString": "<?php\n\/**\n * CLI Test for EnhancedSearchUseCase with Taxonomy Filter\n *\/\n\ndeclare(strict_types=1);\n\nrequire_once __DIR__ . '\/src\/services.php';\n\nuse UseCases\\Search\\EnhancedSearchUseCase;\n\n\/\/ Get container\n$container = require __DIR__ . '\/src\/services.php';\n\necho \"=== Taxonomy Search Test ===\\n\\n\";",
"newString": "<?php\n\/**\n * CLI Test for EnhancedSearchUseCase with Taxonomy Filter\n *\/\n\ndeclare(strict_types=1);\n\n\/\/ Bootstrap like index.php\nrequire_once __DIR__ . '\/vendor\/autoload.php';\n\n$dotenv = Dotenv\\Dotenv::createImmutable(__DIR__);\n$dotenv->load();\n\nrequire_once __DIR__ . '\/config\/config.php';\nrequire_once __DIR__ . '\/config\/database.php';\nrequire_once __DIR__ . '\/config\/autoload.php';\n\n\/\/ Create app and get container\n$app = new Framework\\App();\n$container = $app->container();\n\necho \"=== Taxonomy Search Test ===\\n\\n\";",
"originalFile": "<?php\n\/**\n * CLI Test for EnhancedSearchUseCase with Taxonomy Filter\n *\/\n\ndeclare(strict_types=1);\n\nrequire_once __DIR__ . '\/src\/services.php';\n\nuse UseCases\\Search\\EnhancedSearchUseCase;\n\n\/\/ Get container\n$container = require __DIR__ . '\/src\/services.php';\n\necho \"=== Taxonomy Search Test ===\\n\\n\";\n\n\/\/ Test 1: Get chunks filtered by taxonomy term \"Coaching\" (ID: 7)\necho \"[1] Testing chunk_taxonomy table directly...\\n\";\n\n$pdo = $container->get('pdo.content');\n$stmt = $pdo->prepare(\"\n SELECT c.id, ct.confidence, tt.name as taxonomy, LEFT(c.content, 100) as preview\n FROM chunks c\n JOIN chunk_taxonomy ct ON c.id = ct.chunk_id\n JOIN taxonomy_terms tt ON ct.taxonomy_term_id = tt.id\n WHERE tt.name = ?\n ORDER BY ct.confidence DESC\n\");\n$stmt->execute(['Coaching']);\n$results = $stmt->fetchAll(PDO::FETCH_ASSOC);\n\necho \" Found \" . count($results) . \" chunks with 'Coaching' taxonomy:\\n\";\nforeach ($results as $r) {\n echo \" - Chunk {$r['id']} (conf: {$r['confidence']}): \" . substr($r['preview'], 0, 60) . \"...\\n\";\n}\n\n\/\/ Test 2: Verify ChunkTaxonomyRepository\necho \"\\n[2] Testing ChunkTaxonomyRepository...\\n\";\n\ntry {\n $chunkTaxRepo = $container->get(\\Infrastructure\\Persistence\\ChunkTaxonomyRepository::class);\n $mappings = $chunkTaxRepo->findByTaxonomyTermId(7); \/\/ Coaching\n echo \" Repository returned \" . count($mappings) . \" mappings for term ID 7\\n\";\n foreach ($mappings as $m) {\n if (is_array($m)) {\n echo \" - chunk_id: {$m['chunk_id']}, confidence: {$m['confidence']}\\n\";\n } else {\n echo \" - chunk_id: {$m->getChunkId()}, confidence: {$m->getConfidence()->value()}\\n\";\n }\n }\n} catch (Throwable $e) {\n echo \" ERROR: \" . $e->getMessage() . \"\\n\";\n}\n\n\/\/ Test 3: Full taxonomy overview\necho \"\\n[3] Taxonomy Statistics...\\n\";\n$stmt = $pdo->query(\"\n SELECT tt.name, COUNT(ct.id) as chunk_count\n FROM taxonomy_terms tt\n LEFT JOIN chunk_taxonomy ct ON tt.id = ct.taxonomy_term_id\n GROUP BY tt.id, tt.name\n HAVING chunk_count > 0\n ORDER BY chunk_count DESC\n\");\n$stats = $stmt->fetchAll(PDO::FETCH_ASSOC);\n\necho \" Taxonomy terms with mapped chunks:\\n\";\nforeach ($stats as $s) {\n echo \" - {$s['name']}: {$s['chunk_count']} chunks\\n\";\n}\n\necho \"\\n=== Test Complete ===\\n\";\n",
"structuredPatch": [
{
"oldStart": 5,
"oldLines": 13,
"newStart": 5,
"newLines": 20,
"lines": [
" ",
" declare(strict_types=1);",
" ",
"-require_once __DIR__ . '\/src\/services.php';",
"+\/\/ Bootstrap like index.php",
"+require_once __DIR__ . '\/vendor\/autoload.php';",
" ",
"-use UseCases\\Search\\EnhancedSearchUseCase;",
"+$dotenv = Dotenv\\Dotenv::createImmutable(__DIR__);",
"+$dotenv->load();",
" ",
"-\/\/ Get container",
"-$container = require __DIR__ . '\/src\/services.php';",
"+require_once __DIR__ . '\/config\/config.php';",
"+require_once __DIR__ . '\/config\/database.php';",
"+require_once __DIR__ . '\/config\/autoload.php';",
" ",
"+\/\/ Create app and get container",
"+$app = new Framework\\App();",
"+$container = $app->container();",
"+",
" echo \"=== Taxonomy Search Test ===\\n\\n\";",
" ",
" \/\/ Test 1: Get chunks filtered by taxonomy term \"Coaching\" (ID: 7)"
]
}
],
"userModified": false,
"replaceAll": false
}
}