- Added initialization for LLM Provider and MCP Client Registries during the Load process. - Implemented reload functionality for both registries to ensure they are properly refreshed when needed. - Enhanced error handling to capture and report issues during initialization and reloading of the registries.
42 lines
798 B
Go
42 lines
798 B
Go
package llmprovider
|
|
|
|
import (
|
|
_ "embed"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
//go:embed presets.yml
|
|
var presetsYAML []byte
|
|
|
|
var presets []ProviderPreset
|
|
|
|
func init() {
|
|
presets = loadPresets()
|
|
}
|
|
|
|
func loadPresets() []ProviderPreset {
|
|
var list []ProviderPreset
|
|
if err := yaml.Unmarshal(presetsYAML, &list); err != nil {
|
|
panic("llmprovider: failed to parse presets.yml: " + err.Error())
|
|
}
|
|
return list
|
|
}
|
|
|
|
// GetPresets returns a copy of the embedded preset list.
|
|
func GetPresets() []ProviderPreset {
|
|
out := make([]ProviderPreset, len(presets))
|
|
copy(out, presets)
|
|
return out
|
|
}
|
|
|
|
// GetPreset returns the preset for the given key, or nil if not found.
|
|
func GetPreset(key string) *ProviderPreset {
|
|
for i := range presets {
|
|
if presets[i].Key == key {
|
|
cp := presets[i]
|
|
return &cp
|
|
}
|
|
}
|
|
return nil
|
|
}
|