{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Controller\/ChatController.php",
"limit": 80
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Controller\/ChatController.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Controller;\n\n\/\/ @responsibility: HTTP-Endpunkte für KI-Chat (Sessions, Nachrichten, Export)\n\nuse Domain\\Factory\\ChatSessionFactory;\nuse Domain\\Repository\\ContentRepositoryInterface;\nuse Domain\\Service\\ModelRegistryInterface;\nuse Framework\\Controller;\nuse Infrastructure\\Formatting\\ChatMessageFormatter;\nuse UseCases\\Chat\\CreateChatSessionUseCaseInterface;\nuse UseCases\\Chat\\DeleteChatSessionUseCaseInterface;\nuse UseCases\\Chat\\ExportChatSessionUseCase;\nuse UseCases\\Chat\\GetChatSessionUseCaseInterface;\nuse UseCases\\Chat\\SendChatMessageUseCase;\nuse UseCases\\Chat\\StreamingChatMessageUseCase;\nuse UseCases\\Chat\\UpdateChatSessionUseCaseInterface;\n\nclass ChatController extends Controller\n{\n public function __construct(\n private CreateChatSessionUseCaseInterface $createSessionUseCase,\n private GetChatSessionUseCaseInterface $getSessionUseCase,\n private UpdateChatSessionUseCaseInterface $updateSessionUseCase,\n private DeleteChatSessionUseCaseInterface $deleteSessionUseCase,\n private SendChatMessageUseCase $messageUseCase,\n private StreamingChatMessageUseCase $streamingUseCase,\n private ChatMessageFormatter $formatter,\n private ExportChatSessionUseCase $exportUseCase,\n private ModelRegistryInterface $modelRegistry,\n private ContentRepositoryInterface $contentRepository\n ) {\n }\n\n public function index(): void\n {\n $uuid = $this->createSessionUseCase->createSession();\n header('Location: \/chat\/' . $uuid);\n exit;\n }\n\n public function show(string $uuid): void\n {\n $session = $this->getSessionUseCase->getSession($uuid);\n\n if ($session === null) {\n header('Location: \/chat');\n exit;\n }\n\n \/\/ Convert entities to arrays for views\n $messages = $this->getSessionUseCase->getMessages($session->getId() ?? 0);\n $messagesArray = array_map(fn ($m) => $m->toArray(), $messages);\n\n $this->view('chat.index', [\n 'title' => $session->getTitle() ?? 'KI-Chat',\n 'session' => ChatSessionFactory::toArray($session),\n 'messages' => $messagesArray,\n 'sessions' => $this->getSessionUseCase->getAllSessionsWithStats(),\n 'authorProfiles' => $this->getSessionUseCase->getAuthorProfiles(),\n 'systemPrompts' => $this->getSessionUseCase->getSystemPrompts(),\n 'outputStructures' => $this->getSessionUseCase->getOutputStructures(),\n 'collections' => $this->getSessionUseCase->getAvailableCollections(),\n 'models' => $this->modelRegistry->getChatModels(),\n 'defaultModel' => $this->modelRegistry->getDefaultChatModel(),\n ]);\n }\n\n public function sessionList(): void\n {\n $this->view('chat.partials.session-list', [\n 'sessions' => $this->getSessionUseCase->getAllSessionsWithStats(),\n 'currentUuid' => $this->getString('current') ?: null,\n ]);\n }\n\n public function message(string $uuid): void",
"numLines": 80,
"startLine": 1,
"totalLines": 511
}
}
}