fix: handle both string and object formats in providers array
- Support providers as array of strings: [opencode, chutes]
- Support providers as array of objects: [{provider: opencode}]
- This fixes provider detection for Chutes and other providers
This commit is contained in:
@@ -5134,10 +5134,10 @@ async function ensureOpencodeConfig(session) {
|
||||
log('ensureOpencodeConfig debug', {
|
||||
sessionId: session.id,
|
||||
adminModelsCount: adminModels.length,
|
||||
adminModelsSample: adminModels.slice(0, 2).map(m => ({
|
||||
adminModelsSample: adminModels.slice(0, 3).map(m => ({
|
||||
id: m.id,
|
||||
name: m.name,
|
||||
providers: m.providers?.map(p => p.provider),
|
||||
providers: m.providers,
|
||||
primaryProvider: m.primaryProvider
|
||||
})),
|
||||
chutesKeyExists: !!CHUTES_API_KEY,
|
||||
@@ -5149,7 +5149,12 @@ async function ensureOpencodeConfig(session) {
|
||||
for (const model of adminModels) {
|
||||
if (Array.isArray(model.providers)) {
|
||||
for (const p of model.providers) {
|
||||
if (p.provider) usedProviders.add(p.provider.toLowerCase());
|
||||
// Handle both string format ["opencode", "chutes"] and object format [{provider: "opencode"}]
|
||||
if (typeof p === 'string') {
|
||||
usedProviders.add(p.toLowerCase());
|
||||
} else if (p && typeof p === 'object' && p.provider) {
|
||||
usedProviders.add(p.provider.toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (model.primaryProvider) {
|
||||
|
||||
Reference in New Issue
Block a user