Commit Graph

14 Commits

Author SHA1 Message Date
Zacharias 7dfaffc862 Working on fixing the implementation of PythonRunner.java
build / build (push) Has been cancelled
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
build / build (push) Has been cancelled
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 :/
build / build (push) Has been cancelled
2026-01-17 14:30:26 +01:00
Zacharias 4262dd68c6 Enhanced tool management in OllamaObject and added Maven publishing configuration.
build / build (push) Has been cancelled
- 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 57fc7f2533 Quick and dirty commit, due to heaste of this needing 2025-06-08 22:01:17 +02:00
Zacharias 603b72f2d3 Started implementing jar-based(plugin) tool loading
Core#plugin:
- Plugin.java: Main framework for plugins
- OllamaTool.java: Used for annotation based loading of tools
- InjectPlugin.java: Annoataion for injecting the Plugin instance, used when annotation based loading is used
- PluginMetadata.java: metadata of the plugin, a class-reflection of plugin.json file within each plugin
- PluginLoadingException.java: Exception thrown when an error happens durring plugin loading
2025-05-28 01:11:07 +02:00
Zacharias 8e44c11385 feat(api): major refactor from TCP socket to HTTP REST via Spring Boot
This commit introduces a large-scale refactor that replaces the existing TCP-based API with a Spring Boot-powered HTTP REST architecture. Due to the size and scope of this change, only essential structural notes are included below.

High-level changes:
- Replaced TCP-based communication with RESTful endpoints
- Introduced Spring Boot for API handling and configuration
- Refactored internal core logic to support REST architecture

New/Updated API components:
- `APIApplication.java`: Main Spring Boot entry point
- `MessageController.java`: Handles LLM-related queries
- `ToolController.java`: Handles adding/removing tools
- `NewToolRequest.java` / `NewToolResponse.java`: Data models for tool addition
- `NewQueryResponseHook.java`: Webhook handler for LLM query results
- `WebhookError.java`: Model for reporting webhook errors
- `EnableIfNotDisplay.java`: Conditional configuration for TTY context
- Other supporting classes (e.g., `ToolArgument`, `ToolRequest`)

Core changes:
- `Core.java`: Removed deprecated `addFunctionTool`, added `removeTool`
- `LaunchOptions.java`: Added `notDisplay` flag for headless operation
- `OllamaObject.java`: Implements tool removal logic

Launcher/display changes:
- `Launcher.java`: Starts `APIApplication` if not in TTY mode
- `Display.java`: Integrates REST API contextually with TTY display

NOTE: Several classes are included but not yet fully utilized; these are placeholders for upcoming features (e.g., `MessageResponse`, `ToolRequest`).

BREAKING CHANGE: This refactors removes all TCP-based API code and replaces it with HTTP REST using Spring Boot. Any clients or modules depending on the old TCP interface will need to be updated.
2025-05-24 18:11:58 +02:00
Zacharias 5c3efa1376 Added My Anime List API wrapper
for documentation on MAL API check out the [API docs](https://myanimelist.net/apiconfig/references/api/v2)

Display:Display.java
- Switched the AI model to `qwen3:8b`
- some temporary test changes
- switched to using static references when supposed too

MALAPITool
- Module for handling the MAL API

MALAPITool:README.md
- Some general information about the tools

Started adding some base systems for finding API endpoints, will later be added to the API module for the ability to add plugins

.gitignore
- Added so all data folder are ignored. So submodules data folder from testing aren't added to git

Core:OllamaObject.java
- switched location of messages.json from the static location of `./cache/` to the dynamic location of `${Core.DATA_DIR}/messages.json`

Core:OllamaPerameter.java
- Added ENUM and ARRAY values. Incidentally also discover that Ollama supports more than just STRING, INT, and BOOLEAN ad parameters

Core:Core.java
- Added precluding day to the name of logging files, now using the format dd_HH-mm-ss
2025-05-23 15:24:58 +02:00
Zacharias 9b3c6c20b8 Well lot's in this
Some API modifications/additions

Starting the implementation of a local file system for the AI to use

Staring to try to migrate the ./cache, ./logs, ./messages, and ./pythonFiles to more appropiet locations depenidng on OS
2025-03-25 23:25:29 +01:00
Zacharias 01de196d82 Slight chages
Display
> Set both tools to INTERNAL

GetMemoryFunction
> Made so it gives a JSON

PythonRunner
> Fixed some value checkes
2025-03-14 20:01:38 +01:00
Zacharias 907f2e42e5 Added javadoc, and fixed spelling errors. 2025-03-14 14:32:38 +01:00
Zacharias d465a5684c Added a lot of things, but i guse bigest part is the external_tools.py generator 2025-02-21 22:38:32 +01:00
Zacharias da2cb69b1b Started work on API and remembrance fuction 2025-02-21 13:31:13 +01:00
Zacharias b892306c09 Basicly refactord the entire project into a modular nature 2025-02-20 23:28:24 +01:00