Release Notes: v0.8.0¶
Release Date: 2026-06-15
Highlights¶
- Registry Integration: Auto-register with omnivoice-core provider registry
- Type-Safe Options: Provider-specific configuration via registry options
New Features¶
Registry Integration¶
The gateway now registers with omnivoice-core's provider registry, enabling automatic discovery via side-effect imports:
import (
omnivoice "github.com/plexusone/omnivoice-core"
"github.com/plexusone/omnivoice-core/registry"
_ "github.com/plexusone/omni-twilio/omnivoice/gateway" // Auto-register
)
// Get gateway via registry
gw, err := omnivoice.GetGatewayProvider("twilio",
registry.WithAPIKey("TWILIO_AUTH_TOKEN"),
registry.WithExtension("accountSID", "ACxxxxxxxx"),
registry.WithExtension("phoneNumber", "+15551234567"),
)
// Access underlying Gateway for full API
wrapper := gw.(*gateway.GatewayWrapper)
twilioGw := wrapper.Gateway()
Type-Safe Registry Options¶
Provider-specific options for type-safe configuration:
import "github.com/plexusone/omni-twilio/omnivoice/gateway"
// Type-safe tool configuration
gw, err := omnivoice.GetGatewayProvider("twilio",
registry.WithAPIKey("TWILIO_AUTH_TOKEN"),
gateway.WithTools([]gateway.ToolDefinition{
{Name: "get_weather", Description: "Get weather info"},
}),
gateway.WithToolHandlers(map[string]gateway.ToolHandler{
"get_weather": handleGetWeather,
}),
gateway.WithLLMClient(myLLMProvider),
gateway.WithRealtimeProviderFactory(openaiRealtime.NewFactory()),
gateway.WithRealtimeConfig(&coregateway.RealtimeConfig{...}),
)
Enhanced Factory¶
The gateway factory now handles typed extensions:
tools-[]ToolDefinitionfor LLM function callingtoolHandlers-map[string]ToolHandlerfor tool executionllmClient-provider.Providerfor LLM injectionrealtimeProviderFactory- for voice-to-voice moderealtimeConfig-*RealtimeConfigfor realtime settings
Dependencies¶
| Package | Version | Notes |
|---|---|---|
| github.com/plexusone/omnivoice-core | v0.14.0 | Updated from v0.13.0 |
Installation¶
Migration Guide¶
From v0.7.0¶
No breaking changes. All existing code continues to work.
New optional capability: use the registry pattern instead of direct construction:
// Before (still works)
gw, err := gateway.New(gateway.Config{...})
// After (optional registry pattern)
import _ "github.com/plexusone/omni-twilio/omnivoice/gateway"
gw, err := omnivoice.GetGatewayProvider("twilio", opts...)
Full Changelog¶
See CHANGELOG.md for the complete list of changes.