feat(config): add model variant support

Allow optional model variant config for agents and categories.
Propagate category variants into task model payloads so
category-driven runs inherit provider-specific variants.

Closes: #647
This commit is contained in:
Jason Kölker
2026-01-10 21:44:20 +00:00
parent 17dfafefc4
commit 7f67df9bd0
18 changed files with 452 additions and 12 deletions
+40
View File
@@ -0,0 +1,40 @@
import type { OhMyOpenCodeConfig } from "../config"
export function resolveAgentVariant(
config: OhMyOpenCodeConfig,
agentName?: string
): string | undefined {
if (!agentName) {
return undefined
}
const agentOverrides = config.agents as
| Record<string, { variant?: string; category?: string }>
| undefined
const agentOverride = agentOverrides?.[agentName]
if (!agentOverride) {
return undefined
}
if (agentOverride.variant) {
return agentOverride.variant
}
const categoryName = agentOverride.category
if (!categoryName) {
return undefined
}
return config.categories?.[categoryName]?.variant
}
export function applyAgentVariant(
config: OhMyOpenCodeConfig,
agentName: string | undefined,
message: { variant?: string }
): void {
const variant = resolveAgentVariant(config, agentName)
if (variant !== undefined && message.variant === undefined) {
message.variant = variant
}
}