Skip to content

Release Notes: v0.6.0

Release Date: 2026-06-15

Highlights

  • Registry Integration: Auto-register Gemini Live provider with omnivoice-core
  • Type-Safe Options: Provider-specific configuration via registry options

New Features

Registry Integration

The Gemini Live realtime provider 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-google/omnivoice/realtime" // Auto-register
)

// Get realtime provider via registry
provider, err := omnivoice.GetRealtimeProvider("gemini",
    registry.WithAPIKey(os.Getenv("GOOGLE_API_KEY")),
    registry.WithModel("gemini-2.0-flash-live"),
    registry.WithVoice("Puck"),
    registry.WithInstructions("You are a helpful assistant."),
)

// Access underlying provider for full API
wrapper := provider.(*realtime.RealtimeWrapper)
geminiProvider := wrapper.Provider()

Type-Safe Registry Options

Provider-specific options for Gemini Live configuration:

import "github.com/plexusone/omni-google/omnivoice/realtime"

provider, err := omnivoice.GetRealtimeProvider("gemini",
    registry.WithAPIKey(os.Getenv("GOOGLE_API_KEY")),
    // Type-safe Gemini-specific options
    realtime.WithRegistryTools(tools),
    realtime.WithRegistryFunctions(functions),
    realtime.WithRegistryResponseModalities([]string{"AUDIO", "TEXT"}),
    realtime.WithRegistryTemperature(0.7),
    realtime.WithRegistryTopP(0.9),
    realtime.WithRegistryTopK(40),
    realtime.WithRegistryMaxOutputTokens(1024),
    realtime.WithRegistryGoogleSearch(),    // Enable grounding
    realtime.WithRegistryCodeExecution(),   // Enable code execution
)

Enhanced Factory

The realtime factory now handles typed extensions:

  • tools - []ToolDef for function calling
  • functions - []FunctionDeclaration for legacy function format
  • responseModalities - []string for output modes
  • temperature, topP, topK - Generation parameters
  • maxOutputTokens - Output limits
  • enableGoogleSearch - Google Search grounding
  • enableCodeExecution - Code execution capability

Dependencies

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

Installation

go get github.com/plexusone/omni-google@v0.6.0

Migration Guide

From v0.5.0

No breaking changes. All existing code continues to work.

New optional capability: use the registry pattern instead of direct construction:

// Before (still works)
provider := realtime.NewProvider(apiKey, opts...)

// After (optional registry pattern)
import _ "github.com/plexusone/omni-google/omnivoice/realtime"
provider, err := omnivoice.GetRealtimeProvider("gemini", opts...)

Full Changelog

See CHANGELOG.md for the complete list of changes.