feat: Add agents and agents settings

This commit is contained in:
Petr Mironychev
2026-05-26 12:30:11 +02:00
parent 51ebe3e523
commit 97236c6069
70 changed files with 4308 additions and 296 deletions

View File

@@ -0,0 +1,50 @@
// Copyright (C) 2024-2026 Petr Mironychev
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <QJsonObject>
#include <QList>
#include <QString>
#include "ContextData.hpp"
#include "ProviderID.hpp"
namespace QodeAssist::Templates {
using Providers::ProviderID;
enum class PromptShape {
Chat,
Fim,
};
class PromptTemplate
{
public:
PromptTemplate() = default;
virtual ~PromptTemplate() = default;
PromptTemplate(const PromptTemplate &) = delete;
PromptTemplate &operator=(const PromptTemplate &) = delete;
PromptTemplate(PromptTemplate &&) = delete;
PromptTemplate &operator=(PromptTemplate &&) = delete;
virtual QString name() const = 0;
virtual void prepareRequest(QJsonObject &request, const ContextData &context) const = 0;
virtual QString description() const = 0;
virtual bool isSupportProvider(ProviderID id) const = 0;
virtual PromptShape shape() const { return PromptShape::Chat; }
virtual bool isSupportModel(const QString & /*modelName*/) const { return true; }
[[nodiscard]] virtual bool buildFullRequest(
QJsonObject &request,
const ContextData &context,
bool /*thinkingEnabled*/ = false) const
{
prepareRequest(request, context);
return true;
}
};
} // namespace QodeAssist::Templates