mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-06-14 02:09:22 -04:00
refactor: add to template agent roles
This commit is contained in:
@@ -9,6 +9,7 @@ add_library(Session STATIC
|
||||
Session.hpp Session.cpp
|
||||
SessionManager.hpp SessionManager.cpp
|
||||
SystemPromptBuilder.hpp SystemPromptBuilder.cpp
|
||||
ToolContributorRegistry.hpp
|
||||
)
|
||||
|
||||
target_link_libraries(Session
|
||||
|
||||
@@ -210,7 +210,9 @@ LLMQore::RequestID Session::sendCompletion(Templates::ContextData ctx)
|
||||
if (!provider->prepareRequest(payload, tmpl, ctx, /*tools=*/false, /*thinking=*/false))
|
||||
return {};
|
||||
|
||||
const auto id = provider->sendRequest(QUrl(provider->url()), payload, cfg.endpoint);
|
||||
QString endpoint = cfg.endpoint;
|
||||
endpoint.replace(QStringLiteral("${MODEL}"), cfg.model);
|
||||
const auto id = provider->sendRequest(QUrl(provider->url()), payload, endpoint);
|
||||
if (id.isEmpty())
|
||||
return {};
|
||||
|
||||
@@ -242,7 +244,9 @@ LLMQore::RequestID Session::dispatch(
|
||||
if (!provider->prepareRequest(payload, tmpl, ctx, tools, thinking))
|
||||
return {};
|
||||
|
||||
const auto id = provider->sendRequest(QUrl(provider->url()), payload, cfg.endpoint);
|
||||
QString endpoint = cfg.endpoint;
|
||||
endpoint.replace(QStringLiteral("${MODEL}"), cfg.model);
|
||||
const auto id = provider->sendRequest(QUrl(provider->url()), payload, endpoint);
|
||||
if (id.isEmpty())
|
||||
return {};
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <QPointer>
|
||||
#include <QString>
|
||||
|
||||
#include "ToolContributorRegistry.hpp"
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
class AgentFactory;
|
||||
@@ -41,6 +43,9 @@ public:
|
||||
|
||||
void cancelAll();
|
||||
|
||||
ToolContributorRegistry &toolContributors() noexcept { return m_toolContributors; }
|
||||
const ToolContributorRegistry &toolContributors() const noexcept { return m_toolContributors; }
|
||||
|
||||
signals:
|
||||
void sessionCreated(Session *session);
|
||||
void sessionRemoved(Session *session);
|
||||
@@ -48,6 +53,7 @@ signals:
|
||||
private:
|
||||
QPointer<AgentFactory> m_agentFactory;
|
||||
QList<QPointer<Session>> m_sessions;
|
||||
ToolContributorRegistry m_toolContributors;
|
||||
};
|
||||
|
||||
} // namespace QodeAssist
|
||||
|
||||
41
sources/Session/ToolContributorRegistry.hpp
Normal file
41
sources/Session/ToolContributorRegistry.hpp
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright (C) 2024-2026 Petr Mironychev
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
namespace LLMQore {
|
||||
class ToolsManager;
|
||||
}
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
class ToolContributorRegistry
|
||||
{
|
||||
public:
|
||||
using Contributor = std::function<void(LLMQore::ToolsManager *)>;
|
||||
|
||||
void add(Contributor contributor)
|
||||
{
|
||||
if (contributor)
|
||||
m_contributors.push_back(std::move(contributor));
|
||||
}
|
||||
|
||||
void contribute(LLMQore::ToolsManager *tools) const
|
||||
{
|
||||
if (!tools)
|
||||
return;
|
||||
for (const auto &contributor : m_contributors)
|
||||
contributor(tools);
|
||||
}
|
||||
|
||||
void clear() { m_contributors.clear(); }
|
||||
|
||||
private:
|
||||
std::vector<Contributor> m_contributors;
|
||||
};
|
||||
|
||||
} // namespace QodeAssist
|
||||
Reference in New Issue
Block a user