Release Notes: v0.15.0¶
Release Date: 2026-04-11
Highlights¶
- Module Rename:
omnillm→omnillm-coreestablishing thin/thick provider architecture - Gemini Extracted: Moved to separate
omnillm-geminipackage, removing heavygoogle.golang.org/genaidependency - Provider Registry: Priority-based registry allows thick (SDK) providers to override thin (stdlib) providers
Breaking Changes¶
Module Path Changed¶
The Go module path has changed from github.com/plexusone/omnillm to github.com/plexusone/omnillm-core.
Migration:
Or use the new batteries-included aggregator (once available):
Gemini Moved to Separate Package¶
Gemini is no longer included in omnillm-core. Install it separately:
import (
"github.com/plexusone/omnillm-core"
_ "github.com/plexusone/omnillm-gemini" // Register Gemini provider
)
Thin/Thick Provider Architecture¶
omnillm-core now implements a thin/thick provider architecture:
Thin Providers (omnillm-core)¶
- Native HTTP implementations using only Go stdlib
- Zero external SDK dependencies
- Lightweight and fast to compile
- Providers: OpenAI, Anthropic, X.AI, GLM, Kimi, Qwen, Ollama
Thick Providers (Separate Packages)¶
- Use official SDKs from providers
- Override thin providers when imported
- Better API coverage and error handling
| Provider | Thin (omnillm-core) | Thick Package | SDK |
|---|---|---|---|
| OpenAI | ✅ | omnillm-openai | openai-go |
| Anthropic | ✅ | omnillm-anthropic | anthropic-sdk-go |
| Gemini | ❌ | omnillm-gemini | google genai |
| X.AI | ✅ | — | — |
| GLM | ✅ | — | — |
| Kimi | ✅ | — | — |
| Qwen | ✅ | — | — |
| Ollama | ✅ | — | — |
Provider Registry¶
New priority-based registry allows thick providers to override thin providers:
// Thick providers register with higher priority
func init() {
omnillm.RegisterProvider(omnillm.ProviderNameOpenAI, NewProvider, omnillm.PriorityThick)
}
Priority Constants:
PriorityThin(0): Default for stdlib providersPriorityThick(10): SDK-based providers that override thin
Registry Functions:
RegisterProvider(name, factory, priority): Register a provider factoryGetProviderFactory(name): Get the highest-priority factory for a providerListRegisteredProviders(): List all registered provider namesGetProviderPriority(name): Get the priority of a registered provider
Compatibility Exports¶
New exports for thick provider compatibility:
Capabilitiesstruct for provider feature detectionErrInvalidAPIKeyalias forErrEmptyAPIKeyNewAPIError(provider, statusCode, errorType, message)for thick provider error creationNewAPIErrorFull(provider, statusCode, message, errorType, code)for full error details
Installation¶
# Core package (thin providers)
go get github.com/plexusone/omnillm-core@v0.15.0
# Optional thick providers
go get github.com/plexusone/omnillm-openai
go get github.com/plexusone/omnillm-anthropic
go get github.com/plexusone/omnillm-gemini
Dependencies¶
- Removed:
google.golang.org/genai(moved to omnillm-gemini) - Updated:
github.com/grokify/mogoto 0.74.1
Documentation¶
- Added thin/thick provider architecture design document
- Updated installation guide with thick provider information
- Updated Gemini docs to indicate separate package