func()

in gollm/factory.go [61:78]


func (r *registry) NewClient(ctx context.Context, providerID string) (Client, error) {
	// providerID can be just an ID, for example "gemini" instead of "gemini://"
	if !strings.Contains(providerID, "/") && !strings.Contains(providerID, ":") {
		providerID = providerID + "://"
	}

	u, err := url.Parse(providerID)
	if err != nil {
		return nil, fmt.Errorf("parsing provider id %q: %w", providerID, err)
	}

	factoryFunc := r.providers[u.Scheme]
	if factoryFunc == nil {
		return nil, fmt.Errorf("provider %q not registered", u.Scheme)
	}

	return factoryFunc(ctx, u)
}