feat(app): add provider methods

This commit is contained in:
ItzCrazyKns
2025-10-18 15:06:00 +05:30
parent e02b9a5efc
commit 5a7f45cace
5 changed files with 447 additions and 3 deletions

View File

@@ -225,6 +225,8 @@ class ConfigManager {
this.currentConfig.modelProviders.push(newModelProvider);
this.saveConfig();
return newModelProvider;
}
public removeModelProvider(id: string) {
@@ -240,6 +242,69 @@ class ConfigManager {
this.saveConfig();
}
public async updateModelProvider(id: string, name: string, config: any) {
const provider = this.currentConfig.modelProviders.find((p) => {
return p.id === id;
});
if (!provider) throw new Error('Provider not found');
provider.name = name;
provider.config = config;
this.saveConfig();
return provider;
}
public addProviderModel(
providerId: string,
type: 'embedding' | 'chat',
model: any,
) {
const provider = this.currentConfig.modelProviders.find(
(p) => p.id === providerId,
);
if (!provider) throw new Error('Invalid provider id');
delete model.type;
if (type === 'chat') {
provider.chatModels.push(model);
} else {
provider.embeddingModels.push(model);
}
this.saveConfig();
return model;
}
public removeProviderModel(
providerId: string,
type: 'embedding' | 'chat',
modelKey: string,
) {
const provider = this.currentConfig.modelProviders.find(
(p) => p.id === providerId,
);
if (!provider) throw new Error('Invalid provider id');
if (type === 'chat') {
provider.chatModels = provider.chatModels.filter(
(m) => m.key !== modelKey,
);
} else {
provider.embeddingModels = provider.embeddingModels.filter(
(m) => m.key != modelKey,
);
}
this.saveConfig();
}
public isSetupComplete() {
return this.currentConfig.setupComplete;
}
@@ -255,6 +320,10 @@ class ConfigManager {
public getUIConfigSections(): UIConfigSections {
return this.uiConfigSections;
}
public getCurrentConfig(): Config {
return JSON.parse(JSON.stringify(this.currentConfig));
}
}
const configManager = new ConfigManager();