From f6610777ae612a758e383ba92f2bd35e61cb397f Mon Sep 17 00:00:00 2001 From: Zacharias Date: Tue, 26 May 2026 16:28:02 +0200 Subject: [PATCH] refactor: redesign plugin system and enhance message handling - Move plugin and tool-related classes to a dedicated `Plugin-API` module. - Introduce a new plugin lifecycle (`onInit`, `onEnable`, `onDisable`) and a more robust `Tool` API. - Refactor `Core` to use `PrintAdvanceMessageHandler` for improved handling of assistant messages, tool responses, and errors. - Rename `PluginLoader` to `Loader` and migrate it to `me.zacharias.chat.plugin.loader`. - Update build configurations and Java toolchains across modules. - Clean up obsolete plugin annotations and interfaces in the `Core` module. --- .gitignore | 1 + .idea/.name | 2 +- .idea/gradle.xml | 2 +- .idea/misc.xml | 2 +- API/build.gradle | 6 ++ Core/build.gradle | 22 +++++- .../java/me/zacharias/chat/core/Core.java | 33 ++++---- .../chat/core/PrintAdvanceMessageHandler.java | 25 +++++++ .../chat/core/PrintMessageHandler.java | 36 ++++++++- .../zacharias/chat/ollama/OllamaMessage.java | 14 ++++ .../zacharias/chat/ollama/OllamaObject.java | 16 ++-- .../java/me/zacharias/chat/plugin/Plugin.java | 5 -- .../zacharias/chat/plugin/PluginLoader.java | 62 --------------- .../zacharias/chat/plugin/PluginMetadata.java | 9 --- .../annotation/injectons/InjectPlugin.java | 14 ---- .../zacharias/chat/plugin/loader/Loader.java | 62 +++++++++++++++ Core/src/test/java/plugin/Tool.java | 5 +- Display/build.gradle | 6 ++ GeniusAPI/build.gradle | 6 ++ MALAPITool/build.gradle | 6 ++ .../java/me/zacharias/chat/plugin/Data.java | 9 +++ .../java/me/zacharias/chat/plugin/Plugin.java | 56 ++++++++++++++ .../zacharias/chat/plugin/PluginMetadata.java | 40 ++++++++++ .../annotations/InjectPluginMetadata.java | 7 +- .../plugin/annotations/PluginEntryPoint.java | 13 ++++ .../exceptions/PluginLoadingException.java | 0 .../exceptions/ToolRuntimeException.java | 41 ++++++++++ .../me/zacharias/chat/plugin/tool/Tool.java | 75 +++++++++++++++++++ .../chat/plugin/tool/ToolArguments.java | 4 + .../chat/plugin/tool/ToolParameters.java | 12 +++ .../chat/plugin/tool/ToolResponse.java | 12 +++ WikipediaTool/build.gradle | 6 ++ build.gradle | 19 ++++- gradle.properties | 3 +- gradlew | 0 launcher/build.gradle | 6 ++ settings.gradle | 5 +- 37 files changed, 510 insertions(+), 132 deletions(-) create mode 100644 Core/src/main/java/me/zacharias/chat/core/PrintAdvanceMessageHandler.java delete mode 100644 Core/src/main/java/me/zacharias/chat/plugin/Plugin.java delete mode 100644 Core/src/main/java/me/zacharias/chat/plugin/PluginLoader.java delete mode 100644 Core/src/main/java/me/zacharias/chat/plugin/PluginMetadata.java delete mode 100644 Core/src/main/java/me/zacharias/chat/plugin/annotation/injectons/InjectPlugin.java create mode 100644 Core/src/main/java/me/zacharias/chat/plugin/loader/Loader.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/Data.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/Plugin.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/PluginMetadata.java rename Core/src/main/java/me/zacharias/chat/plugin/annotation/OllamaTool.java => Plugin-API/src/main/java/me/zacharias/chat/plugin/annotations/InjectPluginMetadata.java (63%) create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/annotations/PluginEntryPoint.java rename {Core => Plugin-API}/src/main/java/me/zacharias/chat/plugin/exceptions/PluginLoadingException.java (100%) create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/exceptions/ToolRuntimeException.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/tool/Tool.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/tool/ToolArguments.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/tool/ToolParameters.java create mode 100644 Plugin-API/src/main/java/me/zacharias/chat/plugin/tool/ToolResponse.java mode change 100644 => 100755 gradlew diff --git a/.gitignore b/.gitignore index 55589c3..d36d34c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ build/ .idea/modules.xml .idea/jarRepositories.xml .idea/compiler.xml +.idea .idea/libraries/ *.iws *.iml diff --git a/.idea/.name b/.idea/.name index 0a43fc3..f497ab9 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -AI-test \ No newline at end of file +neurodock \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 6a1ce52..fcfbb90 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,6 @@