Commit Graph

21 Commits

Author SHA1 Message Date
70e7e24aaa Update README.md
Fixed misspelling
2025-06-08 22:32:52 +02:00
57fc7f2533 Quick and dirty commit, due to heaste of this needing 2025-06-08 22:01:17 +02:00
840ad468e3 Added Genius API wrapper
for fetching song lyrics from Genius Database

# Disclaimer. This commit contains parts that are for educational purposes only!

FindSong:
- Uses Genius API to find the song queried

GetLyrics:
# Educational purposes only
- Scrapes Genius lyrics page for the Lyrics
2025-06-08 21:54:56 +02:00
796271443c Added Wikipedia API wrapper
GetWikiPegeText:
- Fetches a Wikipedia wiki page

WikipediaTool:
- The base for this module, Initialise a Wiki instance and add the Wikipedia API endpoints
2025-06-08 21:44:04 +02:00
a602d30901 ... I have no excuse.. i forgot the MALAPITool's build.gradle.... 2025-05-28 20:24:08 +02:00
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
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
e7cedb7f08 Updated README.md
README.md
- Added `MALAPITool` and `Launcher` under `How to build? And general information` sub header
- Noted module dependencies for `API`, `Display`, `Launcher`
- Added some general information to modules, pending some better general information
- Added a specific sub header for clarity
- Added a link to `MALAPITool` README
2025-05-23 15:37:35 +02:00
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
58c23c5897 Updated build.gradle to now include some Unit tests
Started implumenting Unit Tests
2025-03-25 23:34:07 +01:00
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
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
907f2e42e5 Added javadoc, and fixed spelling errors. 2025-03-14 14:32:38 +01:00
e7e8b445bf Update README.md 2025-03-14 08:56:54 +01:00
b8c33dd116 Added an example external_tools_example.py file 2025-02-21 22:40:39 +01:00
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
da2cb69b1b Started work on API and remembrance fuction 2025-02-21 13:31:13 +01:00
9daae9211f Added LICENSE 2025-02-21 00:12:10 +01:00
a0eec99f9f Added -h --help to launcher arguments
Added a detailed README
renamed the module `luancher` to `launcher`
2025-02-21 00:04:28 +01:00
b892306c09 Basicly refactord the entire project into a modular nature 2025-02-20 23:28:24 +01:00
6935e938a3 Initial commit 2025-02-20 18:00:16 +01:00