Commit Graph
71 Commits
Author SHA1 Message Date
Zacharias 5ae5920478 Moved versions of the "public facing" modules to the gradle.properties
Core:
- Fixed my promis of making Core work with multiple OllamaObjects
2026-07-30 21:24:06 +02:00
Zacharias b8280e6ec5 Refactored to Core 1.10.0
This includes chages to make less things static in the Core, instead using the Options Singelton instead
2026-07-30 20:49:06 +02:00
Zacharias 939fdb2211 Added support for Imagaes, Ollama model thinking, and streaming of the responce 2026-07-25 21:25:41 +02:00
Zacharias 663ab68172 !! PARTIAL COMMIT !!
This is a partial commit bc i felt like it...

This begain some implementations to support streaming from Ollama, and the ability to cancel a request.
2026-07-20 22:13:33 +02:00
Zacharias 330d7df389 Fixed some errors with the System prompt
Chaged java version to make this more compadible
2026-07-20 18:03:31 +02:00
Zacharias 4cd4367a19 Switching out toString returing a string JSON to toJSON that returns a JSONObject instead... and toString is not ment for this purpose 2026-07-19 23:05:48 +02:00
Zacharias 2defa32cb8 Making sure that Core.RPCP and plugin.tool.Tool.RPCP_SOURCE have the same
Updated Display to wait for Ollama to return before continuing
Updated GeniusTools.java to reflect correctly after "The Great Refector"
Temporarly comented out things from API after making Ollama be more threaded pending correction and expantion
2026-07-19 22:05:09 +02:00
Zacharias fc8a06bde5 Add LLMSystemPrompt as a unified system-prompt builder for OllamaObject
Replaces ad-hoc system-prompt string construction with a structured
builder (Identity, Context, Capabilities, Behavior, Output), plus
OllamaObject#setSystemMessage/setSystemPrompt for replacing the
system message post-construction instead of only at build time.
2026-07-19 21:47:18 +02:00
Zacharias 6e31e31718 Updated so you can dump all messages for an OllamaObject, add a system message, and add messages from a list 2026-07-05 21:19:55 +02:00
Zacharias 9c7ba9cb4f Made tool calling async as well, not yet tested 2026-06-28 17:58:44 +02:00
Zacharias caf60eddef Made Core#qurryOllama asynchronous instead to make so it doesn't lock up the calling thread, issue discovered in the (Ollama-chat)[https://git.server.4zellen.se/neurodock/Ollama-chat] Proof of Concept 2026-06-28 17:18:41 +02:00
Zacharias 3c6a75a587 Some small poking at things :)
dont midn the version bump, it's easier to bump versions then to get Maven to bahave
2026-06-28 15:46:57 +02:00
Zacharias 6d7088fd76 Renamed return type of Loader#getTools(Plugin) to OllamaFunctionTool from OllamaTool
Signed-off-by: zacharias <alienfromdia@proton.me>
2026-06-17 23:16:41 +02:00
Zacharias 0e31f15e03 Renamed the build.yml to build.yml.old as the backing gitea runner is not online.
Signed-off-by: zacharias <alienfromdia@proton.me>
2026-06-16 18:00:00 +02:00
Zacharias fcbb405a2e Updated Plugin-API version as it has recived updates since 0.1.0, but yet dine to be in 1.0 release
Updeaded the RPCP loader to use JarFile instead of a virtual FS

Signed-off-by: zacharias <alienfromdia@proton.me>
2026-06-16 17:58:33 +02:00
Zacharias b74c5e9e97 feat(plugin): scaffold RPCP plugin loading core
- Add JarFile-based plugin.json manifest reading and validation
- Implement reflection-based plugin class instantiation (Data or no-arg constructor)
- Wrap Tool objects into OllamaFunctionTool with basic parameter/response handling
- Implement ToolArguments storage and ToolResponse record
- Extract RPCP_SOURCE constant; add plugin name validation
- Update Data interface: getLoadedPlugins() returns LoadedPlugin[]
- Fix launcher package references (me.zacharias.chat → me.neurodock)

TODO: Extract FileSystem from JAR, populate PluginMetadata, complete
OllamaFunctionArgument↔ToolArguments wrapping, invoke plugin lifecycle hooks

Signed-off-by: zacharias <alienfromdia@proton.me>
2026-06-15 22:09:55 +02:00
Zacharias d016ad9a48 refactor(Core): decompose handleResponse and add ToolCallingRender system
- Extract handleResponse into focused helpers: processToolCall, findTool,
  reportToolNotFound, renderToolCalling, executeToolCall
- Introduce ToolCallingRender sealed interface (Suppress/Default/Custom)
  allowing tools to control how their invocations are rendered
- Add printToolCalling to PrintAdvanceMessageHandler contract
- Implement default tool calling rendering in PrintMessageHandler (blue text)
- Add WriteFileTool for file writing capabilities
- Fix "responce" → "response" typo across Java and Python files
- Improve PythonRunner docker error handling and output messages
- Update Gradle test configuration (maxHeapSize, test logging)

Signed-off-by: zacharias <alienfromdia@proton.me>
2026-06-15 14:55:09 +02:00
Zacharias ff0496eb61 Shit has happend, among the "shit" is working on the files stuff and refactoring Core.Source to reflect on the new names for the difrent types of tool sources 2026-06-15 00:20:07 +02:00
Zacharias b3cb4d86b6 Added early exit for unreachable Ollama 2026-05-28 13:06:37 +02:00
Zacharias ff45efbe67 Removed invalid import statment 2026-05-28 13:05:35 +02:00
Zacharias 9a43f8490e Removed invalid import statment 2026-05-28 12:52:22 +02:00
Zacharias 3395a591fb Update README.md
Updated the maven dependecies
Updated launcher dump example

Signed-off-by: Zacharias <1+zacharias@noreply.localhost>
2026-05-27 23:53:21 +02:00
Zacharias ab01ac80fb Update README.md
Fixed formating
2026-05-27 23:50:31 +02:00
Zacharias 4273f6c68c Update README.md
Noted the move of Maven dependecies
2026-05-27 23:50:13 +02:00
Zacharias 8b852bcf36 fixed some broken Javadoc after "The Great Refactor" 2026-05-27 23:40:10 +02:00
Zacharias f50c04c828 refactor: me.zacharias.chat → me.neurodock, org rename cleanup
- Renamed package from me.zacharias.chat to me.neurodock across all 8 modules
- Updated Gradle group from me.zacharias.neurodock to me.neurodock
- Updated README and other files to reflect new Gitea org URL (Chat_things → neurodock)

Dev note: 95 files touched. The Great Refactor is complete, long may it rest.
2026-05-27 23:34:22 +02:00
Zacharias 88c593c47d Added files to GIT that where missing
Dev note: Lowery, IDK why these where already added?
2026-05-27 23:06:31 +02:00
Zacharias 978cf8d7eb refactor(Core): decompose constructCore() into focused init methods
- Extracted Core#constructCore into: initDirectories(), ensureDir(String),
  initOllamaUrl(), initLogWriter(), rotateLogFile(), initScheduler(),
  initShutdownHook(), closeLogWriter(), saveMessages(),
  buildMessagesArray(), writeMessagesTo(File, JSONArray)
- Overloaded constructors for Core
- Cleaned up some Javadocs

Fixed error(AddArrayMemory)
- Line 51 used the wrong value

Updated minor version for(::Core)

Dev note: Long overdue — that generic init block was ugly and is finally
laid to rest.
2026-05-27 23:04:47 +02:00
Zacharias 931c274cd3 refactor: update CoreMemory to v2 and rename OllamaToolResponse
- 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.
2026-05-27 21:10:15 +02:00
Zacharias ac159c2498 Corrected the fact that
`OllamaPerameter.OllamaPerameterBuilder#addProperty(String, Type, String, boolean)` did not respect whether it's required or not
Corrected so `OllamaPerameter.OllamaPerameterBuilder#removeProperty(String)` also removes it from the required list
Corrected Javadocs
made OllamaPerameter.OllamaPerameterBuilder.Type#type a final
2026-05-27 20:20:27 +02:00
Zacharias 06cf1c766a Added a TODO for the memory package 2026-05-27 01:32:44 +02:00
Zacharias f6610777ae 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.
2026-05-26 16:28:02 +02:00
Zacharias 339b176480 Updated README to add noting of maven dependency 2026-05-12 15:29:53 +02:00
Zacharias a33a37ec0a Updated OllamaFunctionTool.toString to reflect what the Ollama API actually wants
Added @NotNull annotation to OllamaFunctionTool.name and OllamaFunctionTool.parameters since the documentation reports as these being required

Made sure that OllamaFunctionTool.description is actually optional as the Ollama API docs define
2026-05-05 22:27:36 +02:00
Zacharias b1aa35e1b1 Updated depndencies for
- GradleAPI
- Launcher
- MALAPITool

Started finishing up the File handeling module in Core
- Added ReadFileTool.java which allowes to read files from this contained "file system"

modulized dependency for the API

Updated for Launcher.java to use class and method refrence to entry point to remove hard dependency

Added a @SafeVarargs to OllamaObject.java
made OllamaObject.OllamaObjectBuilder#addFileTools not throw IllegalArgumentException and instead add the tooling and return the builder

Added overloaded constructor OllamaToolErrorException#OllamaToolErrorException(String, Exception) to allow for forwarding of exceptions, although this is not recomended

PythonRunner
- Fixed bugs with it under Linux host(this MUST be refractord to support Windows and Mac hosts)
- Added a overwrite for default python print method to send prints over the external_tools socket to be put into output log for the runner
- Cleaned up some stuff
- Updated to properly refer to files
- Fixed cmd.sh generation
- Removed old "-c" addition to the command
- Removed old code related to how logs pulled from containers standerd output's
- Updated the generation of external_tools.py to respect pythons requirment of optinal arguments being after all required

Updated Tool#addTool to respect the standerd of spring boot's return model
2026-05-04 19:50:49 +02:00
Zacharias 7dfaffc862 Working on fixing the implementation of PythonRunner.java
added a global cache directory, not fully properly implemented, and dose not respect t.ex the FreeDesktop specifications for cache directories and files

OPS this is a partial commit! things might not add up on this commit.
2026-05-04 18:17:15 +02:00
Zacharias 96a6ed169e Extracted the external tool base for python runner
Fixed URL building in APITool.java.
Updated libraries for API, Launcher.
Started applying NotNull annotation to methods and arguments in Core.java.
Started handeling the big init block in Core.java.
Added overloaded constructor for Core.java and made Core.ollamaIP a variabled that's definible
Updated Tool.addTool return for 400 error.
2026-05-04 14:23:26 +02:00
Zacharias 943c8470a5 Honestly speaking... No clue what the updates are :/ 2026-01-17 14:30:26 +01:00
Zacharias 4262dd68c6 Enhanced tool management in OllamaObject and added Maven publishing configuration.
- Updated `OllamaObject` to support tool registration with sources.
- Improved error handling and debug logging in multiple classes.
- Added Maven plugin and publication setup in `build.gradle`.
- Updated version to `1.3`.

Signed-off-by: Zacharias <zacharias@4zellen.se>
2025-08-18 20:01:42 +02:00
Zacharias 2cf0428d2a Added legal disclaimers about scraping.. mostly to make sure i dont get into too mutch trouble about things 2025-08-05 01:33:48 +02:00
Zacharias bbf3c645b0 Added README.md to GeniusAPI 2025-08-05 00:51:35 +02:00
Zacharias 4015d37657 Merge remote-tracking branch 'origin/master' 2025-08-05 00:43:19 +02:00
Zacharias 5886d164b4 Core.java
- Added a safe handle for if Core#logWriter is not initialized to prevent craching

GetLyrics.java
- Slowly modifying the http headers to avoid package due to catching this as a Scrapper
- Added so we skip extra calls if the song is cached
2025-08-05 00:38:58 +02:00
Zacharias ab72e1ff78 Update README.md 2025-07-28 22:15:37 +02:00
Zacharias db53028d1e Fixed an issue in the config 2025-07-16 01:03:02 +02:00
Zacharias bf5ae6dd3c And again.... 2025-07-16 00:31:04 +02:00
Zacharias fbf7c504b1 Testing again... *sigh* 2025-07-16 00:29:46 +02:00
Zacharias 8426bcac37 CI is confusing 2025-07-16 00:28:37 +02:00
Zacharias 5724a2342d Merge remote-tracking branch 'origin/master' 2025-07-16 00:12:55 +02:00
Zacharias 95ac78b2d2 Testing gitea act_runner 2025-07-16 00:11:56 +02:00