mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-03-31 09:52:44 -04:00
refactor: Replace plugin tools manager to client api tools manager
This commit is contained in:
@ -31,12 +31,12 @@ TodoTool::TodoTool(QObject *parent)
|
||||
: BaseTool(parent)
|
||||
{}
|
||||
|
||||
QString TodoTool::name() const
|
||||
QString TodoTool::id() const
|
||||
{
|
||||
return "todo_tool";
|
||||
}
|
||||
|
||||
QString TodoTool::stringName() const
|
||||
QString TodoTool::displayName() const
|
||||
{
|
||||
return "Managing TODO list for task tracking";
|
||||
}
|
||||
@ -53,7 +53,7 @@ QString TodoTool::description() const
|
||||
"The list persists throughout the conversation.";
|
||||
}
|
||||
|
||||
QJsonObject TodoTool::getDefinition(PluginLLMCore::ToolSchemaFormat format) const
|
||||
QJsonObject TodoTool::parametersSchema() const
|
||||
{
|
||||
QJsonObject definition;
|
||||
definition["type"] = "object";
|
||||
@ -97,32 +97,15 @@ QJsonObject TodoTool::getDefinition(PluginLLMCore::ToolSchemaFormat format) cons
|
||||
required.append("operation");
|
||||
definition["required"] = required;
|
||||
|
||||
switch (format) {
|
||||
case PluginLLMCore::ToolSchemaFormat::OpenAI:
|
||||
return customizeForOpenAI(definition);
|
||||
case PluginLLMCore::ToolSchemaFormat::Claude:
|
||||
return customizeForClaude(definition);
|
||||
case PluginLLMCore::ToolSchemaFormat::Ollama:
|
||||
return customizeForOllama(definition);
|
||||
case PluginLLMCore::ToolSchemaFormat::Google:
|
||||
return customizeForGoogle(definition);
|
||||
}
|
||||
|
||||
return definition;
|
||||
}
|
||||
|
||||
PluginLLMCore::ToolPermissions TodoTool::requiredPermissions() const
|
||||
{
|
||||
return PluginLLMCore::ToolPermission::None;
|
||||
}
|
||||
|
||||
QFuture<QString> TodoTool::executeAsync(const QJsonObject &input)
|
||||
{
|
||||
return QtConcurrent::run([this, input]() -> QString {
|
||||
QString sessionId = input.value("session_id").toString();
|
||||
if (sessionId.isEmpty()) {
|
||||
sessionId = "current";
|
||||
}
|
||||
QMutexLocker sessionLocker(&m_mutex);
|
||||
QString sessionId = m_currentSessionId.isEmpty() ? "current" : m_currentSessionId;
|
||||
sessionLocker.unlock();
|
||||
|
||||
const QString operation = input.value("operation").toString();
|
||||
|
||||
@ -194,6 +177,12 @@ QFuture<QString> TodoTool::executeAsync(const QJsonObject &input)
|
||||
});
|
||||
}
|
||||
|
||||
void TodoTool::setCurrentSessionId(const QString &sessionId)
|
||||
{
|
||||
QMutexLocker locker(&m_mutex);
|
||||
m_currentSessionId = sessionId;
|
||||
}
|
||||
|
||||
void TodoTool::clearSession(const QString &sessionId)
|
||||
{
|
||||
QMutexLocker locker(&m_mutex);
|
||||
|
||||
Reference in New Issue
Block a user