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:
@@ -5124,6 +5124,11 @@ async function ensureOpencodeConfig(session) {
|
|||||||
[providerName]: providerCfg
|
[providerName]: providerCfg
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Ensure adminModels is loaded
|
||||||
|
if (!adminModels || adminModels.length === 0) {
|
||||||
|
await loadAdminModelStore();
|
||||||
|
}
|
||||||
|
|
||||||
// Find which providers are used in adminModels
|
// Find which providers are used in adminModels
|
||||||
const usedProviders = new Set();
|
const usedProviders = new Set();
|
||||||
for (const model of adminModels) {
|
for (const model of adminModels) {
|
||||||
@@ -5165,7 +5170,15 @@ async function ensureOpencodeConfig(session) {
|
|||||||
for (const [providerId, config] of Object.entries(providerConfigs)) {
|
for (const [providerId, config] of Object.entries(providerConfigs)) {
|
||||||
if (config.apiKey && usedProviders.has(providerId)) {
|
if (config.apiKey && usedProviders.has(providerId)) {
|
||||||
// Fetch all models from models.dev for this provider
|
// 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] = {
|
providers[providerId] = {
|
||||||
options: {
|
options: {
|
||||||
@@ -5175,9 +5188,10 @@ async function ensureOpencodeConfig(session) {
|
|||||||
models: models
|
models: models
|
||||||
};
|
};
|
||||||
|
|
||||||
log('Configured provider with models.dev data', {
|
log('Configured provider', {
|
||||||
provider: providerId,
|
provider: providerId,
|
||||||
modelCount: Object.keys(models).length
|
modelCount: Object.keys(models).length,
|
||||||
|
source: Object.keys(models).length > 0 ? 'models.dev' : 'built-in'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user