refactor: update CoreMemory to v2 and rename OllamaToolResponse
build / build (push) Has been cancelled

- Refactored `CoreMemory` to support versioning (v2) and dual-memory types: `MAPPED_MEMORY` (key-value) and `ARRAYED_MEMORY` (sequential).
- Added automatic migration logic for v1 memory files to v2.
- Introduced new memory tools: `AddArrayMemory`, `GetArrayMemory`, and `GetArrayedMemories`.
- Renamed `OllamaToolRespnce` to `OllamaToolResponse` and added `empty()` factory methods for better error handling.
- Updated multiple function tools (e.g., `GetMemoryFunction`, `GetMemoriesFunction`, `APITool`, `GetWikiPageText`) to use the new `OllamaToolResponse` and `Optional`-based memory retrieval.
- Improved null safety by adding `@NotNull` annotations to tool implementations.
This commit is contained in:
2026-05-27 21:10:15 +02:00
parent ac159c2498
commit 931c274cd3
27 changed files with 331 additions and 113 deletions
@@ -5,7 +5,7 @@ import me.zacharias.chat.mal.api.MALEndpoint;
import me.zacharias.chat.mal.api.MALEndpointTool;
import me.zacharias.chat.ollama.OllamaFunctionArgument;
import me.zacharias.chat.ollama.OllamaPerameter;
import me.zacharias.chat.ollama.OllamaToolRespnce;
import me.zacharias.chat.ollama.OllamaToolResponse;
import me.zacharias.chat.ollama.exceptions.OllamaToolErrorException;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
@@ -38,7 +38,7 @@ public class GetAnimeDetails extends MALEndpointTool {
}
@Override
public OllamaToolRespnce function(OllamaFunctionArgument... args) {
public @NotNull OllamaToolResponse function(OllamaFunctionArgument... args) {
int id = -1;
String[] fields = null;
@@ -81,6 +81,6 @@ public class GetAnimeDetails extends MALEndpointTool {
JSONObject obj = MALAPIToolInstance.APIRequest("/anime/"+id, map);
return new OllamaToolRespnce(this.name(), obj.toString());
return new OllamaToolResponse(this.name(), obj.toString());
}
}
@@ -5,7 +5,7 @@ import me.zacharias.chat.mal.api.MALEndpoint;
import me.zacharias.chat.mal.api.MALEndpointTool;
import me.zacharias.chat.ollama.OllamaFunctionArgument;
import me.zacharias.chat.ollama.OllamaPerameter;
import me.zacharias.chat.ollama.OllamaToolRespnce;
import me.zacharias.chat.ollama.OllamaToolResponse;
import me.zacharias.chat.ollama.exceptions.OllamaToolErrorException;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
@@ -39,7 +39,7 @@ public class GetAnimeList extends MALEndpointTool {
}
@Override
public OllamaToolRespnce function(OllamaFunctionArgument... args) {
public @NotNull OllamaToolResponse function(OllamaFunctionArgument... args) {
String query = "";
int offset = 0;
String[] fields = null;
@@ -83,6 +83,6 @@ public class GetAnimeList extends MALEndpointTool {
JSONObject response = MALAPIToolInstance.APIRequest("/anime", params);
return new OllamaToolRespnce(this.name(), response.toString());
return new OllamaToolResponse(this.name(), response.toString());
}
}
@@ -5,7 +5,7 @@ import me.zacharias.chat.mal.api.MALEndpoint;
import me.zacharias.chat.mal.api.MALEndpointTool;
import me.zacharias.chat.ollama.OllamaFunctionArgument;
import me.zacharias.chat.ollama.OllamaPerameter;
import me.zacharias.chat.ollama.OllamaToolRespnce;
import me.zacharias.chat.ollama.OllamaToolResponse;
import me.zacharias.chat.ollama.exceptions.OllamaToolErrorException;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
@@ -38,7 +38,7 @@ public class GetManagDetails extends MALEndpointTool {
}
@Override
public OllamaToolRespnce function(OllamaFunctionArgument... args) {
public @NotNull OllamaToolResponse function(OllamaFunctionArgument... args) {
int id = -1;
String[] fields = null;
@@ -81,6 +81,6 @@ public class GetManagDetails extends MALEndpointTool {
JSONObject obj = MALAPIToolInstance.APIRequest("/manga/"+id, map);
return new OllamaToolRespnce(this.name(), obj.toString());
return new OllamaToolResponse(this.name(), obj.toString());
}
}
@@ -5,7 +5,7 @@ import me.zacharias.chat.mal.api.MALEndpoint;
import me.zacharias.chat.mal.api.MALEndpointTool;
import me.zacharias.chat.ollama.OllamaFunctionArgument;
import me.zacharias.chat.ollama.OllamaPerameter;
import me.zacharias.chat.ollama.OllamaToolRespnce;
import me.zacharias.chat.ollama.OllamaToolResponse;
import me.zacharias.chat.ollama.exceptions.OllamaToolErrorException;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
@@ -39,7 +39,7 @@ public class GetMangaList extends MALEndpointTool {
}
@Override
public OllamaToolRespnce function(OllamaFunctionArgument... args) {
public @NotNull OllamaToolResponse function(OllamaFunctionArgument... args) {
String query = "";
int offset = 0;
String[] fields = null;
@@ -83,6 +83,6 @@ public class GetMangaList extends MALEndpointTool {
JSONObject response = MALAPIToolInstance.APIRequest("/manga", params);
return new OllamaToolRespnce(this.name(), response.toString());
return new OllamaToolResponse(this.name(), response.toString());
}
}