|
|
@@ -365,6 +365,7 @@ export namespace Provider {
|
|
|
}
|
|
|
parsed.models[modelID] = parsedModel
|
|
|
}
|
|
|
+
|
|
|
database[providerID] = parsed
|
|
|
}
|
|
|
|
|
|
@@ -446,6 +447,7 @@ export namespace Provider {
|
|
|
}
|
|
|
|
|
|
for (const [providerID, provider] of Object.entries(providers)) {
|
|
|
+ const configProvider = config.provider?.[providerID]
|
|
|
const filteredModels = Object.fromEntries(
|
|
|
Object.entries(provider.info.models)
|
|
|
// Filter out blacklisted models
|
|
|
@@ -458,8 +460,18 @@ export namespace Provider {
|
|
|
([, model]) =>
|
|
|
((!model.experimental && model.status !== "alpha") || Flag.OPENCODE_ENABLE_EXPERIMENTAL_MODELS) &&
|
|
|
model.status !== "deprecated",
|
|
|
- ),
|
|
|
+ )
|
|
|
+ // Filter by provider's whitelist/blacklist from config
|
|
|
+ .filter(([modelID]) => {
|
|
|
+ if (!configProvider) return true
|
|
|
+
|
|
|
+ return (
|
|
|
+ (!configProvider.blacklist || !configProvider.blacklist.includes(modelID)) &&
|
|
|
+ (!configProvider.whitelist || configProvider.whitelist.includes(modelID))
|
|
|
+ )
|
|
|
+ }),
|
|
|
)
|
|
|
+
|
|
|
provider.info.models = filteredModels
|
|
|
|
|
|
if (Object.keys(provider.info.models).length === 0) {
|