Skip to content

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 - []ToolDefinition for LLM function calling
  • toolHandlers - map[string]ToolHandler for tool execution
  • llmClient - provider.Provider for LLM injection
  • realtimeProviderFactory - for voice-to-voice mode
  • realtimeConfig - *RealtimeConfig for realtime settings

Dependencies

Package Version Notes
github.com/plexusone/omnivoice-core v0.14.0 Updated from v0.13.0

Installation

go get github.com/plexusone/omni-twilio@v0.8.0

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.