1+ // Package store persists user-selected LLM providers and credentials.
12package store
23
34import (
@@ -11,16 +12,19 @@ import (
1112 "github.com/dfanso/commit-msg/pkg/types"
1213)
1314
15+ // LLMProvider represents a single stored LLM provider and its credential.
1416type LLMProvider struct {
1517 LLM types.LLMProvider `json:"model"`
1618 APIKey string `json:"api_key"`
1719}
1820
21+ // Config describes the on-disk structure for all saved LLM providers.
1922type Config struct {
2023 Default types.LLMProvider `json:"default"`
2124 LLMProviders []LLMProvider `json:"models"`
2225}
2326
27+ // Save persists or updates an LLM provider entry, marking it as the default.
2428func Save (LLMConfig LLMProvider ) error {
2529
2630 cfg := Config {
@@ -139,6 +143,7 @@ func getConfigPath() (string, error) {
139143
140144}
141145
146+ // DefaultLLMKey returns the currently selected default LLM provider, if any.
142147func DefaultLLMKey () (* LLMProvider , error ) {
143148
144149 var cfg Config
@@ -179,6 +184,7 @@ func DefaultLLMKey() (*LLMProvider, error) {
179184 return nil , errors .New ("not found default model in config" )
180185}
181186
187+ // ListSavedModels loads all persisted LLM provider configurations.
182188func ListSavedModels () (* Config , error ) {
183189
184190 var cfg Config
@@ -211,6 +217,7 @@ func ListSavedModels() (*Config, error) {
211217
212218}
213219
220+ // ChangeDefault updates the default LLM provider selection in the config.
214221func ChangeDefault (Model types.LLMProvider ) error {
215222
216223 var cfg Config
@@ -247,6 +254,7 @@ func ChangeDefault(Model types.LLMProvider) error {
247254 return os .WriteFile (configPath , data , 0600 )
248255}
249256
257+ // DeleteModel removes the specified provider from the saved configuration.
250258func DeleteModel (Model types.LLMProvider ) error {
251259
252260 var cfg Config
@@ -300,6 +308,7 @@ func DeleteModel(Model types.LLMProvider) error {
300308 }
301309}
302310
311+ // UpdateAPIKey rotates the credential for an existing provider entry.
303312func UpdateAPIKey (Model types.LLMProvider , APIKey string ) error {
304313
305314 var cfg Config
0 commit comments