fix: add model fallback from agent/category configs
This commit is contained in:
parent
3a22c24cf4
commit
04fb339622
28
bun.lock
28
bun.lock
@ -27,13 +27,13 @@
|
|||||||
"typescript": "^5.7.3",
|
"typescript": "^5.7.3",
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"oh-my-opencode-darwin-arm64": "3.0.0-beta.16",
|
"oh-my-opencode-darwin-arm64": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-darwin-x64": "3.0.0-beta.16",
|
"oh-my-opencode-darwin-x64": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-linux-arm64": "3.0.0-beta.16",
|
"oh-my-opencode-linux-arm64": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-linux-arm64-musl": "3.0.0-beta.16",
|
"oh-my-opencode-linux-arm64-musl": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-linux-x64": "3.0.0-beta.16",
|
"oh-my-opencode-linux-x64": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-linux-x64-musl": "3.0.0-beta.16",
|
"oh-my-opencode-linux-x64-musl": "3.0.0-beta.13",
|
||||||
"oh-my-opencode-windows-x64": "3.0.0-beta.16",
|
"oh-my-opencode-windows-x64": "3.0.0-beta.13",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -225,20 +225,6 @@
|
|||||||
|
|
||||||
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
|
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
|
||||||
|
|
||||||
"oh-my-opencode-darwin-arm64": ["oh-my-opencode-darwin-arm64@3.0.0-beta.16", "", { "os": "darwin", "cpu": "arm64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-1gfnTsKpYxTMXpbuV98wProR3RMe6BI/muuSVa3Xy68EEkBJsuRAne6IzFq/yxIMbx9OiQaS5cTE0mxFtxcCGA=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-darwin-x64": ["oh-my-opencode-darwin-x64@3.0.0-beta.16", "", { "os": "darwin", "cpu": "x64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-/h7kBZAN5Ut9kL7gEtwVVZ49Kw4gZoSVJdrpnh7Wij0a3mlOwqbkgGilK7oUiJ2N8fsxvxEBbTscYOLAdhyVBw=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-linux-arm64": ["oh-my-opencode-linux-arm64@3.0.0-beta.16", "", { "os": "linux", "cpu": "arm64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-jW7pl76WerBa7FucKCYcthpbKbhJQSVe6rqUFSbVobjOP9VWslrGdxc9Y8BeiMx9SJEFYwA8/2ROhnOHpH3TxA=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-linux-arm64-musl": ["oh-my-opencode-linux-arm64-musl@3.0.0-beta.16", "", { "os": "linux", "cpu": "arm64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-cXXka0zQDBiFu9mmxa45o3g812w8q/jZRYgdwJsLbj3nm24WXv6uRP7nnVVoZiVmJ2GQbLE1nyGCMkBXFwRGGA=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-linux-x64": ["oh-my-opencode-linux-x64@3.0.0-beta.16", "", { "os": "linux", "cpu": "x64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-4VS1V6DiXdWHQ/AGc3rB1sCxFUlD1REex0Ai/y4tEgA2M0FD0Bu+tjXHhDghUvC8f0kQBRfijnTrtc1Lh7hIrA=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-linux-x64-musl": ["oh-my-opencode-linux-x64-musl@3.0.0-beta.16", "", { "os": "linux", "cpu": "x64", "bin": { "oh-my-opencode": "bin/oh-my-opencode" } }, "sha512-PGVe7vyUK3hjSNfvu1fBXTbgbe0OPh7JgB/TZR2U5R54X1k3NBkb1VHX9yxEUSA0VsNR+inE2x+DfEA+7KIruQ=="],
|
|
||||||
|
|
||||||
"oh-my-opencode-windows-x64": ["oh-my-opencode-windows-x64@3.0.0-beta.16", "", { "os": "win32", "cpu": "x64", "bin": { "oh-my-opencode": "bin/oh-my-opencode.exe" } }, "sha512-1lN/8y4laQnSJDvyARuV5YaETAwBb+PK06QHQzpoK/0asiFoEIBcKNgjaRwau+nBsdRUrQocE2xc6g2ZNH4HUw=="],
|
|
||||||
|
|
||||||
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
|
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
|
||||||
|
|
||||||
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
|
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
|
||||||
|
|||||||
@ -106,6 +106,30 @@ export function createConfigHandler(deps: ConfigHandlerDeps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!(config.model as string | undefined)?.trim()) {
|
if (!(config.model as string | undefined)?.trim()) {
|
||||||
|
let fallbackModel: string | undefined
|
||||||
|
|
||||||
|
for (const agentConfig of Object.values(pluginConfig.agents ?? {})) {
|
||||||
|
const model = (agentConfig as { model?: string })?.model
|
||||||
|
if (model && typeof model === 'string' && model.trim()) {
|
||||||
|
fallbackModel = model.trim()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!fallbackModel) {
|
||||||
|
for (const categoryConfig of Object.values(pluginConfig.categories ?? {})) {
|
||||||
|
const model = (categoryConfig as { model?: string })?.model
|
||||||
|
if (model && typeof model === 'string' && model.trim()) {
|
||||||
|
fallbackModel = model.trim()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fallbackModel) {
|
||||||
|
config.model = fallbackModel
|
||||||
|
log(`No default model specified, using fallback from config: ${fallbackModel}`)
|
||||||
|
} else {
|
||||||
const paths = getOpenCodeConfigPaths({ binary: "opencode", version: null })
|
const paths = getOpenCodeConfigPaths({ binary: "opencode", version: null })
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'oh-my-opencode requires a default model.\n\n' +
|
'oh-my-opencode requires a default model.\n\n' +
|
||||||
@ -114,6 +138,7 @@ export function createConfigHandler(deps: ConfigHandlerDeps) {
|
|||||||
'(Replace with your preferred provider/model)'
|
'(Replace with your preferred provider/model)'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Migrate disabled_agents from old names to new names
|
// Migrate disabled_agents from old names to new names
|
||||||
const migratedDisabledAgents = (pluginConfig.disabled_agents ?? []).map(agent => {
|
const migratedDisabledAgents = (pluginConfig.disabled_agents ?? []).map(agent => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user