Updated the Plugin-API version to 0.1.4.1

Fixed entryPoint in plugin.json
added the getting of tools
added tools:
- TestTool: sends back "This is a test tool"
- TestToolAdvance: sends a "pong" back with the content of the "ping"
This commit is contained in:
2026-07-05 21:28:21 +02:00
parent 39e9aef41b
commit 11bab6e715
5 changed files with 80 additions and 2 deletions
+2 -1
View File
@@ -8,6 +8,7 @@ version = '1.0-SNAPSHOT'
repositories { repositories {
mavenCentral() mavenCentral()
mavenLocal()
maven { maven {
url = "https://git.server.4zellen.se/api/packages/neurodock/maven" url = "https://git.server.4zellen.se/api/packages/neurodock/maven"
name = "gitea" name = "gitea"
@@ -19,7 +20,7 @@ dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
compileOnly("me.neurodock:Plugin-API:0.1.2") compileOnly("me.neurodock:Plugin-API:0.1.4.1")
} }
test { test {
@@ -3,6 +3,7 @@ package me.neurodock.example.plugin;
import me.neurodock.plugin.Plugin; import me.neurodock.plugin.Plugin;
import me.neurodock.plugin.PluginMetadata; import me.neurodock.plugin.PluginMetadata;
import me.neurodock.plugin.annotations.PluginEntryPoint; import me.neurodock.plugin.annotations.PluginEntryPoint;
import me.neurodock.plugin.tool.Tool;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@PluginEntryPoint @PluginEntryPoint
@@ -21,4 +22,12 @@ public class TestPlugin extends Plugin {
} }
}; };
} }
@Override
public Tool[] getTools() {
return new Tool[]{
new TestTool(this),
new TestToolAdvance(this)
};
}
} }
@@ -0,0 +1,35 @@
package me.neurodock.example.plugin;
import me.neurodock.plugin.Plugin;
import me.neurodock.plugin.exceptions.ToolRuntimeException;
import me.neurodock.plugin.tool.Tool;
import me.neurodock.plugin.tool.ToolArguments;
import me.neurodock.plugin.tool.ToolParameters;
import me.neurodock.plugin.tool.ToolResponse;
import org.jetbrains.annotations.NotNull;
public class TestTool extends Tool {
/**
* A base contructor, as the {@link Plugin} is used within this class
*
* @param plugin The plugin that owns this tool
*/
public TestTool(Plugin plugin) {
super(plugin);
}
@Override
public @NotNull String name() {
return "test_tool";
}
@Override
public @NotNull ToolParameters parameters() {
return ToolParameters.empty();
}
@Override
public ToolResponse callTool(ToolArguments arguments) throws ToolRuntimeException {
return new ToolResponse(name(), "This is a test tool.");
}
}
@@ -0,0 +1,33 @@
package me.neurodock.example.plugin;
import me.neurodock.plugin.Plugin;
import me.neurodock.plugin.exceptions.ToolRuntimeException;
import me.neurodock.plugin.tool.Tool;
import me.neurodock.plugin.tool.ToolArguments;
import me.neurodock.plugin.tool.ToolParameters;
import me.neurodock.plugin.tool.ToolResponse;
import org.jetbrains.annotations.NotNull;
public class TestToolAdvance extends Tool {
public TestToolAdvance(Plugin plugin) {
super(plugin);
}
@Override
public @NotNull String name() {
return "ping";
}
@Override
public @NotNull ToolParameters parameters() {
return ToolParameters.builder()
.addProperty("message", ToolParameters.ToolParametersBuilder.Type.STRING, "the message to ping with", true)
.build();
}
@Override
public ToolResponse callTool(ToolArguments toolArguments) throws ToolRuntimeException {
if(!toolArguments.hasArgument("message")) throw new ToolRuntimeException(name(), "Missing message");
return new ToolResponse(name(), "pong: "+toolArguments.getArgument("message"));
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
{ {
"entryPoint": "me.neurodock.example.plugin", "entryPoint": "me.neurodock.example.plugin.TestPlugin",
"name": "test" "name": "test"
} }