set(DokumentExplorerRepository::class, fn (Container $c) => new DokumentExplorerRepository($c->get('pdo.dev'))); $container->set(SeiteExplorerRepository::class, fn (Container $c) => new SeiteExplorerRepository($c->get('pdo.dev'))); $container->set(ChunkExplorerRepository::class, fn (Container $c) => new ChunkExplorerRepository($c->get('pdo.dev'))); $container->set(DokumentationRepository::class, fn (Container $c) => new DokumentationRepository($c->get('pdo.dev'))); $container->set(FileBackupRepository::class, fn (Container $c) => new FileBackupRepository($c->get('pdo.dev'))); $container->set(ContractRepository::class, fn (Container $c) => new ContractRepository($c->get('pdo.dev'))); $container->set(KiProtokollRepository::class, fn (Container $c) => new KiProtokollRepository($c->get('pdo.dev'))); $container->set(FileAnalysisRepository::class, fn (Container $c) => new FileAnalysisRepository($c->get('pdo.dev'))); $container->set(DependencyGraphRepository::class, fn (Container $c) => new DependencyGraphRepository($c->get('pdo.dev'))); $container->set(CodeQualityRepository::class, fn (Container $c) => new CodeQualityRepository($c->get('pdo.dev'))); // Interface aliases $container->set(DokumentationRepositoryInterface::class, fn (Container $c) => $c->get(DokumentationRepository::class)); $container->set(DokumentExplorerRepositoryInterface::class, fn (Container $c) => $c->get(DokumentExplorerRepository::class)); $container->set(SeiteExplorerRepositoryInterface::class, fn (Container $c) => $c->get(SeiteExplorerRepository::class)); $container->set(ChunkExplorerRepositoryInterface::class, fn (Container $c) => $c->get(ChunkExplorerRepository::class)); $container->set(FileAnalysisRepositoryInterface::class, fn (Container $c) => $c->get(FileAnalysisRepository::class)); $container->set(DependencyGraphRepositoryInterface::class, fn (Container $c) => $c->get(DependencyGraphRepository::class)); $container->set(CodeQualityRepositoryInterface::class, fn (Container $c) => $c->get(CodeQualityRepository::class)); $container->set(FileBackupRepositoryInterface::class, fn (Container $c) => $c->get(FileBackupRepository::class)); $container->set(KiProtokollRepositoryInterface::class, fn (Container $c) => $c->get(KiProtokollRepository::class)); $container->set(ContractRepositoryInterface::class, fn (Container $c) => $c->get(ContractRepository::class)); // Code Analysis $container->set(PhpFileParser::class, fn () => new PhpFileParser()); $container->set(PythonFileParser::class, fn () => new PythonFileParser()); $container->set(JsFileParser::class, fn () => new JsFileParser()); $container->set(CodeQualityChecker::class, fn () => new CodeQualityChecker()); $container->set(CodeScanner::class, function (Container $c) { return new CodeScanner( $c->get(FileAnalysisRepositoryInterface::class), $c->get(CodeQualityRepositoryInterface::class), $c->get(PhpFileParser::class), $c->get(PythonFileParser::class), $c->get(JsFileParser::class), $c->get(CodeQualityChecker::class) ); }); $container->set(CodeScannerInterface::class, fn (Container $c) => $c->get(CodeScanner::class)); // Documentation Services $container->set(ChunkSearchService::class, function (Container $c) { return new ChunkSearchService( $c->get(\Infrastructure\AI\QdrantClient::class), $c->get(\Infrastructure\AI\OllamaService::class) ); }); $container->set(ChunkSyncService::class, function (Container $c) { return new ChunkSyncService( $c->get('pdo.dev'), $c->get(\Infrastructure\AI\OllamaService::class), $c->get(\Infrastructure\AI\QdrantClient::class) ); }); $container->set(HybridSearchService::class, function (Container $c) { return new HybridSearchService( $c->get('pdo.dev'), $c->get(\Infrastructure\AI\OllamaService::class) ); }); // ChunkDataRepository for chunk database operations $container->set(ChunkDataRepository::class, function (Container $c) { return new ChunkDataRepository($c->get('pdo.dev')); }); // ChunkAnalyzer for LLM-based analysis $container->set(ChunkAnalyzer::class, function (Container $c) { return new ChunkAnalyzer($c->get(\Infrastructure\AI\OllamaService::class)); }); // ChunkAnalysisService orchestrates the analysis $container->set(ChunkAnalysisService::class, function (Container $c) { return new ChunkAnalysisService( $c->get(ChunkDataRepository::class), $c->get(ChunkAnalyzer::class) ); }); $container->set(ChunkingService::class, function (Container $c) { return new ChunkingService( $c->get('pdo.dev'), $c->get(DokumentationRepository::class) ); }); // Application Services $container->set(AuditLogger::class, fn (Container $c) => new AuditLogger($c->get('pdo.dev'))); $container->set(AuditService::class, fn (Container $c) => new AuditService($c->get('pdo.dev'))); $container->set(ApiResponseFormatter::class, fn () => new ApiResponseFormatter()); } }