Package uno.anahata.ai.tools.spi
package uno.anahata.ai.tools.spi
Provides a Service Provider Interface (SPI) with a collection of pre-built, general-purpose local tools.
This package contains a set of concrete tool implementations that are essential for most AI assistant applications. These tools grant the model the ability to interact with the user's local environment in a powerful and controlled way. Developers can extend the system by providing their own tool classes following the patterns established here.
Core Tools:
LocalFiles: A comprehensive tool for performing context-aware file system operations, such as reading, writing, creating, and deleting files.LocalShell: Enables the execution of arbitrary shell commands, providing a powerful way for the model to interact with the underlying operating system.RunningJVM: A sophisticated tool that allows the model to compile and execute Java code within the host application's running JVM, enabling dynamic extension and complex, on-the-fly computations.ContextWindow: Provides meta-tools for managing the conversation context itself, such as pruning messages or parts to control token usage.Session: A tool for managing the lifecycle of the chat session, including saving and loading the conversation history.Images: A tool for generating images from text prompts using an image generation model.
Subpackages:
uno.anahata.ai.tools.spi.pojos: Contains Plain Old Java Objects (POJOs) used as data transfer objects for the tools, such asFileInfo.
-
ClassesClassDescriptionA utility class for formatting complex Java classpaths into a readable, hierarchical tree structure.A set of tools for inspecting and managing the AI's conversation context window.A tool provider for generating images using the Gemini API.A comprehensive, context-aware file operations tool provider.A tool provider that allows the AI model to execute commands in the local bash shell.Provides tools for the AI model to compile and execute Java source code within the application's running JVM.A tool provider for managing chat sessions using Kryo serialization.
