feat: Add summarize chat (#289)

This commit is contained in:
Petr Mironychev
2025-12-05 11:08:23 +01:00
committed by GitHub
parent 9e118ddfaf
commit 9f050aec67
8 changed files with 539 additions and 3 deletions

View File

@ -21,14 +21,16 @@
#include <QQuickItem>
#include "ChatFileManager.hpp"
#include "ChatModel.hpp"
#include "ClientInterface.hpp"
#include "ChatFileManager.hpp"
#include "llmcore/PromptProviderChat.hpp"
#include <coreplugin/editormanager/editormanager.h>
namespace QodeAssist::Chat {
class ChatCompressor;
class ChatRootView : public QQuickItem
{
Q_OBJECT
@ -64,6 +66,7 @@ class ChatRootView : public QQuickItem
Q_PROPERTY(QString baseSystemPrompt READ baseSystemPrompt NOTIFY baseSystemPromptChanged FINAL)
Q_PROPERTY(QString currentAgentRoleDescription READ currentAgentRoleDescription NOTIFY currentAgentRoleChanged FINAL)
Q_PROPERTY(QString currentAgentRoleSystemPrompt READ currentAgentRoleSystemPrompt NOTIFY currentAgentRoleChanged FINAL)
Q_PROPERTY(bool isCompressing READ isCompressing NOTIFY isCompressingChanged FINAL)
QML_ELEMENT
@ -150,7 +153,10 @@ public:
Q_INVOKABLE void applyConfiguration(const QString &configName);
QStringList availableConfigurations() const;
QString currentConfiguration() const;
Q_INVOKABLE void compressCurrentChat();
Q_INVOKABLE void cancelCompression();
Q_INVOKABLE void loadAvailableAgentRoles();
Q_INVOKABLE void applyAgentRole(const QString &roleId);
Q_INVOKABLE void openAgentRolesSettings();
@ -168,6 +174,8 @@ public:
QString lastInfoMessage() const;
bool isThinkingSupport() const;
bool isCompressing() const;
public slots:
void sendMessage(const QString &message);
@ -205,10 +213,15 @@ signals:
void isThinkingSupportChanged();
void availableConfigurationsChanged();
void currentConfigurationChanged();
void availableAgentRolesChanged();
void currentAgentRoleChanged();
void baseSystemPromptChanged();
void isCompressingChanged();
void compressionCompleted(const QString &compressedChatPath);
void compressionFailed(const QString &error);
private:
void updateFileEditStatus(const QString &editId, const QString &status);
QString getChatsHistoryDir() const;
@ -241,9 +254,11 @@ private:
QStringList m_availableConfigurations;
QString m_currentConfiguration;
QStringList m_availableAgentRoles;
QString m_currentAgentRole;
ChatCompressor *m_chatCompressor;
};
} // namespace QodeAssist::Chat