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', {
|
log('ensureOpencodeConfig debug', {
|
||||||
sessionId: session.id,
|
sessionId: session.id,
|
||||||
adminModelsCount: adminModels.length,
|
adminModelsCount: adminModels.length,
|
||||||
adminModelsSample: adminModels.slice(0, 2).map(m => ({
|
adminModelsSample: adminModels.slice(0, 3).map(m => ({
|
||||||
id: m.id,
|
id: m.id,
|
||||||
name: m.name,
|
name: m.name,
|
||||||
providers: m.providers?.map(p => p.provider),
|
providers: m.providers,
|
||||||
primaryProvider: m.primaryProvider
|
primaryProvider: m.primaryProvider
|
||||||
})),
|
})),
|
||||||
chutesKeyExists: !!CHUTES_API_KEY,
|
chutesKeyExists: !!CHUTES_API_KEY,
|
||||||
@@ -5149,7 +5149,12 @@ async function ensureOpencodeConfig(session) {
|
|||||||
for (const model of adminModels) {
|
for (const model of adminModels) {
|
||||||
if (Array.isArray(model.providers)) {
|
if (Array.isArray(model.providers)) {
|
||||||
for (const p of 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) {
|
if (model.primaryProvider) {
|
||||||
|
|||||||
Reference in New Issue
Block a user