{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/ChatSessionRepositoryInterface.php",
"old_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Vertrag für Chat-Session-Persistenz\n\ninterface ChatSessionRepositoryInterface\n{\n \/**\n * Find session by UUID.\n *\n * @return array<string, mixed>|null\n *\/\n public function findByUuid(string $uuid): ?array;\n\n \/**\n * Get all sessions with statistics.\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findAll(int $limit = 50): array;",
"new_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Vertrag für Chat-Session-Persistenz\n\nuse Domain\\Entity\\ChatSession;\n\ninterface ChatSessionRepositoryInterface\n{\n \/**\n * Find session by UUID.\n *\/\n public function findByUuid(string $uuid): ?ChatSession;\n\n \/**\n * Get all sessions with statistics.\n *\n * @return array<int, ChatSession>\n *\/\n public function findAll(int $limit = 50): array;\n\n \/**\n * Get all sessions as arrays (for list views with aggregated data).\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findAllWithStats(int $limit = 50): array;"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Domain\/Repository\/ChatSessionRepositoryInterface.php",
"oldString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Vertrag für Chat-Session-Persistenz\n\ninterface ChatSessionRepositoryInterface\n{\n \/**\n * Find session by UUID.\n *\n * @return array<string, mixed>|null\n *\/\n public function findByUuid(string $uuid): ?array;\n\n \/**\n * Get all sessions with statistics.\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findAll(int $limit = 50): array;",
"newString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Vertrag für Chat-Session-Persistenz\n\nuse Domain\\Entity\\ChatSession;\n\ninterface ChatSessionRepositoryInterface\n{\n \/**\n * Find session by UUID.\n *\/\n public function findByUuid(string $uuid): ?ChatSession;\n\n \/**\n * Get all sessions with statistics.\n *\n * @return array<int, ChatSession>\n *\/\n public function findAll(int $limit = 50): array;\n\n \/**\n * Get all sessions as arrays (for list views with aggregated data).\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findAllWithStats(int $limit = 50): array;",
"originalFile": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Domain\\Repository;\n\n\/\/ @responsibility: Vertrag für Chat-Session-Persistenz\n\ninterface ChatSessionRepositoryInterface\n{\n \/**\n * Find session by UUID.\n *\n * @return array<string, mixed>|null\n *\/\n public function findByUuid(string $uuid): ?array;\n\n \/**\n * Get all sessions with statistics.\n *\n * @return array<int, array<string, mixed>>\n *\/\n public function findAll(int $limit = 50): array;\n\n \/**\n * Create a new session.\n *\/\n public function create(string $uuid, string $model, string $collections, int $contextLimit): int;\n\n \/**\n * Update session title.\n *\/\n public function updateTitle(int $sessionId, string $title): void;\n\n \/**\n * Update session settings.\n *\n * @param array<string> $collections\n *\/\n public function updateSettings(\n int $sessionId,\n string $model,\n array $collections,\n int $contextLimit,\n ?int $authorProfileId,\n float $temperature,\n int $maxTokens\n ): void;\n\n \/**\n * Update system prompt.\n *\/\n public function updateSystemPrompt(int $sessionId, ?string $systemPrompt): void;\n\n \/**\n * Delete session by ID.\n *\/\n public function delete(int $sessionId): void;\n\n \/**\n * Touch session (update last_activity timestamp).\n *\/\n public function touch(int $sessionId): void;\n\n \/**\n * Generate UUID v4.\n *\/\n public function generateUuid(): string;\n}\n",
"structuredPatch": [
{
"oldStart": 6,
"oldLines": 23,
"newStart": 6,
"newLines": 30,
"lines": [
" ",
" \/\/ @responsibility: Vertrag für Chat-Session-Persistenz",
" ",
"+use Domain\\Entity\\ChatSession;",
"+",
" interface ChatSessionRepositoryInterface",
" {",
" \/**",
" * Find session by UUID.",
"- *",
"- * @return array<string, mixed>|null",
" *\/",
"- public function findByUuid(string $uuid): ?array;",
"+ public function findByUuid(string $uuid): ?ChatSession;",
" ",
" \/**",
" * Get all sessions with statistics.",
" *",
"- * @return array<int, array<string, mixed>>",
"+ * @return array<int, ChatSession>",
" *\/",
" public function findAll(int $limit = 50): array;",
" ",
" \/**",
"+ * Get all sessions as arrays (for list views with aggregated data).",
"+ *",
"+ * @return array<int, array<string, mixed>>",
"+ *\/",
"+ public function findAllWithStats(int $limit = 50): array;",
"+",
"+ \/**",
" * Create a new session.",
" *\/",
" public function create(string $uuid, string $model, string $collections, int $contextLimit): int;"
]
}
],
"userModified": false,
"replaceAll": false
}
}