fix: ensure adminModels is loaded before checking providers in ensureOpencodeConfig

- Add check to load adminModels if not already loaded
- Add error handling for models.dev fetch failures
- Log provider source (models.dev vs built-in) for debugging
This commit is contained in:
southseact-3d
2026-02-11 11:18:56 +00:00
parent 17792d39a0
commit 49092c3229

View File

@@ -5124,6 +5124,11 @@ async function ensureOpencodeConfig(session) {
[providerName]: providerCfg
};
// Ensure adminModels is loaded
if (!adminModels || adminModels.length === 0) {
await loadAdminModelStore();
}
// Find which providers are used in adminModels
const usedProviders = new Set();
for (const model of adminModels) {
@@ -5165,7 +5170,15 @@ async function ensureOpencodeConfig(session) {
for (const [providerId, config] of Object.entries(providerConfigs)) {
if (config.apiKey && usedProviders.has(providerId)) {
// Fetch all models from models.dev for this provider
const models = await fetchModelsDevProviderModels(providerId);
let models = {};
try {
models = await fetchModelsDevProviderModels(providerId);
} catch (err) {
log('Failed to fetch models from models.dev, using empty models list', {
provider: providerId,
error: String(err)
});
}
providers[providerId] = {
options: {
@@ -5175,9 +5188,10 @@ async function ensureOpencodeConfig(session) {
models: models
};
log('Configured provider with models.dev data', {
log('Configured provider', {
provider: providerId,
modelCount: Object.keys(models).length
modelCount: Object.keys(models).length,
source: Object.keys(models).length > 0 ? 'models.dev' : 'built-in'
});
}
}