// Copyright (C) 2026 Petr Mironychev // SPDX-License-Identifier: GPL-3.0-or-later // Additional attribution terms under GPLv3 §7(b) apply — see LICENSE #pragma once #include #include #include namespace QodeAssist::Session { struct ProjectInfo { bool available = false; QString displayName; QString sourceRoot; std::optional buildDirectory; bool operator==(const ProjectInfo &other) const = default; }; struct InvokedSkill { QString name; QString body; bool operator==(const InvokedSkill &other) const = default; }; struct LinkedFile { QString fileName; QString content; bool operator==(const LinkedFile &other) const = default; }; struct TurnContext { QString basePrompt; std::optional rolePrompt; ProjectInfo project; QString projectRules; QString alwaysOnSkills; QString skillsCatalog; QList invokedSkills; QList linkedFilePaths; QList linkedFiles; bool operator==(const TurnContext &other) const = default; }; QString renderSystemPrompt(const TurnContext &context); } // namespace QodeAssist::Session