mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-27 03:06:21 +00:00
feat(ai): persist custom providers to config and move defaults to preferences
Fix /ai set provider <name> <url> not persisting across restarts. - Add prefs_ai_set_provider(), prefs_ai_remove_provider(), prefs_ai_get_provider_url(), prefs_ai_list_providers(), prefs_free_ai_providers(), and prefs_ai_get_default_provider_url() to preferences.h/c for provider persistence. - Move default provider URL definitions (openai, perplexity) from ai_client.c to preferences.c, following the established pattern where defaults are returned as fallbacks when no config value exists. - Modify ai_add_provider() to persist new/updated providers to config. - Modify ai_remove_provider() to remove provider from config. - Add internal _ai_add_provider_nopersist() helper for adding default providers and loading from config without double-persisting. - Update ai_client_init() to load custom providers from config on startup, allowing users to override defaults or add new ones. Users now have full control: default providers remain as fallbacks, user-added providers persist to config, and users can override or remove defaults freely.
This commit is contained in:
@@ -366,6 +366,14 @@ char* prefs_ai_get_token(const char* const provider);
|
||||
GList* prefs_ai_list_tokens(void);
|
||||
void prefs_free_ai_tokens(GList* tokens);
|
||||
|
||||
/* AI provider management */
|
||||
gboolean prefs_ai_set_provider(const char* const provider, const char* const url);
|
||||
gboolean prefs_ai_remove_provider(const char* const provider);
|
||||
char* prefs_ai_get_provider_url(const char* const provider);
|
||||
GList* prefs_ai_list_providers(void);
|
||||
void prefs_free_ai_providers(GList* providers);
|
||||
GList* prefs_ai_get_providers(void);
|
||||
|
||||
/* AI model cache management */
|
||||
gboolean prefs_ai_set_models(const char* const provider, const gchar* const* models, gint count);
|
||||
gboolean prefs_ai_remove_models(const char* const provider);
|
||||
|
||||
Reference in New Issue
Block a user