fix: update the logic for remove model in provider

This commit is contained in:
2026-07-19 18:32:14 +07:00
parent fa7cd62d58
commit 62975ab15b
25 changed files with 1209 additions and 172 deletions
+17 -1
View File
@@ -83,6 +83,11 @@ export {
getDisabledModels, getDisabledByProvider, disableModels, enableModels,
} from "./repos/disabledModelsRepo.js";
// Permanently deleted models
export {
getDeletedModels, isDeletedModel, isDeletedModelReference, deleteModelPermanently,
} from "./repos/deletedModelsRepo.js";
// Usage
export {
statsEmitter, trackPendingRequest, getActiveRequests,
@@ -93,6 +98,7 @@ export {
// Request details
export {
saveRequestDetail, getRequestDetails, getRequestDetailById, getDistinctProviders,
purgeRequestDetailBuffer,
} from "./repos/requestDetailsRepo.js";
// Export/import full DB
@@ -115,6 +121,7 @@ export async function exportDb() {
mitmAlias: {},
pricing: {},
disabledModels: {},
deletedModels: {},
};
for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'modelAliases'`)) out.modelAliases[r.key] = parseJson(r.value);
@@ -122,6 +129,7 @@ export async function exportDb() {
for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'mitmAlias'`)) out.mitmAlias[r.key] = parseJson(r.value);
for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'pricing'`)) out.pricing[r.key] = parseJson(r.value);
for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'disabledModels'`)) out.disabledModels[r.key] = parseJson(r.value, []);
for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'deletedModels'`)) out.deletedModels[r.key] = parseJson(r.value, []);
return out;
}
@@ -154,7 +162,7 @@ export async function importDb(payload) {
db.run(`DELETE FROM proxyPools`);
db.run(`DELETE FROM apiKeys`);
db.run(`DELETE FROM combos`);
db.run(`DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing', 'disabledModels')`);
db.run(`DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing', 'disabledModels', 'deletedModels')`);
// Settings
if (payload.settings) {
@@ -261,6 +269,14 @@ export async function importDb(payload) {
db.run(`INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)`, [providerAlias, stringifyJson([...new Set(validModelIds)])]);
}
}
for (const [providerAlias, modelIds] of Object.entries(payload.deletedModels || {})) {
const validModelIds = Array.isArray(modelIds)
? modelIds.filter((modelId) => typeof modelId === "string" && modelId)
: [];
if (providerAlias && validModelIds.length > 0) {
db.run(`INSERT OR REPLACE INTO kv(scope, key, value) VALUES('deletedModels', ?, ?)`, [providerAlias, stringifyJson([...new Set(validModelIds)])]);
}
}
});
return await exportDb();